我希望有一个grep,其中包含以下每个组中的一个或多个。
“包括,include_once,EXEC”
和
“$ _ GET,$ _POST”
因此该文件必须包含一个或两个以上的BOTH组。 (检查整个php文件目录)
我正在尝试扫描一些PHP文件中的漏洞,但我真的很害怕grep :(
答案 0 :(得分:1)
我建议用以下命令开始简单:
grep --color=auto -ER '\$_POST|\$_GET' .
或
grep --color=auto -ER 'include(_once)+|exec\(|require(_once)+' .
上述命令将为输出中找到的模式着色。注意正则表达式(通过-E启用)和递归搜索(通过-R)。正则表达式的特殊字符通过退格符(即$ char和exec的开始括号)进行转义。
要查看找到的事件的上下文,请使用grep的-C num 参数查看找到的行周围的 num 行:
grep --color=auto -C 2 -ER '\$_POST|\$_GET' .
如果要在找到模式的匹配项的行之前或之后输出不同数量的行,也可以使用-A(fter)和-B(之前)。您还可以使用-n参数来获取找到的事件的行号。如果你想获得更多的花哨,你可以将find命令与xargs和grep结合使用,或者使用通过管道连接的多个grep命令,但这在网上教程中有更好的解释。
答案 1 :(得分:0)
grep -l
只列出匹配的文件;然后你可以将其输出传递给另一个grep:
grep -l -e "$_POST" -e "$_GET" * | grep -e "include" -e "include_once" -e "exec"