freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

Burpsuite靶场|根据Cookie规则暴力破解密码
TangGo测试平台 2024-06-05 10:06:48 172207

阅读须知

本文的知识内容,仅供网络安全从业人员学习参考,用于已获得合法授权的网站测试,请勿用于其它用途。请勿使用本文中的工具、技术及资料,对任何未经授权的网站、系统进行测试,否则,所造成的直接或间接后果,均由您自行承担。

靶场说明

测试背景:本靶场设定的登录用户密码为弱密码,请你尝试暴力破解密码并登录。请注意,靶场已实施 IP 请求限制措施,同一账号若连续登录失败3次,将触发 IP 地址封禁机制。然而,可以通过登录时勾选保持登录的复选框,在成功登录靶场之后观察 Cookie 的生成方式,尝试构造 Cookie 进行爆破登录。

使用工具:HTTP抓包测试工具、HTTP模糊测试工具。

必要条件:正确用户名和账号、测试用户名和暴力破解所需账户密码表单均已提供。

工具下载:TangGo测试平台

测试靶场https://portswigger.net/web-security/authentication/other-mechanisms/lab-brute-forcing-a-stay-logged-in-cookie

1717551330_665fc0e27e8f53ff1554a.png!small?1717551337068

(靶场原文描述)

测试思路

访问目标网站:首先,访问目标网站并进入其登录页面。

验证账号有效性:接下来,输入正确的用户名和密码并勾选“Stay logged in”,以确保账号的有效性并确认能够成功登录。

抓取后台界面数据包:使用HTTP抓包测试工具,抓取带有设置 Cookie 状态的登录数据包。

推测 Cookie 规则:观察正确用户的 Cookie 生成方式,得到其 Cookie 生成为“用户名:md5(密码)”进行 base64 编码后的组合方式。

枚举测试用户密码:利用HTTP模糊测试工具,通过 Cookie 状态对指定的测试用户“carlos”的密码进行枚举尝试。

获取正确密码:通过匹配规则筛选,我们成功找到了“carlos”用户的正确密码。

成功登录验证:最后,使用获取到的账号和密码尝试登录,若登录成功,则说明账号和密码无误。

使用实操

访问和登录

首先启动 HTTP抓包测试工具,打开右上角内置浏览器,之后在浏览器中访问靶场的网站,加载后是一个普通的网页:

1717551928_665fc338e440cfdf2e8b4.png!small?1717551930501

(靶场首页)

分析网页发现,右上角的“My account”其中文翻译为“我的账户”,猜测此处可能为登录入口,点击“My account”后会跳转至新页面,进入后发现为登录页面:

1717551948_665fc34c84aa82ea9e2ae.png!small?1717551949544

(登录页面)

在登录页面中,输入正确的用户名(winner)和密码(peter)并勾选“Stay logged in”,点击登录后,成功进入后台页面,此时我们观察并记录后台页面中的关键字“Update email”,方便后续使用匹配规则筛选出正确的数据。

1717552234_665fc46a6333d64ad64a3.png!small?1717552235364

(登录后台)

抓取成功登录后台的请求数据包之后观察 Cookie 的生成方式,操作如下:

首先我们回到 HTTP抓包测试工具中,开启抓包拦截之后回到内置浏览器中,刷新该页面,此时通过 HTTP抓包测试工具,我们成功抓取到登录请求的数据包:

1717552272_665fc490268bb4dd37d4c.png!small?1717552272905

(登录请求包)

因为我们勾选了“Stay logged in”,所以登录的状态会进行保持,于是我们分析请求后台页面数据包中的“Cookie”,其中有一个“stay-logged-in”的字段,该字段的值为 base64 编码,我们框选该值,依次点击右键-->编码解码选中的数据-->解码-->base64 解码

1717552294_665fc4a6ebe54749ab7c7.png!small?1717552295788

(逆向 Cookie)

解码完成后,我们可以看到此字段由两部分组成,前半段为登录的用户名(wiener),后半段为一串 32 位的字符串,并使用冒号将两个字段分隔开。

1717552314_665fc4bac6240c0e5b48c.png!small?1717552315680

猜测该 32 位的字符串为 md5 加密,复制该字符串进行 md5 解密,果然字符串解密为正确的登录密码“peter”。

1717552328_665fc4c88306efa2c26db.png!small?1717552329311

(MD5 查询)

至此我们明白了“stay-logged-in”字段值的构成,该值首先由“用户名”+“分隔符冒号”+“密码(md5)”组合构成,其次在对构成后的组合进行 base64 的编码。

MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,它可以将任意长度的“字节串”映射为一个128位(16字节)的大整数,并且以32个十六进制数字表示的字符串的形式给出。

接下来我们可以通过爆破“stay-logged-in”字段的值来尝试登录用户“carlos”。首先我们回到后台页面中,通过点击“Log out”先退出当前用户。

1717552363_665fc4eb473c6270e7667.png!small?1717552366683

(退出当前用户)

1717552381_665fc4fd6b8df361dd4e2.png!small?1717552382869

(点击账户界面)

观察抓取到的数据包,可以发现“stay-logged-in”其字段值为空,接下来我们使用 HTTP模糊测试工具进行爆破测试。

1717552394_665fc50a3313ec0432518.png!small?1717552399254

(抓取数据包)

参数设置

在操作选项卡中把抓取到的数据发送到 HTTP模糊测试工具中,工具会自动打开并跳转:

1717552495_665fc56fc1ea77e406fc7.gif!small?1717552496727

(发送到 HTTP模糊测试工具中)

步骤 1- 设置请求参数

设置需要进行爆破的值,此处由于“stay-logged-in”的值为空,所以我们只需要直接点击标记即可:

