mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
6.6 KiB
6.6 KiB
Chrome Cacheを利用したXSS攻撃
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを見つけて、独占的なNFTのコレクションを発見してください。
- 公式のPEASS&HackTricksグッズを手に入れましょう。
- 💬 Discordグループまたはtelegramグループに参加するか、Twitterで🐦@carlospolopmをフォローしてください。
- ハッキングのトリックを共有するには、PRを hacktricks repo と hacktricks-cloud repo に提出してください。
このテクニックは、この解説記事から取得されました。
キャッシュには2つの重要なタイプがあります:
- バック/フォワードキャッシュ(bfcache)
- 参照:https://web.dev/i18n/en/bfcache/
- これは、JavaScriptヒープを含むページの完全なスナップショットを保存します。
- キャッシュはバック/フォワードナビゲーションに使用されます。
- ディスクキャッシュよりも優先されます。
- ディスクキャッシュ
- 参照:https://www.chromium.org/developers/design-documents/network-stack/disk-cache/
- これは、Webから取得したリソースを保存します。キャッシュにはJavaScriptヒープは含まれません。
- キャッシュは通信コストをスキップするためにバック/フォワードナビゲーションにも使用されます。
ディスクキャッシュの興味深い点として、キャッシュにはWebページにレンダリングされたHTTPレスポンスだけでなく、fetch
で取得したリソースも含まれます。言い換えれば、fetch
で取得したリソースのURLにアクセスすると、ブラウザはそのリソースをページ上にレンダリングします。
もう1つ重要なポイントがあります。バック/フォワードナビゲーションでアクセスしたページが両方のキャッシュに有効な場合、bfcacheがディスクキャッシュよりも優先されます。したがって、両方のキャッシュに保存されたページにアクセスする必要がありますが、ディスクキャッシュを使用したい場合は、なんらかの方法でbfcacheを無効にする必要があります。
bfcacheの無効化
bfcacheは、puppeteerのデフォルトオプションによって無効にされます。
このチャレンジで興味深い動作を試してみましょう。
まず、bfcache[2]を無効にする必要があります。bfcacheが無効になる条件は多くありますが、以下のリストがあります:
簡単な方法は、RelatedActiveContentsExist
を使用することです。
RelatedActiveContentsExist
:window.open()
で開かれ、window.opener
の参照を持つページ。- 参照:https://web.dev/i18n/en/bfcache/#avoid-windowopener-references
したがって、次の手順でこの動作を再現できます:
- Webページにアクセスします(例:
https://example.com
)。 open("http://spanote.seccon.games:3000/api/token")
を実行します。
- 開いたタブで
http://spanote.seccon.games:3000/
にアクセスします。
history.back()
を実行します。
Google ChromeのDevToolsを使用して、ディスクキャッシュが使用されていることを確認できます:
- 💬 Discordグループに参加するか、Telegramグループに参加するか、Twitterで🐦@carlospolopmをフォローしてください。
- ハッキングのトリックを共有するには、hacktricksリポジトリとhacktricks-cloudリポジトリにPRを提出してください。