巧妙绕过网站访问速率限制

iso60001  1886天前

22.png

大家好!

这篇文章我将和大家分享如何绕过某个网站中表单上传的速率限制,让我们开始吧!

关于速率限制:

这种功能的实现一般是通过检查session缓存中的信息来识别某个用户session或IP地址在短时间内访问过多,应该限制访问速率。

如果某个客户端在特定时间段内发出过多请求,后端服务器则会直接返回错误代码429:请求过多。

33.png

侦察阶段:

在前期侦察过程中,我注意到基本所有功能都有速率限制,所以我开始考虑如何绕过,一旦成功,我就可以对多个功能进行暴力攻击,例如:

  • 瞬间创建多个新用户

  • 暴力破解登录密码

  • 双因素验证绕过

第一次尝试:

首先,我想先测试一下速率限制的具体机制,所以利用不同的IP通过不同的速度发送请求。最后我发现,短时间内相同IP在发送了4个请求后,再发送第五个请求就会被阻塞。

OK!通过这个测试,我感觉到速率限制主要是由IP进行标识。基本上每个IP在发送了4个请求后的第5个请求都会被阻塞,后端服务器应该是有一个IP访问计数器。

有趣…

我立刻想到:实现速率限制功能时的一个常见错误是,限制规则往往会把本地IP放在白名单,例如127.0.0.1(localhost)等。

第二次尝试:

于是我在请求中添加了HTTP请求头X-Remote-IP:127.0.0.1

然后…速率限制被成功绕过!

攻击场景:

我很快就进行了几种暴力攻击,例如:暴力破解登录密码

44.png

利用密码更改进行垃圾邮件攻击:

55.png

当然,你也可以对双因素身份验证进行暴力破解。

提示:

有一个Burpsuite的插件可以自动把这个请求头插入到所有的HTTP请求中,您可以在这里找到它

具体页面如下:

66.png

希望你喜欢这篇文章!

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://medium.com/bugbountywriteup/bypassing-rate-limit-abusing-misconfiguration-rules-dcd38e4e1028

最新评论

昵称
邮箱
提交评论