1717552602_665fc5da18a9879a3bcb2.png!small?1717552603011

(标记变体值)

步骤 2-设置变体参数

1.重放模式

1717552629_665fc5f53b3129141d3b0.png!small?1717552630121

(模式选择)

重放模式选择单字典逐一爆破模式,因为此处只需要对密码进行暴力破解,所以选择此模式。

2.1 变体赋值

点击靶场提供的“Candidate password”:

1717552675_665fc62378d2c5d5365ef.png!small?1717552677025

(Candidate password)

点击链接后,在弹出页面中,复制所有的密码。

1717552693_665fc63508d329a69ee16.png!small?1717552694264

(复制密码)

点击粘贴按钮将所复制的密码全部粘贴到 HTTP模糊测试工具中。

1717552710_665fc6467ebeaa59a04fa.png!small?1717552711516

(粘贴密码)

2.2 按以下规则对赋值进行处理

之前分析可知该值首先由“用户名”+“分隔符冒号”+“密码(md5)”组合构成,其次在对构成后的组合进行 base64 的编码。我们进行 3 步设置,具体如下:

1.生成密码对应的 MD5 值:

点击右侧加号进行设置处理规则。

1717552743_665fc667a54c383b32662.png!small?1717552747105

(新建规则)

处理方式选择变体值哈希,哈希选择 MD5(32 位):

1717552772_665fc68467e281447d46e.png!small?1717552773156

(MD5 处理)

2.添加变体值的前缀

此时密码的 MD5 值已经生成,接下来为该密码添加前缀用户名,注意一并添加分隔符冒号,依旧点击添加规则,然后选择变体值添加前缀,前缀为“carlos:”

1717552821_665fc6b536f47ba5e1e27.png!small?1717552821918

(添加前缀)

3.base64 编码

设置完成后上述两步后,此时我们只需要对整体的值进行 base64 编码即可,依旧点击添加规则,然后选择变体值编码,编码方式为 Base64 编码。

1717552827_665fc6bbac30f8d133ecd.png!small?1717552828430

(base64 编码)

至此我们已经成功设置完成了变体值的处理方式 。

1717552833_665fc6c15de26084d84a0.png!small?1717552834183

(设置完成)

点击赋值方式右侧的小眼睛可以对设置完成的数据进行预览。

1717552838_665fc6c61245bb12ba0c1.png!small?1717552838899

(预览规则)

设置匹配规则

通过之前收集后台界面信息可知,成功登录的页面包含字符串“Update email”,所以我们进行规则匹配,具体操作如下:

点击测试过程模块,在模块中选择匹配规则。

1717552850_665fc6d201d47c097d205.png!small?1717552851178

(匹配规则)

点击添加按钮创建新的匹配规则。

1717552868_665fc6e4eb1e493fcd6bf.png!small?1717552870330

(添加规则)

在新弹出的页面中:

  • 匹配位置:HTTP 响应头部
  • 匹配类型:包含字符串
  • 匹配规则:Update email

1717552874_665fc6ea56ada41b4f6a4.png!small?1717552875448

(设置规则)

设置完成后,接下来就可以启动测试了。

启动测试

设置完成后,点击“测试过程”-->“启动测试”,可以看到返回数据很多:

1717552879_665fc6efad954e1aee26d.png!small?1717552880562

(测试数据)

接下来我们直接通过筛选匹配规则精确得出正确的数据:

1717552886_665fc6f6941e5b8254841.png!small?1717552887681

(筛选匹配)

如果你遇到了状态码返回全部为 302,请在测试配置中切换 HTTP 重定向为“无条件跟踪重定向”。

1717552892_665fc6fc3211044a36ebc.png!small?1717552893091

复制筛选出数据包中的变体值,打开 TangGo 主界面中的编码解码工具:

1717552898_665fc702c680511bd18e9.png!small?1717552900065

(编码解码工具)

对数据包依次进行base64 解码-->md5 解密后即可得到正确的密码值

1717552900_665fc704f0ec0ee0a1d8a.png!small?1717552902411

(base64 解码)

1717552910_665fc70e126c777357a9d.png!small?1717552911014

(MD5 查询)

输入账号“carlos”和密码“121212”成功登录。

1717552916_665fc714876a4399d9f59.png!small?1717552917347

(成功登录)

至此使用 Cookie 认证的方式爆破得到了用户的密码并成功登录了后台。

测试总结

漏洞总结:

  1. 使用基于 Base64 编码和 MD5 哈希的身份验证 Cookie,其中包含了用户名和密码的信息。
  2. 攻击者可以通过对该 Cookie 进行逆向工程,尝试使用 MD5 哈希算法生成密码的哈希值,并与已知的用户名组合,以尝试构造有效的身份验证 Cookie。

解决方法:

  1. 使用更强大的加密算法,如 SHA-256,替代不安全的 MD5 哈希算法。
  2. 不要将用户的密码直接存储在 Cookie 中,而是使用随机生成的令牌,并在服务器端进行验证。
  3. 加强会话管理,确保在用户登录时生成新的会话令牌,并在用户注销或会话超时后使其失效。

注意:工具使用内容请以最新版本为主。


# 漏洞 # web安全 # 暴力破解 # Cookie # 靶场复现
本文为 TangGo测试平台 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Burpsuite靶场合集
TangGo测试平台 LV.4
糖果,给测试加一点甜!
  • 11 文章数
  • 13 关注者
同事都点点点,就我还在手输入命令行?
2024-06-21
Burpsuite靶场|通过SQL注入获得隐藏的数据
2024-06-19
Burpsuite靶场|通过修改密码功能进行暴力破解
2024-06-13
文章目录