30

挖洞经验 | 雅虎(Yahoo)的速率限制漏洞($2k)

 4 years ago
source link: https://www.freebuf.com/vuls/225674.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

速率限制(Rate Limit)是为了限制某种资源在某段时间内被访问的次数,也即客户端发起请求的或服务端响应请求的次数,目的在于防止DoS攻击或对资源的无限请求下载。资源可以是网站服务、API接口或 磁盘读写等。本文中作者就通过发现了雅虎(Yahoo)网站评论区的速率限制漏洞,可在短时间内发送大量评论,造成评价拥塞,从而收获了雅虎官方奖励的$2000。

速率限制漏洞

在一些API接口中,应该考虑速率限制,限制每个客户端IP对API接口的请求是1分钟内最多多少次调用,如果超过该次数,那么,服务端应该采取拦截封堵,这样从服务端性能和资源安全性方面考虑,都会是一个很好的控制措施。

如果服务端未设置合理的速率限制(Rate Limit)措施,那么可以造成间接的DoS或是用户信息泄露。比如,若网站提供了邮箱和手机号码注册功能,并设置有忘记密码页面,但是却忘记针对忘记密码功能做速率限制(Rate Limit),那么我们对此可以发起两方面的利用:

1、在忘记密码页面中填入注册用户(受害者)的注册邮箱或手机号码,配合BurpSuite抓包,提交忘记密码请求,利用repeater或intruder模块进行多次数据包重放,1000次或上万次的重放将对受害者邮箱和手机造成信息轰炸;
2、收集或生成邮箱和手机字典,根据忘记密码页面请求的响应提示,判断网站注册用户,间接实现对网站注册用户的枚举。

雅虎(Yahoo)的速率限制漏洞

当然,速率限制漏洞不仅限于忘记密码页面,还会存在于一些用户评论、用户添加、用户邀请、评论发送或一次性密码(OTP)发送等功能中。就比如我最近在yahoo.com用户评论区发现的一个速率限制漏洞,利用该漏洞,我可以在1分钟内发送多达100到200条的GIF动图评论,在评论区造成GIF flood。如下:

bqQV7rR.jpg!web

mUbyui6.jpg!web

我发现yahoo.com网站中有4个服务端都存在类似漏洞,目前这些漏洞均已修复。用Intruder的复现步骤如下:

1、去到存在速率限制漏洞的评论区,发送评论;

2、用BurpSuite抓包并发送到Intruder模块;

3、清除其它多余参数,保留评论区参数;

bqamUzb.jpg!web

4、针对评论区构造任意评论内容字典,开始发起attack;

2Mjm227.jpg!web

5、attack结束,刷新评论区页面即可看到attack后留下的评论内容。

NjuimqB.jpg!web

同样,用Repeater点击多次送请求包也能实现同样效果:

YR77veQ.jpg!web

漏洞修复建议

1、在API接口中设置速率限制措施;
2、在API接口中设置严格的权限设置,严格防范IDOR漏洞;
3、对于忘记密码或注册等用户功能处,不给出明显的请求响应提示。

*参考来源: medium ,clouds 编译整理,转载请注明来自 FreeBuf.COM


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK