巧妙绕过网站访问速率限制
大家好!
这篇文章我将和大家分享如何绕过某个网站中表单上传的速率限制,让我们开始吧!
关于速率限制:
这种功能的实现一般是通过检查session缓存中的信息来识别某个用户session或IP地址在短时间内访问过多,应该限制访问速率。
如果某个客户端在特定时间段内发出过多请求,后端服务器则会直接返回错误代码429:请求过多。
侦察阶段:
在前期侦察过程中,我注意到基本所有功能都有速率限制,所以我开始考虑如何绕过,一旦成功,我就可以对多个功能进行暴力攻击,例如:
瞬间创建多个新用户
暴力破解登录密码
双因素验证绕过
第一次尝试:
首先,我想先测试一下速率限制的具体机制,所以利用不同的IP通过不同的速度发送请求。最后我发现,短时间内相同IP在发送了4个请求后,再发送第五个请求就会被阻塞。
OK!通过这个测试,我感觉到速率限制主要是由IP进行标识。基本上每个IP在发送了4个请求后的第5个请求都会被阻塞,后端服务器应该是有一个IP访问计数器。
有趣…
我立刻想到:实现速率限制功能时的一个常见错误是,限制规则往往会把本地IP放在白名单,例如127.0.0.1(localhost)等。
第二次尝试:
于是我在请求中添加了HTTP请求头X-Remote-IP:127.0.0.1
然后…速率限制被成功绕过!
攻击场景:
我很快就进行了几种暴力攻击,例如:暴力破解登录密码
利用密码更改进行垃圾邮件攻击:
当然,你也可以对双因素身份验证进行暴力破解。
提示:
有一个Burpsuite的插件可以自动把这个请求头插入到所有的HTTP请求中,您可以在这里找到它
具体页面如下:
希望你喜欢这篇文章!
本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://medium.com/bugbountywriteup/bypassing-rate-limit-abusing-misconfiguration-rules-dcd38e4e1028
最新评论