文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
9.4 验证码绕过测试
9.4.1 测试原理和方法
在一些案例中,通过修改前端提交服务器返回的数据,可以实现绕过验证码,执行我
们的请求。
9.4.2 测试过程
攻击者进入注册账户页面,输入任意手机号码,获取验证码,在注册账户页面填写任
意验证码,提交请求并抓包,使用抓包工具查看并修改返回包信息,转发返回数据包,查
看是否注册成功,如图 9-19 所示。
图 9-19 验证码绕过测试流程
以某 P2P 网站系统注册功能为例。
步骤一:首先输入任意手机号码和密码,我们此处以 18888888886 为例,单击“获取
手机验证码”,由于我们无法获取到 18888888886 这个手机的真实验证码,我们随意填写一
个验证码 1234,如图 9-20 所示。
步骤二:单击注册领红包并通过 burp 对数据包进行截获,右击选择 Do intercept-Response to this request,如图 9-21 所示。
图 9-20 输入手机号码
图 9-21 抓取数据包
步骤三:然后单击 Forword 后,burp 工具里显示的就是网站返回的数据包。因为我
们填写的手机验证码 1234 肯定是错误的,而此时 res_code 的值为 1,证明了当手机验证码
错误时 res_code 的值为 1。我们将返回数据包中的 res_code 的值改为 0,从而实现绕过验证
码,如图 9-22 所示。
步骤四:继续单击 Forword 后,即可成功注册该手机号码 18888888886 的账号并登录跳
转到用户界面,如图 9-23 所示。
图 9-22 修改返回值
图 9-23 注册成功并登录
9.4.3 修复建议
针对此漏洞,建议在服务端增加验证码的认证机制,对客户端提交的验证码进行二次
校验。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论