TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

admin 2024年4月25日01:13:05评论7 views字数 3439阅读11分27秒阅读模式

阅读须知

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

系列说明

本系列文章为Burp靶场测试教学。我们将基于Burp提供的实验靶场,结合TangGo的各种工具对其进行复现和测试,以帮助你掌握TangGo在各类网络安全测试场景中的应用技巧。

01
靶场说明

测试背景:此靶场存在一个漏洞,它会受到用户名枚举攻击和密码暴力破解。请枚举出一个有效的用户名,并暴力破解此用户的密码,然后访问其帐户页面

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

必要条件:测试枚举所需要的账户用户名表单和账户密码表单均已提供。

测试靶场:https://portswigger.net/web-security/authentication/password-based/lab-username-enumeration-via-different-responses

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

靶场原文描述

02
测试思路

访问目标网站:访问目标网站并进入登录页面。

判断漏洞是否存在:尝试输入一个不存在的用户名和密码并点击登录。页面内容显示“Invalid username”,初步推测网站可能存在用户名枚举的漏洞。

枚举用户名:使用 HTTP模糊测试工具,对用户名进行了枚举测试。通过观察返回的数据,若数据包含“Invalid username”,则判断该用户名不存在;反之存在。

得到正确的用户名:通过返回数据的不同,成功找到了正确的用户名。当用户名正确而密码错误的时候,此时页面返回提示变为“Incorrect password”,接下来只需要进行密码爆破。

枚举密码:填入正确的用户名后,利用HTTP模糊测试工具,针对该用户名下的密码进行了暴力破解。通过观察返回数据,若数据包含“Incorrect password”,则判断该密码不正确;反之正确。

得到正确的密码:通过返回数据的不同,成功找到了正确的密码。

成功登录:使用得到的账号和密码,成功登入网站,说明账号和密码无误。

03
使用实操

访问和登录

首先启动 HTTP抓包测试工具,打开右上角内置浏览器TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇),之后在浏览器中访问靶场的网站,加载后是一个普通的网页:

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

靶场首页

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

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

登录页面

在登录页面中,输入任意账号和密码后点击登录(本文中使用账号“aa”和密码“b”进行举例),页面返回会出现提示“Invalid username”:

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

无效的用户名

该提示的中文翻译为“无效的用户名”,根据该翻译可以大胆推测此处存在用户名枚举漏洞。

枚举测试(Enumeration Testing)是一种特定的安全测试方法,主要用于识别和发现系统中潜在的安全漏洞和攻击面。通过枚举系统中可能存在的敏感信息或资产,测试人员能够更全面地了解系统的安全状况,并据此采取相应的防护措施。这种测试方法主要用于发现系统中的用户名、文件路径、服务信息、应用程序版本、端口状态等敏感信息,从而帮助安全团队评估系统的安全性和潜在风险。

枚举用户名

根据提供的账户用户名,进行用户名枚举,观察枚举后响应内容的数据,通过对比返回数据的不同来判断用户名是否存在。

抓取数据包

首先启动 HTTP抓包测试工具,开启抓包拦截TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇),之后回到内置浏览器中,在登录框中输入账号(aa)和密码(b)后点击登录,此时通过 HTTP抓包测试工具,我们成功抓取到登录请求的数据包:

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

登录数据包

通过分析抓取到的登录请求数据包,我们可以得出数据包中的“username”字段的值为输入的用户名(aa),“password”字段的值为输入的密码(b),接下来使用 HTTP模糊测试工具对 “username”字段的值进行枚举。

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

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

发送到 HTTP模糊测试工具中

参数设置

在 HTTP模糊测试工具中,我们需要对用户名进行测试枚举测试,设置方法如下。

步骤 1- 设置请求参数

对需要枚举的用户名进行标记,这里标记“username”字段的值“aa”:

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

标记 aa

步骤 2-设置变体参数

01
重放模式

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

模式选择

重放模式选择单字典逐一爆破模式,因为此处只需要对用户名进行枚举,所以选择此模式。

02
变体赋值

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

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

Candidate usernames

点击链接后,在弹出页面中,复制所有的用户名。

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

复制用户名

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

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

粘贴用户名

启动测试

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

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

启动测试

根据之前测试思路,我们可以得出以下总结:如果用户名有效,响应数据中将不会包含字符串“Invalid username”。由于不同响应数据的长度不同,因此我们可以利用“长度”按钮对返回数据进行排序。

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

排序完成后,顶部的数据长度明显和其余数据长度明显不一致,而其余数据中内容均带有字符串“Invalid username”。

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

选择顶部的数据,在右侧中单击“页面浏览”查看返回内容的界面,可以看到用户名正确的时候页面返回的提示内容变为“Incorrect password”。

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

用户名正确

至此成功枚举出账户的用户名为“arizona”,接下来只需要暴力破解出此用户的密码即可。

枚举密码

因为之前抓取到的登录数据包中包含用户名和密码,所以不需要重新抓包,只需要重新设置对应的请求参数之后再次进行测试。

步骤 1-设置请求参数

回到“请求包及变体设置”,修改 “username”字段值为之前枚举出的正确用户名“arizona”,因为需要暴力破解密码,所以此处标记“password”字段的值“b”:

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

标记 b

步骤 2-设置变体参数

01
重放模式

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

设置重放模式

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

02
变体赋值

点击靶场提供的“Candidate passwords”。

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

Candidate passwords

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

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

复制密码

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

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

粘贴密码

启动测试

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

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

启动测试

根据之前思路可以得知,此时用户名是正确的,如果密码正确,返回的响应数据中就不会包含字符串“Incorrect password”,由于不同响应数据的长度不同,因此我们可以利用“长度”按钮对返回数据进行排序。

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

排序完成后,顶部的数据长度明显和其余数据长度明显不一致,顶部数据中的变体值即为正确的密码,而其余数据中内容均带有字符串“Incorrect password”。

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

此时成功枚举出用户名并暴力破解了用户密码,账户的用户名为“arizona”,用户密码为“000000”,回到登录页面输入用户名和密码后,成功进入账户页面。

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

成功登录

04
测试总结

测试漏洞:用户名枚举和密码暴力破解。

用户名枚举:

    ● 攻击方法: 发送不同的用户名,观察页面返回数据的响应以判断用户名是否有效。

    ● 响应特征: 网站可能对存在用户和不存在用户返回不同的数据内容,测试人员通过返回数据来区分存在的和不存在的用户。

密码暴力破解:

    ● 攻击方法: 对已经存在的用户名尝试多个密码组合,以得出正确的密码。

    ● 响应特征: 网页可能根据密码的正确性返回不同的数据响应,如密码错误或密码无效,测试人员通过返回数据来区分正确和错误的密码。

解决方案:

    ● 用户隐私保护:系统应避免在错误消息中泄露有关用户名的详细信息,例如明确指出“用户名错误”或“密码错误”。

    ● 限制登录尝试:实施登录尝试次数限制,例如在多次失败的尝试后锁定用户账户或增加延迟时间。

    ● 密码策略:要求用户使用强密码,并实施密码复杂性要求,例如包含大小写字母、数字和特殊字符。

    ● 监控和报警:实施实时监控和报警机制,以检测异常登录行为并及时采取响应措施。

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

下载和反馈

01

TangGo社区版本下载:

· https://tanggo.nosugar.tech/

02

反馈问题:

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

TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月25日01:13:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   TangGo测试平台 | BURP靶场-根据网站登录提示差异枚举存在的账号(基础篇)https://cn-sec.com/archives/2688009.html

发表评论

匿名网友 填写信息