TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

admin 2024年7月4日14:18:18评论4 views字数 3510阅读11分42秒阅读模式
TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

 

01 靶场说明
测试背景:本次靶场为一个 Web 的登录界面。该网站存在一个安全机制,如果同一账户连续错误登录三次,将会触发IP封禁,以防止暴力破解攻击。

靶场提供了一个有效的用户和一个测试账户,任务是破解出测试用户的密码。为了绕过IP封禁机制,我们使用修改密码功能进行爆破。具体来说,在登录有效用户后,使用修改密码功能时可以更改当前的用户名为测试用户名,并根据修改密码后页面返回的信息从而暴力破解出测试用户的密码。

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

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

测试靶场名称:Password brute-force via password change

测试靶场地址:https://portswigger.net/web-security/authentication/other-mechanisms/lab-password-brute-force-via-password-change

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

靶场原文描述

02 测试思路
访问目标网站:首先,访问目标网站并进入其登录页面。

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

查看返回响应:查看当前密码输入错误的时候页面返回的响应,查看当前密码正确但设置的两次新密码不一致的时候页面返回的响应。

判断存在漏洞:根据返回响应可以得出修改密码前会判断密码是否为当前用户的正确密码,所以可以通过此处暴力破解“carlos”的密码。

抓取数据包:使用HTTP抓包测试工具,抓取修改密码发送的请求数据包。

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

获取正确密码:通过设置发包后流程,我们成功找到了“carlos”用户的正确密码。

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

03 使用实操
访问和登录

首先启动 HTTP抓包测试工具,打开右上角内置浏览器TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解,之后在浏览器中访问靶场的网站,加载后是一个普通的网页:

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

靶场首页

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

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

登录页面

在登录页面中,输入正确的用户名(winner)和密码(peter),点击登录后,成功进入后台页面,发现后台页面中不仅包含了“Update email”,还有一个新功能“Change password”。

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

登录后台

抓取修改密码当前用户 wiener 密码的数据包,首先我们回到 HTTP抓包测试工具中,开启抓包拦截TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解,之后回到内置浏览器中,在修改密码框中,依次填写当前密码(peter)和两次新密码(123456),之后点击“Change password”,此时通过 HTTP抓包测试工具,我们成功抓取到修改密码的请求数据包:

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

修改密码数据包

通过分析抓取到的修改密码请求数据包,我们可以得出数据包中的“username”字段的值为用户名(winner),“current-password”字段的值为输入的密码(peter),“new-password-1”和“new-password-2”字段的值为两次填写的新密码(123456)。

既然显示了“username”字段,我们尝试修改“username”字段的值为测试用户 “carols”,查看修改的用户名是否可控。

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

关闭 HTTP抓包测试工具中拦截开关TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解,回到浏览器中可以发现页面返回:

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

当前密码无效

发现页面显示“Current password is incorrect”,提示密码不正确,说明username字段生效了,后端尝试去修改了carols的密码,不过密码错误所以失败了,同时也说明了此处没有越权修改他人密码的漏洞。在这个靶场中,我们还看到了修改失败后,页面显示的用户变为了“carols”,进一步验证了我们的猜想。多尝试几次,发现此处没有对修改用户密码的次数进行限制,那么我们就可以通过修改密码来对其他用户的密码进行暴力破解。

如果我们利用该规则,对“carlos”的密码进行暴力破解,那么当爆破出正确密码的时候,返回的数据包中就不包含“Current password is incorrect”的字段。

如何爆破“carlos”的密码,具体操作如下:

我们只需要抓取修改密码的请求数据包,并且把用户名“wiener”修改用户名为“carols”,然后通过 HTTP模糊测试工具对 password 字段的值进行爆破即可。

参数设置

再次抓取修改密码请求数据包,在操作选项卡中把抓取到的数据发送到 HTTP模糊测试工具中,工具会自动打开并跳转:

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

发送到 HTTP模糊测试工具中

步骤 1 - 设置请求参数

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

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

修改 winner

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

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

标记 peter

注意:这里我们并没有输入一致的新密码,原因是如果当我们输入一致的新密码,当爆破出正确密码的时候,往往会修改掉测试用户的密码,这并不是我们的本意。

步骤 2 - 设置请求参数

01
重放模式
TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

模式选择

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

02
变体赋值
点击靶场提供的“Candidate password”:

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

Candidate password

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

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

复制密码

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

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

粘贴密码

设置自定义流程

根据之前分析我们可以得知,当页面不显示“Current password is incorrect”的时候,证明我们已经爆破出了正确的用户名,所以我们就不用继续爆破后续的密码了。这里我们使用发包后流程实现上述规则。

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

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

新建规则

在弹出的页面中选择“关键节点条件判断,根据判断结果决定流程走向”。

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

设置操作类型

点击蓝色选项框新建选项,在弹出的新建匹配规则中进行如下设置:

设置规则发包运行如下:

○ 对象类型:因为需要提取响应后的数据,所以选择模糊测试响应数据。

○ 对象属性:因为需要提取内容,所以选择 HTTP 响应 Body。

○ 判断方法:因为需要不包含指定的内容,所以选择不包含字符串。

○ 特征数据:填写需要匹配的特征数据,这是为字符串“Current password is incorrect”。

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

设置匹配规则

设置匹配结果,如果响应数据中不包含字符“Current password is incorrect”则会结束所有测试。

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

设置匹配后执行规则

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

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

发包后流程设置完成

启动测试

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

成功触发了发包后流程,结束了测试流程。

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

返回数据

点击错误进行排序,可以发现顶部的数据显示“发包后关键节点判断流程匹配规则, 结束所有测试”并且只有一条,所以我们可以肯定该数据包的变体为正确的密码“princess”。

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

错误排序

点击该数据包在右侧中选择页面浏览,我们可以看到确实不包含“Current password is incorrect”字段,而是“New passwords do not match”。

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

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

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

成功登录

至此,在用户登录存在登录次数限制(错误次数过多会封禁IP)的情况下,使用一个可登录的用户进入系统,通过修改密码模块,成功暴力破解出其他用户的密码。

04
测试总结
测试漏洞:密码暴力破解漏洞。

● 登录密码更改功能中,如果输入错误的当前密码,系统会根据新密码是否匹配来返回不同的错误消息,从而泄露当前用户的正确密码。

● 攻击者可以利用这一漏洞通过尝试不同的新密码组合来枚举正确的当前密码。

解决方案:

● 在密码更改功能中,始终返回相同的错误消息,无论新密码是否匹配,以防止攻击者通过错误消息来推断当前密码是否正确。

● 在密码更改请求中,不要将当前密码作为隐藏输入字段发送给客户端,以降低攻击者获取当前密码的可能性。

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

下载和反馈

01
TangGo社区版本下载:

· https://tanggo.nosugar.tech/

02
反馈问题:

· https://github.com/TangGolang/TangGo/issues

TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

原文始发于微信公众号(无糖反网络犯罪研究中心):TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月4日14:18:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   TangGo | Burpsuite靶场-通过修改密码功能进行暴力破解https://cn-sec.com/archives/2801626.html

发表评论

匿名网友 填写信息