我希望有一個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