php - 如何 grep 目录中 "$_POST"或 "$_GET"和 "include"的所有文件

标签 php linux grep

我想要一个包含以下各组中的一个或多个的 grep。

“包含,include_once,执行”

并且

“$_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(fter) 和 -B(efore)。您还可以使用 -n 参数来获取找到的事件的行号。如果您想获得更多奇特效果,可以将 find 命令与 xargs 和 grep 结合使用,或者使用通过管道连接的多个 grep 命令,但这在网络教程中得到了更好的解释。

关于php - 如何 grep 目录中 "$_POST"或 "$_GET"和 "include"的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11638694/

相关文章:

perl - 为什么当我对未定义的数组进行 grep 时会发生这种情况?

php - 使用POST方法更新mysql表

linux - 如何替换括号之间的换行符

python - 通过 python cgi 脚本的 ssh 不工作

linux - 让 VIM 在保存时添加最后一个新行

linux - 在 linux 中查找大文本文件中出现的次数

linux - 如何让 watch 运行带引号的 bash 脚本

php - 安全地服务于其他人的 PHP

PHP 正则表达式将字符串解释为命令行属性/选项

php - 测试程序是否使用 PHP 安装