2012-07-24 46 views
-2

我希望有一個grep,其中包含來自以下每個組的一個或多個文件。

「包括,include_once,EXEC」

「$ _GET,$ _ POST」

所以文件必須從兩個組的一個或多個。 (檢查的PHP文件整個目錄)

我試圖掃描一些PHP文件的漏洞,但我真的吮吸的grep :(

+0

你沒有你的文件的本地副本? – 2012-07-24 20:22:14

+2

如果您顯示您嘗試使用的代碼以及代碼生成的錯誤,則可能有人可以提供幫助。 – 2012-07-24 20:23:22

+0

當然我做 - 所有本地 – 2012-07-24 20:30:16

回答

1

我建議開始用簡單的命令,如:

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命令,但是這在網絡上的教程中有更好的解釋。

0

grep -l將只列出匹配的文件;然後你可以管那輸出到另一個grep的:

grep -l -e "$_POST" -e "$_GET" * | grep -e "include" -e "include_once" -e "exec"

相關問題