freeBuf
主站

分类

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

特色

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

点我创作

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

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

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

FreeBuf+小程序

FreeBuf+小程序

Burpsuite靶场 | 使用成功登录破除IP限制后暴力破解密码
TangGo测试平台 2024-05-29 17:55:32 120623

读须知

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

靶场说明

测试背景:本靶场设定的登录用户密码为弱密码,请你尝试暴力破解密码并登录。请注意,靶场已实施 IP 请求限制措施。具体而言,同一账号若连续登录失败3次,将触发 IP 地址封禁机制。然而,在达到3次失败限制之前,若账号登录成功,系统将重置该 IP 的失败次数限制。

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

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

工具下载:TangGo测试平台

测试靶场https://portswigger.net/web-security/authentication/password-based/lab-broken-bruteforce-protection-ip-block

1716976029_6656f99d569a2740d9828.png!small?1716976030688

(靶场原文描述)

测试思路

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

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

抓取登录数据包:使用HTTP抓包测试工具,抓取正确用户名的登录数据包,并保存下来,以便后续使用。

规避IP限制:在进行密码爆破之前,设定一个发包前置流程,即先使用正确用户名进行登录,以解除IP登录限制。

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

获取正确密码:通过比较和分析响应状态码的差异,我们成功找到了“carlos”用户的正确密码。

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

使用实操

访问和登录

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

1716976048_6656f9b033afc3d8ba4c6.png!small?1716976049411

(靶场首页)

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

1716976058_6656f9ba33a8ae0da4b34.png!small?1716976058690


(登录页面)

在登录页面中,输入正确的用户名(winner)和密码(peter),点击登录后,成功进入后台页面:

1716976065_6656f9c1563368e2ff4fe.png!small?1716976065867

(登录后台)

点击“Log out”回到登录界面,抓取登录的请求数据包,操作如下:

首先我们回到 HTTP抓包测试工具中,开启抓包拦截,之后回到内置浏览器中,在登录框中输入账号(winner)和密码(peter)后点击登录,此时通过 HTTP抓包测试工具,我们成功抓取到登录请求的数据包:

1716976073_6656f9c96f5e2f65f350f.png!small?1716976076841

(登录数据包)

通过分析抓取到的登录请求数据包,我们可以得出数据包中的“username”字段的值为输入的用户名(winner),“password”字段的值为输入的密码(peter),此数据包为正确用户的登录请求数据包,我们将此数据包发送到数据重放模块以便于保存和后续使用。

在操作选项卡中把抓取到的数据发送到数据重放模块中保存起来。

1716976148_6656fa14c0ea6c90f32e1.gif!small?1716976150006

因为可以通过修改登录请求包的‘username’和‘password’字段来进行接下来的暴力破解测试,所以不需要重新抓取新的登录请求数据包,只需要修改数据包中对应的字段值即可进行测试。

参数设置

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

1716976155_6656fa1b8b6d4f75ac023.gif!small?1716976159010

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

步骤 1- 设置请求参数

修改“username”后的字段值为测试用户的名字,即把“winner”修改为“carlos”:

1716976163_6656fa2360fca2f2d3221.png!small?1716976164469

(修改 winner)

对需要破解的密码字段进行标记,这里标记需要“password”字段的值“peter”:

1716976169_6656fa29b488bc010dc8b.png!small?1716976170369

(标记 peter)

步骤 2-设置变体参数

1.重放模式

1716976176_6656fa303a6e06e82a63b.png!small?1716976177207

(模式选择)

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

2.变体赋值

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

1716976188_6656fa3c21831fded11f9.png!small?1716976188712

(Candidate password)

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

1716976195_6656fa4358009016bcf97.png!small?1716976195940

(复制密码)

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

1716976203_6656fa4b129c0a0c7029f.png!small?1716976204795

(粘贴密码)

启动测试

点击“测试过程”-->“启动测试”。

在测试返回的数据中,我们发现前三个数据返回的长度和后面长度不一致,我们分别查看对应长度返回的数据内容:

1716976213_6656fa55bbdda5927832a.png!small?1716976214330

(返回数据)

长度为 3322 的数据包响应内容为“Incorrect password”,表示无效的密码。

1716976220_6656fa5c330e5c224376b.png!small?1716976221388

(长度 3322)

长度为 3385 的数据包响应内容为“You have made too many incorrect login attempts. Please try again in 1 minute(s).”

1716976225_6656fa61c93e2bc7f0ffd.png!small?1716976226655

(长度 3385)

翻译成中文的意思为“您进行了太多不正确的登录尝试。请在1分钟后重试”,表明我们爆破的次数过多,IP 已经被限制登录,这时候我们会考虑,如果使用 IP伪造能不能绕过限制呢?

IP伪造:通过添加X-Forwarded-For、Client-IP等头部来伪造IP地址,以绕过目标站点获取IP地址的检测(仅适用于目标站点获取客户端IP地址机制存在缺陷的情况下)

ip 伪造

