私はexploit-db.comでローカルファイルインクルージョンに関する論文を読んだだけです、それは ここで見つけることができます 。 LFIの1つのテクニックは、すでにご存じかもしれませんが、ログポイズニングです。 PHPコードを含むHTTP GETリクエストを実行します。これは正しいHTTPリクエストではないため、Apache error.logに記録されます。これで、攻撃者はPHP http://victim.com/include.php?file=../../../../var/のようなことを実行して、error.log内のコードlog/Apache2/error.log 今、私が理解していないのは次のことです:デフォルトではログは誰でも読めないので、Apache2プロセスを所有するwww-dataはエラーを読み取ることができません.logなので、その中でコードを実行することはできません!どのようにしてログポイズニング攻撃を成功させることができますか?
完全に合法でスマートな攻撃。
質問は、「ログがデフォルトでWebサーバーから読み取れない場合、どのように機能するのか」ということです。
実際のところ、多くのWebサーバーは、アクセス制御を強制する必要がないカスタムログディレクトリを使用して設定されています。これはあなたが思うよりも頻繁に起こります。場合によっては、sysadminがログファイルを読み取るために他のシステムを必要とし、すべてのプロセスのためにそれを開いただけなので、ログファイルのアクセス制御は広く開かれています。
これは、SSH認証ログなどの他のログファイルからコードを実行するためにも使用できます。詳細はこちら: http://lanmaster53.com/2011/05/local-file-inclusion-to-remote-command-execution-using-ssh/
基本的には、ファイルへの不正なアクセス許可が原因です。それでも、非常に関連性のある優れた攻撃です。