所以在过去的几个小时里,我一直在尝试构建一个正则表达式,我开始疯狂地思考这是否可能或值得疯狂。
我有一个脚本可以扫描 PHP 文件,检查已知恶意文件的 MD5 和以及某些字符串。最近我遇到了一些文件,他们没有在 PHP 文件中使用 base64_decode,而是使用变量并将其连接起来,这样扫描仪就不会接收到它。
例如,这是我发现的最新示例:
$a='bas'.'e6'.'4_d'.'ecode';eval($a
因此,由于扫描仪搜索 base64_decode 这个文件没有被拾起,因为他们使用 PHP 将 base64_decode 连接到一个变量中,然后调用该变量。
请原谅我,因为我刚刚开始使用正则表达式,但是甚至可以使用正则表达式搜索类似的东西吗?我的意思是,我理解并且能够得到一个匹配那个确切的正则表达式,但是如果他们使用这个来代替:
$a='b'.'ase'.'64_d'.'ecode';eval($a
它不会被拾取,因为正则表达式正在寻找 ' 然后 b 然后 a 等等。
我已经加了
(eval)\(\$[a-z]
要给我发送一封电子邮件作为检查文件的通知,我必须让它运行几天,看看出现了多少误报,但我主要关心的是 base64_decode
如果有人可以为我阐明这一点并指出我正确的方向,我将不胜感激。
谢谢!!