通常 IP伪造 的做法是在 HHTP 请求头中添加“X-Forwarded-For”,而 TangGo 中只需要在“测试配置”中勾选 IP 伪造。

1716976241_6656fa71358d10b9ca1e0.png!small?1716976241986

(勾选伪造 IP)

再次点击测试,我们可以发现测试返回数据包前三个的长度依旧为“3322”,后三个为“3385”:

1716976249_6656fa792a6fb9e972dea.png!small?1716976249868

(返回数据)

查看返回长度为“3385”的数据包,显示内容为“You have made too many incorrect login attempts. Please try again in 1 minute(s).”说明 IP 伪造后依旧被限制了登录。

1716976254_6656fa7ee78127b6317b8.png!small?1716976255541

(长度 3385)

通过上面测试发现,靶场做了对应的 IP 请求限制, 如果同一账号登录失败 3 次则限制该 IP 地址,那么如果在登录失败 3 次之前,进行一次正确的登录,是否能绕过该限制呢?

传统的方法涉及到一个用户名 carlos 和 winner 交替的字典生成,并在该字典中为每个 winner 用户名添加对应的密码 peter。然后,进行交替的暴力破解尝试,模拟 carlos 不断猜测密码和 winner 正常登录的场景。然而,这种方法需要消耗时间去构建密码字典,即使可以借助代码或程序自动化这个过程,也仍然需要投入学习和开发的时间。

而TangGo 的做法简单了许多,我们只需要在自定义流程中设置一个发包前流程,在每次爆破密码前进行正确用户名的登录。具体方法如下:

设置自定义流程

点开自定义流程模块,在发包前流程中点击右上角新建按钮。

1716976272_6656fa90b28d729817a35.png!small?1716976274033

(新建规则)

在弹出的页面中选择“发送 HTTP 请求”。

1716976277_6656fa95df80516c79965.png!small?1716976278555

(设置操作类型)

选择请求数据包,导入之前存放在 HTTP抓包测试工具重放模块中的正确用户请求登录数据包,最后响应数据绑定到变量中,即可全局调用该变量本文中并未使用绑定变量值,因为此处的发包前流程只模拟正确的用户登录。

1716976388_6656fb04727afd15b43c2.png!small?1716976390045

(导入数据)

点击右下角的测试按钮,在弹窗中可以通过点击“流程测试”按钮,查看请求数据包是否成功发送,响应数据是否正确;此处响应数据中的响应码为 302,表示正确登录。

1716976395_6656fb0b1b46f1d38471a.png!small?1716976395736

(测试数据)

设置完成后点击确定按钮,完成发包前流程设置。

1716976401_6656fb119f1e1897b5f03.png!small?1716976402329

(发包前流程设置完成)

启动测试

设置完成后,点击“测试过程”-->“启动测试”:

可以发现返回的数据长度均为“3245”,并且绕过了 3 次登录的 IP 请求,说明我们的猜想是正确。

1716976408_6656fb1812430cd9a3bc7.png!small?1716976408909

(返回数据)

如果您觉得测试速度很慢,可以在“测试配置”中使用多线程,不过请注意,为了避免同一时间的请求线程超过对应的 IP 限制,这里的线程数应当小于 IP 请求的限制数,所以设置线程数为 2.

1716976414_6656fb1ee6ca7c03cf54f.png!small?1716976415656

(多线程设置)

查看响应数据中的状态码,正确的密码会成功登录页面,所以响应的状态码为 302,通过点击状态码进行排序,得到正确的密码为“thomas”。

1716976421_6656fb253b17ed1284371.png!small?1716976422440

(302 状态码)

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

1716976426_6656fb2acfd1dced0f7f3.png!small?1716976427959

(成功登录)

至此绕过了 IP 登录的限制并且成功拿到了正确的用户密码。

测试总结

测试漏洞:密码暴力破解漏洞

  • 用户连续输入错误密码后系统会暂时禁止登录,但可通过重置计数器来规避此限制。
  • 攻击者利用此漏洞进行密码暴力破解攻击,尝试多个用户名和密码组合。

解决方案:

  • 强化密码策略,要求用户使用更强密码,并定期更换密码。
  • 实施账号锁定策略,在一定次数的错误尝试后暂时禁止登录。
  • 增加登录验证机制,采用多因素身份验证来提高身份验证的复杂度和安全性。
  • 实施延迟响应机制,在用户连续输入错误密码后增加登录尝试的时间间隔。

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


# 网络安全 # web安全 # 系统安全 # 抓包工具 # 靶场实战
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 TangGo测试平台 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Burpsuite靶场合集
相关推荐
TangGo测试平台 LV.4
糖果,给测试加一点甜!
  • 11 文章数
  • 13 关注者
同事都点点点,就我还在手输入命令行?
2024-06-21
Burpsuite靶场|通过SQL注入获得隐藏的数据
2024-06-19
Burpsuite靶场|通过修改密码功能进行暴力破解
2024-06-13
文章目录