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

反诈示警:如遇到文章内跳转至别的网站或产生需要交钱,交易等行为,均为诈骗行为,请谨慎对待。对于网上兼职、刷单、刷信誉的就是诈骗,请勿相信!需要提供身份证明、短信验证和短信链接点击都是诈骗, 请不要提供!同时请下载“国家反诈中心”App能自查自检,规避诈骗电话,免遭损失。

在一次修改WordPress主题的时候,很意外的发现每个主题文件的头部都有一段这样的代码:

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

代码具体是干什么的不知道,网站显示也不会有任何异常,可是我们不能任由恶意代码这样蹂躏我们的主题,于是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 优化加速、二次开发、网站维护、企业网站建设托管等服务,点此联系我 | 近期站内热门福利推荐:
文章版权及转载声明

本文地址:https://www.zycang.com/116331.html
文章转载或复制请以超链接形式并注明来源出处。 本文最后更新于:2023-07-08 15:20:48
声明:某些文章或资源具有时效性,若有 错误 或 所需下载资源 已失效,请联系客服QQ:11210980

喜欢就支持一下吧
点赞35赞赏 分享
相关推荐
评论 抢沙发

请登录后发表评论