大家经常会看到QQ空间自动转发一些附带链接的不良信息,即使我们的QQ密码并没有被盗取。最近经过对一个QQ空间自动转发链接停止剖析,发现该自动转发机制经过应用腾讯网站存在破绽的页面,精心结构出应用代码获取用户的QQ号和skey值,从而取得用户的一些敏感操作权限。并经过该破绽自动转发一些不良信息诱导用户点击,从而招致大面积传播。

传播现象

假如有一天,你发现好多QQ好友空间都在发一条说说,并且这个说说附带了一个链接,像下图这样:

 

此时你就要留意了,那个网页你点进去你也会一同中毒,并在你没有发觉的状况下在你的空间转同样的内容。

针对这种状况,我们经过剖析其原理得知其转发机制,下边我们以一个实例,并用最容易了解的方式来通知大家这种不良信息是如何转发以及如何防备。

转发机制

腾讯地图的一个实时竞价页面存在一个XSS破绽,由于没有对恳求参数做严厉检查,经过精心结构的恳求数据招致返回信息中的数据可被应用来执行js代码,同时效劳器没有对恳求来源停止检测,因而能够形成CSRF攻击。

查看之前抓取到的应用该破绽停止不良信息转发的页面,在该页面开头嵌入了一个iframe标签如下:

 

 

标签style为躲藏属性,从而使得该插入页面不会被用户发现,插入的页面链接就是结构好的url地址。

当页面被加载时,页面经过这个url接口向腾讯地图的RealTime Bidding效劳器发送一个恳求,效劳器没有对恳求来源停止效验,直接将恳求的数据返回,并附带了一些查询信息,如下图所示,其中exploit是结构的应用代码。

利用代码中的标签“</script><svg><script>”用于绕过浏览器的XSS过滤器,浏览器会将这三个标签忽略掉只留下后边的内容,然后第一个注释符号将后边的内容都给注释掉了,最后的有效内容就一句:eval(window.name)。之后eval会将字符串name里边的内容当作js代码执行,其执行结果就是在文档结尾创建<script></script>标签去加载执行js主功能模块http://conf3.gamexm.net/moo.js。主功能js部分代码如下所示:

该js代码做了混杂,其依照OlOlll=”(x)”的方式停止交换,我们复原第一局部代码为:

eval("var l = function(x){return String.fromCharCode(x)}");

 

代码经过document.cookie获取用户的cookie信息,然后从中提取uin值和skey值,经过抓包能够看到,uin值是由o开头加上QQ号组成,因而相当于就获取了用户的QQ号,[email protected]ateElement创立了一对script标签来执行如下脚本: