某周五晚上,自己正舒服地躺在沙发上,手里的王者荣耀,米莱迪正在快乐地偷塔呢,突然一个电话打进来,一看是老板,心里一阵不祥的预感:看来这场游戏是不能善终了,兄弟们对不住了。
果不其然,事情是某机构运行了很多年的大型门户网站,突然发现有挂马病毒现象,页面会自动跳转某带颜色网站,某机构大领导十分气愤,影响十分恶劣,要求不惜任何代价,赶快恢复正常。
挂了电话,登上微信,发现自己已经被拉进交流群了,群里已经炸锅了,大领导正发飙呢,幸亏这网站不是我们团队开发,据说负责开发的团队已经排查一段时间了,然而并没有什么进展。
给网站清理个病毒木马有那么难么。
跟对方要来了服务器管理账号密码,发现这服务器安全等级确实够高,需要挂VPN,再登堡垒机,最后才能进入服务器。服务器安全等级已经这么高了,网站还能被挂马,看来漏洞一定是出在了网站源代码身上。
看了下服务器环境,是Windows系统 IIS7 PHP的组合。
然后复现问题,具体跳转情况是这样的:
- 用搜索引擎搜索网站关键词,在搜索结果中进入网站,然后网站被重定向到某带颜色的垃圾网站;
- 在浏览器地址栏中直接输入网站地址,正常访问,不会跳转;
以下是某带颜色网站截图:
很奇怪,竟然只有从搜索引擎搜索结果中访问网站才能自动跳转。
按照以往的排查经验,既然会自动跳转别的网站,那么一定是在源代码里加了跳转代码,代码里可能做了某些访问来源的判断,只有从搜索引擎过来的访客才跳转。
无论怎样,既然能跳转,那么跳转代码里肯定要有垃圾站的域名吧,先全局搜一下垃圾站域名看看。
先把整个门户网站的源代码下载到本地,才敢随意折腾。好家伙,这门户网站运行了近十年,源码压缩过后竟然有20G,有点吓人,按这服务器的5M带宽,恐怕要下载到天荒地老了。所以简单研究下代码结构,排除了一些图片上传目录,只剩下几百兆,搞了大半天终于下载完成。
用代码编辑器打开项目,发现网站是用一个绝迹多年的小众CMS系统开发,网上一查全是关于这个CMS漏洞百出的信息,不理解那么多优秀的开源CMS不用,非要用这个。
不管那么多,直接全局搜索垃圾站域名,理所当然地,什么也没搜到。既然如此,黑客肯定把域名加密或者编码了,最常见的是Base64了吧,所以把域名Base64编码一下继续搜,还是啥也没有。
然后又通过很多该不良网站的关键词去搜,也什么都没发现。
看来这黑客不是什么善茬。
最后只好用笨办法:挨个文件检查。
通常黑客植入的病毒代码,都是用工具自动写入的,代码的编写风格跟网站原本的风格会显得格格不入,比如缩进、变量命名规范、文件命名格式等等,所以挨个文件查找是极有可能发现的。
总之最后终于在缓存目录里发现了一个不大正常的文件
这个11.php太扎眼了。
通过URL的形式访问这个11.php,打开后是这样: