前2天遇到两例discuz网站百度快照被劫持的例子,一般快照被劫持很难被发现。
被劫持的表现
site:域名
在搜索引擎中输入自己的网址,然后选择时间:【一月内】。出现被收录的帖子链接,点击后就跳转到博彩网站等。

解决方案
进discuz后台找到工具-文件校验,看下最近有哪些php文件被修改了。
1、排查网站源文件的php 文件,查看是否有出现IP地址、或者异常网站(上面跳转的网站),如果有删除就可以了。
2、排查网站源文件的php 文件,查看是否有如下代码:
@include($_SERVER['DOCUMENT_ROOT']
如果有就删除此段代码。并把该段代码进行解密。
举例:
@include($_SERVER['DOCUMENT_ROOT'].PACK('H*','2F646174612F6176617461722F30'));
需要解密的代码为:2F646174612F6176617461722F30
解密后为:/data/avatar/0

意思就是在上述路径下存在被非法上传的文件,用于做快照劫持。
解决办法:删除上面的代码和文件即可。
挂马问题解决了后,记得更改服务器相关的各种密码,尽量设置的复杂一点。
一般这种情况说明网站代码已被修改,下面提供一个思路,查找关键词pack
find /目录 -name '*.php' | xargs grep -i 'PACK('
find /目录 -name '*.html' | xargs grep -i 'PACK('
find /目录 -name '*.js' | xargs grep -i 'PACK('
以上仅是思路,具体还要根据代码分析。