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


Need REGEX Help to clean hacked script

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

看来黑客脚本上有相同的模式

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

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

这是我被黑客入侵的完整脚本的例子http://ideone.com/6ltMf

类似的内容与您的简短示例和粘贴的示例相匹配:

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

事后诸葛亮是20/20:将来你应该考虑使用版本控制系统来快速重置所有更改的文件。

为什么不手动删除它?如果你有太多的文件,那么自动化听起来不错。由于它对字符串进行解码并将其作为PHP表达式进行评估,因此如果它真的实现了自动化,那么它在每个文件上都应该是相同的。只需精确地复制字符串,并告诉脚本在所有.php文件中查找该字符串。我相信它有点像

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

特殊字符是:[''^$.|?*+(),如果你想搜索它们,你需要在它们前面加一个"''",这样匹配才能正常工作,所以你的RE变成:

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

您需要检查字符串是否不再包含任何特殊字符。此外,你可能只想根据这种病毒的作用重新安装你的PHP版本,但你应该只在谷歌上搜索"eval base64_decode",这就是我在论坛上发现的关于病毒的帖子。