ファイル拡張子を削除するLFI攻撃に対して、まだ攻撃の可能性があるかどうか疑問に思います。明らかに、nullバイトは以前のPHP=バージョンで修正されており、ファイルの切り捨てとともに機能しなくなりました。
明確にするために、PHP 5.4.4+)でこのコードを使用して/etc/passwd
を読み取る方法は、最悪の場合のサーバー側の設定を想定していますか。
include( $_GET['page'] . '.php' );
これで誰かが_/etc/passwd
_を直接含めることができるとは思いませんが、これにはまだ多くの問題があります。攻撃者は次のことができる可能性があります。
Php.iniにallow_url_include = 1が含まれている場合は、リモートファイルインクルードの脆弱性が生じていることに注意してください。
より良い方法は、ページをホワイトリストに登録するか、少なくともbasename()
やrealpath()
+ dirname()
などを使用して、ディレクトリトラバーサル攻撃を防ぐことです。