漏洞发现
点击登陆,输入手机号,点发送验证码,弹出对话框要求输入图片验证码,我输入后用BurpSuit拦截请求继续重放,发现后台应该没有校验图片验证码,一样可以发送。
尝试重放,发送多次后,发现提示发送次数达到上限,换个手机号,还是这个提示。
开始我以为对cookie做了校验,切换浏览器后,依然不行,想到应该对ip地址做了判断,于是想到了XFF攻击。
漏洞利用
HTTP请求头会将IP地址放到X-Forwarded-For中,于是在请求报文中,尝试手动改变该请求头的值:
这样可以绕过次数限制,造成短信炸弹。
漏洞修复
图片验证码校验不要搞成假的,要真正的验证,ip的获取不要单纯从X-Forwarded-For该字段获取。
获取ip地址建议用以下方式:
对于直接使用的 Web 应用,必须使用从TCP连接中得到的 Remote Address,才是用户真实的IP。
想学习更多网络安全的知识,可以关注公众号“SCLM安全团队”。