本文的知识内容,仅供网络安全从业人员学习参考,用于已获得合法授权的网站测试,请勿用于其它用途。请勿使用本文中的工具、技术及资料,对任何未经授权的网站、系统进行测试,否则,所造成的直接或间接后果,均由您自行承担。
李老板联系你,他说公司已修复验证码复用漏洞,且管理员密码未泄露。但管理员手机号(18888888888)已泄露,有人利用此信息登录并更改了管理员密码。李老板提供了管理员账号(admin)和后台登录网站(xxx.com)李老板提供了管理员账号(admin)和后台登录网站(xxx.com)。
1. 访问后台登录网站:首先访问后台登录的网站。
2. 发现“忘记密码”选项:登录界面提供了“忘记密码”选项,可能为修改密码的突破点。
3. 利用“忘记密码”功能:点击“忘记密码”选项,并填入管理员的手机号,以便获取短信校验码。
4. 抓取修改密码请求:打开抓包软件,抓取提交修改密码的请求数据包。
5. 暴力枚举短信校验码:由于短信校验码是四位数字,打算决定从0000到9999进行枚举测试。
6. 找到符合要求的验证码:通过枚举测试,最终找到了一个符合要求的验证码。这意味着他们成功通过了短信校验这一步。
7. 替换响应数据:查看该验证码发送请求后得到的响应,发现响应状态码为200,表示请求成功,复制该响应并替换到抓取请求的数据包的响应。
8. 进入修改管理员密码界面:通过替换响应数据,攻击者成功进入了修改管理员密码的界面。
9. 成功修改管理员密码:最后,攻击者成功修改了管理员密码,获得了对后台的完全访问权限。
注意:本文中漏洞出现的情况仅代表教学漏洞,实际情况请注意甄别。
抓包数据
打开 HTTP抓包测试工具,打开右上角内置浏览器,在浏览器中访问李老板提供的网站,加载后是一个登录界面:
根据李老板所说,管理员账号密码并没有泄露,所以这里应该是通过忘记密码修改了管理员的密码,点击忘记密码页面:
输入手机号码后点击获取短信校验码:
回到 HTTP抓包测试工具中开启拦截(拦截之后注意不要放行该数据包),在浏览器中输入任意短信校验码后,点击提交认证信息:
成功抓取到数据包:
这是一个 POST 的请求包,其中最后一行phone_number=18888888888&sms_verification_code=1234中的前部分为手机号码,后部分为验证码。因为不存在越权漏洞和验证码为空等,所以尝试暴力破解验证码,把数据包发送到 HTTP模糊测试工具中:
等待软件自动启动并且跳转到对应的界面。
参数填写
步骤1-设置请求参数
设置验证码的值(1234),并给它打上标记:
步骤2-设置变体参数
1.重放模式
因为只需要测试验证码,所以选择重放模式为“单字典逐一爆破模式”:
2.变体赋值
选择赋值方式为数字自增长模式,设置从 0 到 9999,这样就可以测试出所有的四位数验证码,但是请注意第一个验证码应该是“0000”,所以请勾选补零。
设置完成后,点击小眼睛可以预览测试数据:
开始测试
点击“测试过程”页面,点击右上角“启动测试”,可以得到许多数据。
如果有正确的验证码登录返回的长度肯定会不一致,此处选择按长度进行排序:
发现数据中有一个长度为 335 的数据包,验证码为 4880:
点击该数据包,右侧查看响应包:
复制该响应包的内容,回到 HTTP抓包测试工具中,点击放行,将一直拦截着的数据包放行,等待拦截到放行该包后的响应数据包,如下图所示:
将其替换为我们刚刚复制的破解成功的响应包,如下图所示:
解释:这里普遍的做法是使用刚刚得到的验证码(4880)进行登录,但是验证码只能使用一次,再次登录还是会提示验证码错误。
不过成功登录后的状态是存在的,所以只需要拿到成功登录的响应包进行替换,就能成功进入修改密码页面。
1.抓包拦截验证码验证的数据包(必须拦住,不能放行)。
2.发送到模糊测试工具,暴力破解,拿到响应数据(越权或者得到了登陆后的cookie,这里属于第一种)。
3.将抓包工具拦住的包放行,再替换这个包的响应数据为模糊测试工具暴力破解成功的响应数据。
替换内容后,关闭拦截,回到内置浏览器中可以得到修改密码的页面:
修改密码后提示成功修改密码:
返回首页进行重新登录:
输入用户名(admin)和修改后的密码以及验证码:
登录成功后,得到对应的 flag:
至此成功找到李老板所说的问题,该漏洞为暴力破解验证码漏洞,可导致管理员密码被修改。
测试漏洞:
暴力破解验证码漏洞指的是攻击者利用自动化工具,不断尝试各种可能的验证码组合,以尝试绕过验证码验证机制的安全措施。通常,验证码用于验证用户是否为人类而不是自动化程序或机器人。验证码通常是一种简单的图形或数字挑战,要求用户在登录或注册过程中正确输入。然而,四位数的验证码相对较短,可能存在被猜测和暴力破解的风险。
解决方案:
1. 增加验证码复杂度:提高验证码的复杂度,包括增加验证码长度、使用字母、数字和特殊字符的组合、随机化验证码内容等,增加破解难度。
2. 限制尝试次数:在验证过程中限制用户尝试输入验证码的次数和频率,超过一定次数或频率后暂时锁定账户或增加验证步骤,以防止暴力破解攻击。
3. 实施账户锁定机制:当用户连续多次输入错误验证码时,暂时锁定账户一段时间,防止攻击者继续尝试暴力破解。
4. 添加人机验证:在验证码之外添加人机验证机制,如图像识别、滑块验证、短信验证码等,增加破解难度。
5. 定期更新验证码:定期更新验证码算法和生成逻辑,防止攻击者建立有效的破解模型。
流程图:
注意:工具使用内容请以最新版本为主。
下载和反馈
TangGo社区版本下载:
· https://tanggo.nosugar.tech/
反馈问题:
· https://tanggo.nosugar.tech/#/feedback
· 通过微信交流群反馈:关注【无糖反网络犯罪研究中心】公众号,回复“TangGo”,加入交流群进行反馈。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...