使用PHP连接的base64_解码的正则表达式(regex)匹配

使用PHP连接的base64_解码的正则表达式(regex)匹配,php,regex,base64,exploit,Php,Regex,Base64,Exploit,所以在过去的几个小时里,我一直在尝试建立一个正则表达式,我开始疯狂地思考这是否可能或者值得疯狂 我有一个脚本,可以扫描PHP文件,检查MD5 sum中已知的恶意文件和某些字符串。最近我遇到的文件不是在PHP文件中使用base64_解码,而是使用变量并将其连接起来,这样扫描仪就不会拾取它 下面是我发现的最新的一个例子: $a='bas'.'e6'.'4_d'.'ecode';eval($a 因为扫描器搜索base64_decode,所以没有提取这个文件,因为他们使用PHP将base64_deco

所以在过去的几个小时里,我一直在尝试建立一个正则表达式,我开始疯狂地思考这是否可能或者值得疯狂

我有一个脚本,可以扫描PHP文件,检查MD5 sum中已知的恶意文件和某些字符串。最近我遇到的文件不是在PHP文件中使用base64_解码,而是使用变量并将其连接起来,这样扫描仪就不会拾取它

下面是我发现的最新的一个例子:

$a='bas'.'e6'.'4_d'.'ecode';eval($a
因为扫描器搜索base64_decode,所以没有提取这个文件,因为他们使用PHP将base64_decode连接到一个变量中,然后调用该变量

原谅我,因为我刚刚开始使用regex,但是否可以使用regex搜索类似的内容?我的意思是,我理解并且能够得到一个正则表达式来匹配那个精确的正则表达式,但是如果他们用这个来代替呢:

$a='b'.'ase'.'64_d'.'ecode';eval($a
因为正则表达式在寻找“然后是b,然后是a,等等”,所以它不会被拾取

我已经补充了

(eval)\(\$[a-z]
要给我发送电子邮件作为检查文件的通知,我必须让它运行几天,看看有多少误报出现,但我主要关心的是base64_解码

如果有人能帮我解释一下,也许能给我指出正确的方向,我将不胜感激


谢谢

您可以使用此regexp:

b\W*a\W*s\W*e\W*6\W*4\W*_\W*d\W*e\W*c\W*o\W*d\W*e

它搜索带有任何非字母数字字符的
base64\u decode

您可以使用此regexp:

b\W*a\W*s\W*e\W*6\W*4\W*_\W*d\W*e\W*c\W*o\W*d\W*e

它搜索带有任何非字母数字字符的
base64\u decode

如果你有打字错误,应该是:
b\W*a\W*s\W*e\W*6\W*4\W*\W*d\W*e\W*c\W*o\W*d\W*e
如果你有打字错误,应该是:
b\W*a\W*s\W*e\W*e\W*6\W*4\W*\W*W*W\W*W*W\W*W*W\W*W*W\W*W*W\W*W*d\W*W\W*W\W\W*e\W*d\W>