简要描述:

权限绕过+跨站+服务端未验证=一夜之间4亿用户的悲剧

详细说明:

先登陆
http://faxin.soso.com/
有cookie后打开下面的页面
<A href="http://faxin.soso.com/_JSON_Page_User_Getgold.<a%20href=" target=_blank http: www.2cto.com kf web php ?>php?method=sendInvite&parameters=%5B%225447055%22%5D">http://faxin.soso.com/_JSON_Page_User_Getgold.php?method=sendInvite&parameters=%5B%225447055%22%5D
中间%5B%225447055%22%5D里面的5447055是要发送的QQ号
随意设置,可以发送给任何人,但是系统中写的是邀请好友,但这里可以发给仍何人
打开页面显示true则为发送成功`对方电脑界面会显示一个QQ系统消息,提示好友邀请参加发薪计划.
所以造成了第一个权限绕过
之后就是我发现打开那个消息之后,加载的网页中会调用邀请人的QQ名称,我就使用QQ那个页面的一个H3的标签作为我的QQ姓名试了一下,发现果然存在跨站,而QQ的名称最长限制字符是24个字符,所以刚好够用<iframe>来做跨站,我就测试了下,可以成功,但是限制太大,因为只能24个字符,太短了.
但是这里跨站已经成功了,所以是第二个漏洞,跨站
之后为了突破QQ名字长度限制,就去抓了WEBqq的包,发现果然可以改长度,轻松达到30位以上,虽然QQ名称显示是24位,但其实已经有30多位了,在上面的跨站调用中成功.
第三个漏洞,服务端没有做长度的二次验证.

 
我做了小范围测试,我8M的带宽,限制每秒2000次提交,一小时近千万的发送量.
如果我换台高性能服务器呢?带宽在大点呢?

我们来算个简单数学题,跨站中挂个弹窗代码,我发送1亿用户,2千万点开了这个消息.
1000IP=5元
那么我就轻松有10万的收益了...
也许数据是理想值,但是如果挂的不是弹窗,是一个诱导下载呢?
你们自己算哦..

发现这漏洞后没有公布出去,也没有做任何利用,就立即提交了,希望能帮我们小组的几个人认证下腾讯微搏,提交了很多次了, 也没被通过.谢谢了.

漏洞证明:
http://faxin.soso.com/_JSON_Page_User_Getgold.php?method=sendInvite¶meters=%5B%225447055%22%5D

修复方案:

你们最专业了..

转载请注明来自WebShell'S Blog,本文地址:https://www.webshell.cc/1103.html