CSP bypass: self + 'unsafe-inline' with Iframes
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
次のような設定:
コードを文字列として送信する関数の使用を禁止します。例えば:eval, setTimeout, setInterval
はすべて unsafe-eval
の設定によりブロックされます。
外部ソースからのコンテンツもすべてブロックされます。これには画像、CSS、WebSockets、特にJSが含まれます。
現代のブラウザは、表示を向上させるために画像やテキストをHTMLに変換することが観察されています(例:背景の設定、中央揃えなど)。その結果、iframe
を介してfavicon.ico
やrobots.txt
のような画像やテキストファイルが開かれると、それはHTMLとしてレンダリングされます。特に、これらのページはCSPヘッダーを欠いていることが多く、X-Frame-Optionsが含まれていない場合があり、そこから任意のJavaScriptを実行できる可能性があります。
同様に、テキストファイルや画像のようなエラーレスポンスは、通常CSPヘッダーなしで提供され、X-Frame-Optionsを省略することがあります。エラーはiframe内で読み込むように誘発でき、以下のアクションを可能にします:
指定されたシナリオのいずれかをトリガーした後、iframe内でのJavaScript実行は次のように実現できます:
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)