Authentication Lab | User Agent Strings

news2024/10/9 12:28:20

关注这个靶场的其它相关笔记:Authentication Lab —— 靶场笔记合集-CSDN博客

0x01:User Agent Strings 前情提要

在某些特殊的场景中,服务端会假定客户端可以信任,并根据客户端告知它的内容做出身份验证的决策。

然而,我们知道的,客户端并不可信。所以上述逻辑,很容易就会出现安全漏洞。

0x02:User Agent Strings Write UP

访问靶场,从题目描述来看,它们的开发人员创建了一个桌面程序和一个 Web 程序来访问公司的数据库,这两个程序使用的是相同的 API,但桌面程序可能是由于是它们内部使用的,所以可以直接访问它们公司内部的数据库。而 Web 程序则需要通过用户名和密码登录后,才能访问:

我们先下载桌面程序,解压后会得到一个 Shell 脚本,内容如下:

 #!/usr/bin/env bash
 ​
 echo "Pinging server to check it is up."
 echo
 ​
 ret=`curl -s -A "authlab desktop app" https://authlab.digi.ninja/UserAgentPing`
 ​
 if [[ $ret =~ "Pong" ]]; then
     echo "The server is up"
 else
     echo "The server is not up"
 fi

逻辑比较简单,就是如果 ret 获取的值为 Pong,则打印 “The server is up”,否则打印 “The server is not up”,我们可以直接运行 curl 命令看看服务端返回的内容:

 curl -s -A "authlab desktop app" https://authlab.digi.ninja/UserAgentPing

通过上图的对比,我们可以很明显发现,问题出在了 -A 参数传递的值上,下面是 curl 命令 -A-s 的作用:

  • -s--slient:该选项会让 curl 在运行时保持静默模式,即不显示进度条或错误消息。

  • -A--user-agent:该选项允许用户指定一个(User-Agent)字符串,该字符串会包含在 HTTP 请求的头部中发送给服务器。

通过上面的介绍,我们了解到,-A 是指定 HTTP 请求头 User-Agent 字段的值,那么我们是不是可以通过修改 Web 客户端发送给后端的包的 User-Agent 字段,就可以直接登录,而不需要密码呢(因为它们两个使用的是同一个 API)?

这里笔者使用的是 HackBar 插件,直接修改 User-Agent 值为 “authlab desktop app” 并发包:

从上图可以看到,服务端误认为我们是通过桌面程序访问的,所以认为我们是可信的,导致我们成功实现无密码登录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2199025.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android开发banner效果

Android开发banner效果 banner在每个app都会有的 一、思路: 用viewpager也可以做。但我是引进第三方库的 二、效果图: 三、关键代码: // 联系:893151960 public class MainActivity extends AppCompatActivity {private Bann…

【MATLAB代码】基于RSSI原理的蓝牙定位程序(N个锚点、三维空间),源代码可直接复制

文章目录 介绍主要功能技术细节适用场景程序结构运行截图源代码详细教程:基于RSSI的蓝牙定位程序1. 准备工作2. 代码结构2.1 清理工作环境2.2 定义参数2.3 生成锚点坐标2.4 定义信号强度与距离的关系2.5 模拟未知点的位置2.6 定位函数2.7 绘图2.8 输出结果2.9 定义定位函数3. …

RDD的介绍、RDD的特点、创建RDD数据

文章目录 1. RDD介绍1.1 Spark开发方式1.1.1 交互式开发1.1.2 脚本式开发 1.2 Spark支持的开发语言1.3 RDD介绍 2. RDD特性3. 创建RDD数据3.1 Python数据转化为RDD3.2 文件数据HDFS转化为RDD3.3 RDD分区3.4 小文件数据读取 1. RDD介绍 1.1 Spark开发方式 1.1.1 交互式开发 通…

【LeetCode】动态规划—712. 两个字符串的最小ASCII删除和(附完整Python/C++代码)

动态规划—712. 两个字符串的最小ASCII删除和 前言题目描述基本思路1. 问题定义2. 理解问题和递推关系3. 解决方法3.1 动态规划方法3.2 空间优化的动态规划 4. 进一步优化5. 小总结 代码实现PythonPython3代码实现Python 代码解释 CC代码实现C 代码解释 总结: 前言 在字符串处…

【已解决】endnote只显示十条文献/licence失效/this license has been suspended

