阅读须知
本文的知识内容,仅供网络安全从业人员学习参考,用于已获得合法授权的网站测试,请勿用于其它用途。请勿使用本文中的工具、技术及资料,对任何未经授权的网站、系统进行测试,否则,所造成的直接或间接后果,均由您自行承担。
靶场说明
测试背景:本靶场设定的登录用户密码为弱密码,请你尝试暴力破解密码并登录。请注意,靶场已实施 IP 请求限制措施,同一账号若连续登录失败3次,将触发 IP 地址封禁机制。然而,可以通过登录时勾选保持登录的复选框,在成功登录靶场之后观察 Cookie 的生成方式,尝试构造 Cookie 进行爆破登录。
使用工具:HTTP抓包测试工具、HTTP模糊测试工具。
必要条件:正确用户名和账号、测试用户名和暴力破解所需账户密码表单均已提供。
工具下载:TangGo测试平台
(靶场原文描述)
测试思路
访问目标网站:首先,访问目标网站并进入其登录页面。
验证账号有效性:接下来,输入正确的用户名和密码并勾选“Stay logged in”,以确保账号的有效性并确认能够成功登录。
抓取后台界面数据包:使用HTTP抓包测试工具,抓取带有设置 Cookie 状态的登录数据包。
推测 Cookie 规则:观察正确用户的 Cookie 生成方式,得到其 Cookie 生成为“用户名:md5(密码)”进行 base64 编码后的组合方式。
枚举测试用户密码:利用HTTP模糊测试工具,通过 Cookie 状态对指定的测试用户“carlos”的密码进行枚举尝试。
获取正确密码:通过匹配规则筛选,我们成功找到了“carlos”用户的正确密码。
成功登录验证:最后,使用获取到的账号和密码尝试登录,若登录成功,则说明账号和密码无误。
使用实操
访问和登录
首先启动 HTTP抓包测试工具,打开右上角内置浏览器,之后在浏览器中访问靶场的网站,加载后是一个普通的网页:
(靶场首页)
分析网页发现,右上角的“My account”其中文翻译为“我的账户”,猜测此处可能为登录入口,点击“My account”后会跳转至新页面,进入后发现为登录页面:
(登录页面)
在登录页面中,输入正确的用户名(winner)和密码(peter)并勾选“Stay logged in”,点击登录后,成功进入后台页面,此时我们观察并记录后台页面中的关键字“Update email”,方便后续使用匹配规则筛选出正确的数据。
(登录后台)
抓取成功登录后台的请求数据包之后观察 Cookie 的生成方式,操作如下:
首先我们回到 HTTP抓包测试工具中,开启抓包拦截之后回到内置浏览器中,刷新该页面,此时通过 HTTP抓包测试工具,我们成功抓取到登录请求的数据包:
(登录请求包)
因为我们勾选了“Stay logged in”,所以登录的状态会进行保持,于是我们分析请求后台页面数据包中的“Cookie”,其中有一个“stay-logged-in”的字段,该字段的值为 base64 编码,我们框选该值,依次点击右键-->编码解码选中的数据-->解码-->base64 解码。
(逆向 Cookie)
解码完成后,我们可以看到此字段由两部分组成,前半段为登录的用户名(wiener),后半段为一串 32 位的字符串,并使用冒号将两个字段分隔开。
猜测该 32 位的字符串为 md5 加密,复制该字符串进行 md5 解密,果然字符串解密为正确的登录密码“peter”。
(MD5 查询)
至此我们明白了“stay-logged-in”字段值的构成,该值首先由“用户名”+“分隔符冒号”+“密码(md5)”组合构成,其次在对构成后的组合进行 base64 的编码。
MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,它可以将任意长度的“字节串”映射为一个128位(16字节)的大整数,并且以32个十六进制数字表示的字符串的形式给出。
接下来我们可以通过爆破“stay-logged-in”字段的值来尝试登录用户“carlos”。首先我们回到后台页面中,通过点击“Log out”先退出当前用户。
(退出当前用户)
(点击账户界面)
观察抓取到的数据包,可以发现“stay-logged-in”其字段值为空,接下来我们使用 HTTP模糊测试工具进行爆破测试。
(抓取数据包)
参数设置
在操作选项卡中把抓取到的数据发送到 HTTP模糊测试工具中,工具会自动打开并跳转:
(发送到 HTTP模糊测试工具中)
步骤 1- 设置请求参数
设置需要进行爆破的值,此处由于“stay-logged-in”的值为空,所以我们只需要直接点击标记即可:
(标记变体值)
步骤 2-设置变体参数
1.重放模式
(模式选择)
重放模式选择单字典逐一爆破模式,因为此处只需要对密码进行暴力破解,所以选择此模式。
2.1 变体赋值
点击靶场提供的“Candidate password”:
(Candidate password)
点击链接后,在弹出页面中,复制所有的密码。
(复制密码)
点击粘贴按钮将所复制的密码全部粘贴到 HTTP模糊测试工具中。
(粘贴密码)
2.2 按以下规则对赋值进行处理
之前分析可知该值首先由“用户名”+“分隔符冒号”+“密码(md5)”组合构成,其次在对构成后的组合进行 base64 的编码。我们进行 3 步设置,具体如下:
1.生成密码对应的 MD5 值:
点击右侧加号进行设置处理规则。
(新建规则)
处理方式选择变体值哈希,哈希选择 MD5(32 位):
(MD5 处理)
2.添加变体值的前缀
此时密码的 MD5 值已经生成,接下来为该密码添加前缀用户名,注意一并添加分隔符冒号,依旧点击添加规则,然后选择变体值添加前缀,前缀为“carlos:”
(添加前缀)
3.base64 编码
设置完成后上述两步后,此时我们只需要对整体的值进行 base64 编码即可,依旧点击添加规则,然后选择变体值编码,编码方式为 Base64 编码。
(base64 编码)
至此我们已经成功设置完成了变体值的处理方式 。
(设置完成)
点击赋值方式右侧的小眼睛可以对设置完成的数据进行预览。
(预览规则)
设置匹配规则
通过之前收集后台界面信息可知,成功登录的页面包含字符串“Update email”,所以我们进行规则匹配,具体操作如下:
点击测试过程模块,在模块中选择匹配规则。
(匹配规则)
点击添加按钮创建新的匹配规则。
(添加规则)
在新弹出的页面中:
- 匹配位置:HTTP 响应头部
- 匹配类型:包含字符串
- 匹配规则:Update email
(设置规则)
设置完成后,接下来就可以启动测试了。
启动测试
设置完成后,点击“测试过程”-->“启动测试”,可以看到返回数据很多:
(测试数据)
接下来我们直接通过筛选匹配规则精确得出正确的数据:
(筛选匹配)
如果你遇到了状态码返回全部为 302,请在测试配置中切换 HTTP 重定向为“无条件跟踪重定向”。
复制筛选出数据包中的变体值,打开 TangGo 主界面中的编码解码工具:
(编码解码工具)
对数据包依次进行base64 解码-->md5 解密后即可得到正确的密码值
(base64 解码)
(MD5 查询)
输入账号“carlos”和密码“121212”成功登录。
(成功登录)
至此使用 Cookie 认证的方式爆破得到了用户的密码并成功登录了后台。
测试总结
漏洞总结:
- 使用基于 Base64 编码和 MD5 哈希的身份验证 Cookie,其中包含了用户名和密码的信息。
- 攻击者可以通过对该 Cookie 进行逆向工程,尝试使用 MD5 哈希算法生成密码的哈希值,并与已知的用户名组合,以尝试构造有效的身份验证 Cookie。
解决方法:
- 使用更强大的加密算法,如 SHA-256,替代不安全的 MD5 哈希算法。
- 不要将用户的密码直接存储在 Cookie 中,而是使用随机生成的令牌,并在服务器端进行验证。
- 加强会话管理,确保在用户登录时生成新的会话令牌,并在用户注销或会话超时后使其失效。
注意:工具使用内容请以最新版本为主。
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)