黑客利用QQ空间转发不良视频
大家经常会看到QQ空间自动转发一些附带链接的不良信息,即便我们的QQ密码并没有被盗取。最近通过对一个QQ空间自动转发链接进行分析,发现该自动转发机制通过利用腾讯网站存在漏洞的页面,精心构造出利用代码获取用户的QQ号和skey值,从而获得用户的一些敏感操作权限。并通过该漏洞自动转发一些不良信息诱导用户点击,从而导致大面积传播。
传播现象
如果有一天,你发现好多QQ好友空间都在发一条说说,并且这个说说附带了一个链接,像下图这样:
20158231429219
此时你就要注意了,那个网页你点进去你也会一起中毒,并在你没有察觉的情况下在你的空间转同样的内容。
针对这种情况,我们通过分析其原理得知其转发机制,下边我们以一个实例,并用最容易理解的方式来告诉大家这种不良信息是如何转发以及如何防范。
转发机制
腾讯地图的一个实时竞价页面存在一个XSS漏洞,由于没有对请求参数做严格检查,通过精心构造的请求数据导致返回信息中的数据可被利用来执行js代码,同时服务器没有对请求来源进行检测,因此可以造成CSRF攻击。
查看之前抓取到的利用该漏洞进行不良信息转发的页面,在该页面开头嵌入了一个iframe标签如下:
20158231429601
标签style为隐藏属性,从而使得该插入页面不会被用户发现,插入的页面链接就是构造好的url地址。
当页面被加载时,页面通过这个url接口向腾讯地图的RealTime Bidding服务器发送一个请求,服务器没有对请求来源进行效验,直接将请求的数据返回,并附带了一些查询信息,如下图所示,其中exploit是构造的利用代码。
20158231429857
当exploit = “
20158231429103
利用代码中的标签“
20158231429836
该js代码做了混淆,其按照OlOlll=”(x)”的方式进行替换,我们还原第一部分代码为:
eval(“var l = function(x){return String.fromCharCode(x)}”);
该处生成一个函数I,其功能是返回数字对应的ascii码,下边利用该函数将一些数字还原成新的函数,依次类推,最后解出来的功能代码如下所示:
201582314210104
代码通过document.cookie获取用户的cookie信息,然后从中提取uin值和skey值,通过抓包可以看到,uin值是由o开头加上QQ号组成,因此相当于就获取了用户的QQ号,skey是以@开头的一段字符。之后调用函数document.createElement创建了一对script标签来执行如下脚本:
201582314210763
其中参数q是QQ号,k为skey的值,getGTK(str)是为了给skey签名,这样可以确保skey是有效的。该脚本把获取到的QQ号和skey值通过附加到链接参数提交给远程服务器。
利用Skey进行敏感操作
Skey 是一次性口令,服务器为每个用户建立一个skey作为用户的权限代码,服务器验证该值即可获取用户的一些权限操作,该值会被浏览器记录在cookie信息中,只要用户不退出登录就会有效。也就是说如果获得一个QQ号码的Skey代码,也就相应的拿到了对方QQ登陆和管理权限,通过调用相应的操作接口API,即可不通过用户密码实现对用户空间,相册的访问权限,同时也可以发表说说,删除留言等一些敏感操作。
下边进行一个简单的测试来实现在QQ空间发表状态。
首先通过抓包获取到cookie信息中的uin值和skey
201582314210733
然后我使用curl命令通过发表说说的api向服务器发送一个包,包内容如下:
201582314210888
Curl命令执行过后,会在我的空间就自动发了一条说说:this is a test
201582314210442
由此想到了之前的天涯病毒营销系统,它是通过服务端配置中间收信网站后生成客户端,当用户点击客户端样本后,其客户端样本使用WebBrowse
相关文章
- 4条评论
- 可难抹忆2022-05-29 20:01:01
- 发一条说说,并且这个说说附带了一个链接,像下图这样:20158231429219此时你就要注意了,那个网页你点进去你也会一起中毒,并在你没有察觉的情况下在你的空间转同样的内容。针对这种情
- 绿邪囍神2022-05-29 19:13:04
- p;test201582314210442由此想到了之前的天涯病毒营销系统,它是通过服务端配置中间收信网站后生成客户端,当用户点击客户端样本后,其客户端样本使用WebBrowse
- 竹祭揽月2022-05-30 03:34:28
- “20158231429103利用代码中的标签“20158231429836该js代码做了混淆,其按照OlOlll=”(x)”的方式进行替换,我们还原第一部分代码为:eval(“var l = 
- 可难戏侃2022-05-30 00:08:53
- .fromCharCode(x)}”);该处生成一个函数I,其功能是返回数字对应的ascii码,下边利用该函数将一些数字还原成新的函数,依次类推,最后解出来的功能代码如下