可恶的if(!isset($GLOBALS["\x61\156\x75\156\x61"]))恶意代码及清除办法

文 / @UTHEME

恶意代码清除教程

在我修改 WordPress 主题的时候,意外发现每个主题文件的头部都有一段类似以下代码:

if(!isset($GLOBALS["\x61\156\x75\156\x61"])){$ua=strtolower($_SERVER["\x48\124\x54\x50\x5f\125\x53\105\x52\137\x41\107\x45\116\x54"]);...

虽然我不知道这段代码有什么作用,但我的网站并没有出现任何异常,但我不能允许恶意代码破坏我的主题,所以我在 Google 上搜索并在 Stack Overflow 上找到了解决方法。

恶意代码清理方法

下面是一段 bash 脚本,将脚本放在服务器中,运行脚本./remove_malware.sh /var/www/wp_path/clean即可清除恶意代码。

#!/bin/bash
#
#ThisscriptremovemalwareofPHPfiles.
#

if[[-z"$1"]];then
echo"Directorywheretofindisrequired."
else
grep-rnwl$1--include\*.php-e"\\\\x48\\\\124\\\\x54\\\\120\\\\x5f\\\\125\\\\x53\\\\105\\\\x52\\\\137\\\\x41\\\\107\\\\x45\\\\116\\\\x54"|whileread-rfilename;do

if[[!-z"$2"]];then
echo"Foundfile$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"Foundfile$filename."
fi

done
echo"Done."
fi

经过测试,这个脚本可能会将正常的文件误判为恶意文件。但误判的几率相对较小,为了保险起见,建议在删除文件之前先备份整个网站。

执行上面的脚本后,可能会生成一些以.bck为后缀的备份文件。如果需要清理这些文件,运行以下命令即可。

find.-name*.bck|xargsrm-vf
添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。