需要REGEX帮助来清理被黑客入侵的脚本

时间:2012-03-07 16:34:46

标签: php regex

我的网站遭到黑客入侵。它在我所有php文件的第一行添加了一些脚本。我想使用Netbeans搜索删除该脚本,并替换为 REGEX 选项。

似乎hack脚本上有相同的模式

<?php /**/ eval(base64_decode("[SomeRandomString]"])); ?>

你可以给我REGEX模式删除上面的字符串吗?

以下是我的黑客全文http://ideone.com/6ltMf

的示例

2 个答案:

答案 0 :(得分:3)

这样的东西与您的简短示例和您粘贴的示例匹配:

$pattern = '~^\<\?php\s?\/\*\*\/\seval\(base64\_decode\(\".*?\)\)\;\s?\?\>~'
// You might need to incorporate the multi-line option at the end of the pattern

Hindsight是20/20:将来您应该考虑使用版本控制系统来快速重置所有更改的文件。

答案 1 :(得分:0)

为什么不手动删除它?如果您有太多文件要做,那么自动化听起来不错。因为它正在解码字符串并将其作为PHP表达式进行评估,所以如果它实际上是自动化的,那么它应该在每个文件上都是相同的。只需准确复制字符串,并告诉您的脚本在所有.php文件中查找完整的字符串。我相信它就像是

"eval(base64_decode("aWYoZnVuY3Rpb25fZXhpc3RzKCdvYl9zdGFydC.......));"

特殊字符是:[\ ^ $。|?* +(),如果你想搜索它们,你需要在它们前面添加一个“\”,以便匹配正常工作,所以你的RE变为:

"eval\(base64_decode\("aWYoZnVuY3Rpb25fZXhpc3RzKCdvYl9zdGFydC.......\)\);"

您需要检查字符串是否包含更多特殊字符。此外,您可能只想重新安装您的PHP版本,具体取决于此病毒的功能,但您应该只是google“eval base64_decode”,这就是我发现的有关该病毒的论坛帖子。