2010年11月

本文带有图片,如果无法全部显示,点击图片可查看完整大图。

一、前言

很久之前,慧欣e校(bbs.evonne.cn)论坛上的人就有人找过我说论坛有弹窗的问题,具体表现为:


打开论坛,第一次弹窗,是一个广告页面,此后在该页面点击一次就弹一次窗。页面刷新一次后,就不再弹窗,每天第一次访问的时候,都会出现这样的情况,刷新后就正常。 而管理员使用任何浏览器都不会弹窗。

 

 

 


不过,非常对不起他们的就是,本人经常不知道在忙些什么,所以这事就一直拖到现在。今天因为亚运会所以放假一天,所以昨晚的时候,就联系了管理员,取得了整站的论坛备份程序。于是着手开始分析。

 


二、定位弹窗的代码

备份程序是拿到了,但是一个Discuz的论坛程序,是你会一句句看下去吗?当然不会,所以先通过浏览器找到 弹窗的代码先。首先因为每天第一次访问才弹窗,刷新之后就没事了,所以猜测可能是通过Cookies验证的,所以首先清空Cookies和缓存,打开Chrome浏览器浏览。用Chrome的时候没有弹窗(估计是弹窗的代码不支持Chrome的原因),打开完毕后,右键→审查元素。然后在【<script src="forumdata/cache/common.js?Vmm" type="text/javascript"></script>】这句下面找到了可疑代码【<script src="http://ad.zom123.net/ip.asp?loc=chongqing"></script>】。

 

 

而在IE下查看源文件却没有这句代码。所以这句很有可能是在common.js文件里面用document.write输出了。 于是下载forumdata/cache/common.js文件下来,搜索【document.write】,还真的是找到了。你们...你们还能再恶心点不?为了防止被查杀,居然还玩拆分,拆了就算了,居然还要把字符转成十六进制!

以上代码合并转码之后就是:【http://ad.zom123.net/ip.asp?loc=chongqing】,其中的loc参数更恶心,loc填写的是地区,ip.asp接收到的地区参数后,则这个地区的人不会弹窗。因为管理员是重庆的,所以这里就是重庆地区的都不弹窗!这个东西,就是要让管理员不知道有弹窗的事情,让他以为是其他人的网络问题!真不是一般的恶心!


三、开始清理弹窗广告

首先是清理common.js里面的那里代码,这里要注意,不能只清除【forumdata/cache/common.js】这个,这个是模板缓存文件,清除了这个没用,主要是清除【include/js/common.js】里面的(这里以Discuz 7.2为例,其他程序的请自行检查)。清理完后只要替换原文件,重新打开网站,这个世界就清净了。不过现在先不要这么做,因为一,我没有上传文件的权限^_^,二、还没找后门呢。


四、扫马

这个家伙居然能过来广告,那么肯定会放后门吧,不然怎么“维护”呢?于是现在开始清理木马。大致翻了一下,那么多文件夹,如果我一个个打开来看不是累死?而且技术不行,肯定要用工具了。因为论坛用的是Discuz 7.2版的,所以先到官方下载了个7.2的源码下来并解压,然后下载个著名的Beyond Compare,用他进行对比后发现,在【\templates\default】多了个叫pay.php的文件,打开后发现居然用了base64_decode处理过的,这么可疑:

接着把eval改成exit,然后上传到自己的空间再打开后,就看到源码了:

知道密码后登陆上去,原来是phpspy木马,然后用这个木马先清理了一下两个common.js文件,然后也没有找到别的可疑文件了,于是删除自己,OK,完事了!

3075