作者:only_guest( www.2cto.com 成员)
简要描述:
权限绕过+跨站+服务端未验证=一夜之间4亿用户的悲剧
详细说明:
先登陆 http://faxin.soso.com/ 有cookie后打开下面的页面 http://faxin.soso.com/_JSON_Page_User_Getgold.php?method=sendInvite¶meters=%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
修复方案:
你们最专业了..
查看更多关于腾讯3个鸡肋漏洞组合的利用及修复方案 - 网站安的详细内容...