可恶的if(!isset($GLOBALS[“x61156x75156x61”]))恶意代码及清除办法
在一次修改WordPress主题的时候,很意外的发现每个主题文件的头部都有一段这样的代码: if(!isset…
在一次修改WordPress主题的时候,很意外的发现每个主题文件的头部都有一段这样的代码:
if(!isset($GLOBALS["x61156x75156x61"])) { $ua=strtolower($_SERVER["x48124x54120x5f125x53105x52137x41107x45116x54"]); ...
代码具体是干什么的不知道,网站显示也不会有任何异常,可是我们不能任由恶意代码这样蹂躏我们的主题,于是Goolge了一下,在万能的stackoverflow上发现了解决办法。
清理恶意代码的方法
下面是一段bash脚本,把脚本放在服务器上,执行脚本./remove_malware.sh /var/www/wp_path/ clean
即可移除恶意代码。
#!/bin/bash
#
# This script remove malware of PHP files.
#
if [[ -z "$1" ]]; then
echo "Directory where to find is required."
else
grep -rnwl $1 --include *.php -e "\x48\124\x54\120\x5f\125\x53\105\x52\137\x41\107\x45\116\x54" | while read -r filename ; do
if [[ ! -z "$2" ]]; then
echo "Found file $filename. Cleaning..."
awk 'BEGIN {matches=0} matches < 1 && /1/ { sub(/^.*<?php/,"<?php"); matches++ } { print $0 }' $filename > $filename.purged
mv $filename $filename.bck
mv $filename.purged $filename
else
echo "Found file $filename."
fi
done
echo "Done."
fi
经测试,脚本可能会误判正常的文件,删掉正常文件的第一行代码,不过误判的几率比较小,以防万一,建议删除之前把网站整体备份一下。
上面脚本执行后,会生成一些后缀为.bck
的备份文件。如果需要清理这些文件,运行以下命令即可。
find . -name *.bck | xargs rm -vf
类别:WordPress技巧、
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!