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

Track-SSG   ·   发表于 2019-02-21 10:58:27   ·   漏洞文章

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
               


    打赏我,让我更有动力~

    0 条回复   |  直到 2019-2-21 | 1188 次浏览
    登录后才可发表内容
    返回顶部 投诉反馈

    © 2016 - 2024 掌控者 All Rights Reserved.