Burpsuite靶场|根据网站登录提示差异枚举存在的账号(基础篇)

阅读须知

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

系列说明

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

靶场说明

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

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

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

测试靶场Lab: Username enumeration via different responses | Web Security Academy

工具下载:TangGo测试平台 (nosugar.tech)

(靶场原文描述)

测试思路

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

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

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

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

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

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

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

使用实操

访问和登录

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

(靶场首页)

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

(登录页面)

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

(无效的用户名)

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

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

枚举用户名

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

抓取数据包

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

(登录数据包)

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

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

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

参数设置

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

步骤 1- 设置请求参数

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

(标记 aa)

步骤 2-设置变体参数

1.重放模式

(模式选择)

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

2.变体赋值

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

(Candidate usernames)

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

(复制用户名)

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

(粘贴用户名)

启动测试

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

(启动测试)

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

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

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

(用户名正确)

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

枚举密码

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

步骤 1- 设置请求参数

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

(标记 b)

步骤 2-设置变体参数

1.重放模式

(设置重放模式)

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

2.变体赋值

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

(Candidate passwords)

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

(复制密码)

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

(粘贴密码)

启动测试

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

(启动测试)

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

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

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

(成功登录)

测试总结

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

用户名枚举:

  • 攻击方法: 发送不同的用户名,观察页面返回数据的响应以判断用户名是否有效。
  • 响应特征: 网站可能对存在用户和不存在用户返回不同的数据内容,测试人员通过返回数据来区分存在的和不存在的用户。

密码暴力破解:

  • 攻击方法: 对已经存在的用户名尝试多个密码组合,以得出正确的密码。
  • 响应特征: 网页可能根据密码的正确性返回不同的数据响应,如密码错误或密码无效,测试人员通过返回数据来区分正确和错误的密码。

解决方案:

  • 用户隐私保护:系统应避免在错误消息中泄露有关用户名的详细信息,例如明确指出“用户名错误”或“密码错误”。
  • 限制登录尝试:实施登录尝试次数限制,例如在多次失败的尝试后锁定用户账户或增加延迟时间。
  • 密码策略:要求用户使用强密码,并实施密码复杂性要求,例如包含大小写字母、数字和特殊字符。
  • 监控和报警:实施实时监控和报警机制,以检测异常登录行为并及时采取响应措施。

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


  • 45
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值