问题:打开endnote后弹窗显示 Were sorry,this license has been suspended due to ...... 关闭弹窗发现只剩10条文献显示了 解决方法: ①关闭杀毒软件 ②找到endnote源文件夹下的License.dat文件(找不到的话直接在“此电脑”中搜索&#x…

倒计时3天!飞凌嵌入式邀您共聚第90届CMEF

10月12日~15日,第90届中国国际医疗器械博览会(CMEF)即将在深圳国际会展中心(宝安)隆重举行,4000品牌企业将携数万款产品集中亮相,为全球健康产业带来探析前沿、洞见未来的医疗盛宴。 飞凌嵌入式作为业界领先的嵌入式解决方案提供商&#xff…

七、InnoDB数据存储结构

文章目录 1. 数据库的存储结构:页1.1 磁盘与内存交互基本单位:页1.2 页结构概述1.3 页的大小1.4 页的上层结构2. 页的内部结构2.1 第1部分:File Header(文件头部)和 File Trailer(文件尾部)2.1.1 File Header(文件头部)2.1.2 File tRAILER(文件尾部)2.2 第2部分:Fr…

电商价格监测的创新之路

在当今数字化高速发展的时代,电商如汹涌的浪潮席卷了商业的每一个角落。品牌们在这片广阔的电商海洋中奋力前行,而价格监测则成为了他们手中至关重要的罗盘。 力维网络以其专业的价格监测服务,为品牌在电商之海的航行点亮了一盏明灯。然而&a…

【北京迅为】《STM32MP157开发板嵌入式开发指南》-第二十一章 makefile基本语法(下)

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐…

韦东山老师linux快速入门otg检测不到方案总结

我是如何解决, 第二节, otg 串口检测不到的, 开发手册链接: https://wwyz.lanzoul.com/iF1TA2c21uoh 我首先按照评论区, 老师说的, 根据完全开发手册, 搜索otg, 然后找到老师当时 烧写系统的时候, 利用usb启动, 然后otg链接, 然后 安装了两个驱动, 往后翻, 就可以翻到 然后重…

多系统数据交换与共享技术方案(医疗行业为例,Doc原件)

目录 1 方案概述 1.1 背景 1.2 参考规范 2 需求分析 2.1 交换内容 2.2 功能需求 1) 消息传输 2) 数据整合 3) 服务集成 4) 流程整合 5) 管理功能 3 总体建设方案 3.1 实现思路 3.1.1 交换方案比选 3.1.2 技术优势 3.2 总体架构 3.3 数据交换与共享基本模型 3.…

ATAM需求说明-系统架构师(七十六)

1体系结构权衡分析法ATAM(Architecture Trade Off Analyzer Method)是一种常见的结构权衡分析法,该框架主要关注系统的(),针对性能、安全性、可用性和可修改性,在系统开发前进行分析、评价和这种。 A 需求说明 B 架构…

大型生物制药企业如何实现安全又高效地跨网域数据传输?

大型生物制药企业由于组织结构庞大、业务覆盖研发、生产及销售,因此内部会再细分为多个管理单位,包括研发部门、生产部门、质量控制部门、供应链管理部门及营销部和日常业务支撑部门等。在物理区域划分上,大型生物制药企业会设立实验室、研发…

Java—逻辑控制与输入输出

各位看官:如果您觉得这篇文章对您有帮助的话 欢迎您分享给更多人哦 感谢大家的点赞收藏评论,感谢您的支持!!! 一.顺序结构: 我每天起床,躺在床上玩手机,然后吃中午饭,睡…

[C++ 核心编程]笔记 2 栈区和堆区

栈区: 由编译器自动分配释放&#xff0c;存放函数的参数值,同部变量等 注意事项&#xff1a;不要返回局部变量的地址&#xff0c;栈区开辟的数据由编译器自动释放 #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std;//栈区数据注意事项 不要…

【架构师】系统架构相关知识

本文仅做技术交流&#xff0c;转载请注明来源&#xff0c;切勿商用。 参考&#xff1a;系统架构师考纲及教材 1、系统架构的概念 架构是一种表达&#xff0c;而非可运行的软件。 1&#xff09;分析设计在满足所规定的需求方面的有效性 2&#xff09;在设计变更相对容易的阶段…

【读书笔记·VLSI电路设计方法解密】问题4:今天的设计环境中使用的主要工艺技术是什么

主流的工艺技术是互补金属氧化物半导体&#xff08;CMOS&#xff09;技术。其他技术还包括双极性、双极CMOS&#xff08;biCMOS&#xff09;、绝缘体上硅&#xff08;SOI&#xff09;和砷化镓&#xff08;GaAs&#xff09;。 在CMOS技术中&#xff0c;"互补对称"指的…

Android开发:日志功能备忘

临时记一下吧&#xff0c;以后就直接复制粘贴这里面的好了。 实现一个日志记录程序的运行状态&#xff0c;并且带上时间信息&#xff0c;可以写一个类灵活调用。 MyLog.java package com.example.networkaccessrestrictions;import static android.content.ContentValues.TAG;i…

目标检测实战教程Day1(原创)

原创不易&#xff0c;转载请标明本文地址 目标检测一直是计算机视觉领域的核心问题之一&#xff0c;它就像是让计算机拥有了一双“鹰眼”&#xff0c;能在复杂的图像中迅速锁定和识别出各种有趣的目标&#xff0c;比如人、汽车、动物或者任何其他特定物体。在这一章&#xff0c…

【汇编语言】寄存器(CPU工作原理)(五)—— 段寄存器以及CS和IP

文章目录 前言1. 段寄存器2. CS 和 IP结语 前言 &#x1f4cc; 汇编语言是很多相关课程&#xff08;如数据结构、操作系统、微机原理&#xff09;的重要基础。但仅仅从课程的角度出发就太片面了&#xff0c;其实学习汇编语言可以深入理解计算机底层工作原理&#xff0c;提升代码…