可恶的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 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册