情報来源:幻影
Eric Butera さんが、PHP_SELF エクスプロイトからの保護に関する非常に興味深いトピックを電子メールで送ってきました。問題を実証するテスト ケースをいくつか収集するのが良いのではないかと考えました。なぜ PHP がこれらの URL を許可するのかは私には理解できませんが、PHP コードからこれらの悪意のある URL を除外するのに大した労力はかかりません。
知らない人のために説明すると、PHP_SELF にコードを挿入することが可能です。実際の PHP ファイルの後に「/」を指定し、目的のコードを入力することで機能します。 JavaScript を挿入し、PHP_SELF を正しくフィルタリングしないコードでリダイレクトを実行する方法を示す 4 つのテスト ケースを実行しました。
テスト ケース 1HTTP ヘッダーにデータを挿入します。このシナリオはあまりありそうにありませんが、htmlentities または htmlspecialchars を実行しても攻撃から完全に防ぐことはできないことを示すためにこれを含めようと思いました。
テスト ケース 2XSS をリンクに挿入するのがいかに簡単かを示します。多くの PHP アプリケーションが同じページを参照して現在のアクション/表示を変更することが多いため、これは非常に可能性が高いです。
テスト ケース 3検索ページには、次への参照が含まれることがよくあります。 PHP_SELF はリンクと同じくらい簡単に悪用できます。
テスト ケース 4最後に、何も中断することなく、コードをページに直接挿入する方法を示します。
テスト ケースはここからダウンロードできます:-
テスト ケース