我希望有一个grep,其中包含来自以下每个组的一个或多个文件。
“包括,include_once,EXEC”
和
“$ _GET,$ _ POST”
所以文件必须从两个组的一个或多个。 (检查的PHP文件整个目录)
我试图扫描一些PHP文件的漏洞,但我真的吮吸的grep :(
我希望有一个grep,其中包含来自以下每个组的一个或多个文件。
“包括,include_once,EXEC”
和
“$ _GET,$ _ POST”
所以文件必须从两个组的一个或多个。 (检查的PHP文件整个目录)
我试图扫描一些PHP文件的漏洞,但我真的吮吸的grep :(
我建议开始用简单的命令,如:
grep --color=auto -ER '\$_POST|\$_GET' .
或
grep --color=auto -ER 'include(_once)+|exec\(|require(_once)+' .
上述命令将在输出中着色找到的模式。注意正则表达式(通过-E启用)和递归搜索(通过-R)。正则表达式的特殊字符是通过退格字符转义(即,$炭和exec的开口托架)
要查看发现出现的上下文中使用grep的-C NUM参数看NUM线周围发现行:
grep --color=auto -C 2 -ER '\$_POST|\$_GET' .
您也可以使用-A(压脚提升)和B(安伏),如果你想输出不同数目的行前或在其发现发生行后您的模式。您也可以使用-n参数来获取找到的事件的行号。如果你想变得更加花哨,你可以将find命令与xargs和grep结合起来,或者使用多个通过管道连接的grep命令,但是这在网络上的教程中有更好的解释。
grep -l
将只列出匹配的文件;然后你可以管那输出到另一个grep的:
grep -l -e "$_POST" -e "$_GET" * | grep -e "include" -e "include_once" -e "exec"
你没有你的文件的本地副本? – 2012-07-24 20:22:14
如果您显示您尝试使用的代码以及代码生成的错误,则可能有人可以提供帮助。 – 2012-07-24 20:23:22
当然我做 - 所有本地 – 2012-07-24 20:30:16