次の各グループから1つ以上のgrepが必要です。
"include、include_once、exec"
と
"$ _GET、$ _ POST"
したがって、ファイルには両方のグループからの1つ以上が含まれている必要があります。(phpファイルのディレクトリ全体をチェックします)
いくつかのPHPファイルをスキャンして脆弱性を探していますが、grepは本当に嫌です:(
次のようなコマンドで簡単に始めることをお勧めします。
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(efore)を使用することもできます。-n引数を使用して、見つかったオカレンスの行番号を取得することもできます。もっと凝ったものにしたい場合は、findコマンドをxargsおよびgrepと組み合わせたり、パイプを介して接続された複数のgrepコマンドを使用したりできますが、これはWebのチュートリアルで詳しく説明されています。
grep -l
一致するファイルを一覧表示します。次に、その出力を別のgrepにパイプできます。
grep -l -e "$_POST" -e "$_GET" * | grep -e "include" -e "include_once" -e "exec"