ソース:
脆弱性:Web Cache Deception
訳:
これから私がプライベート プログラムで見つけた最もすばらしいバグの 1 つについてお話しますが、残念なことに重複してて。
Web Cache Deceptionについて:
プログラムの範囲は非常に小さく、メイン Web サイト (www.target.tld) と API サブドメイン (api.target.tld) のみが含まれます。
メイン Web サイトで自分のプロフィールページを見ていて、ページを更新して Burp の履歴ページを見てみると、プロフィール情報がこの API エンドポイントに表示されていることに気付きました。
応答を見てみると、「 Server-Timing: cdn-cache; desc=MISS 」とあり目に留まり。
ここで、2 つの美しいバグをテストする必要がありました。
- キャッシュポイズニング攻撃
- キャッシュ詐欺攻撃
文字通りすべてを試しましたが、Web サイトは最初のバグに対して脆弱ではないよう。
そこで私は 2 番目の脆弱性を調査し、URL の末尾に「.css」を追加しました。
まだ情報を確認できたので、すぐに「 Server-Timing 」応答ヘッダーを確認しました。
したがって、キャッシュがヒットするようにhttps://www.target.tld/api/users/WHATEVER/current/full.css を 被害者に送信し、キャッシュの有効期限が切れる前に自分のブラウザでリンクを開いて確認する 必要がありました。被害者の情報。 かなり簡単ですよね?
残念だけど違う。 それほど簡単ではなく、キャッシュの有効期限がすぐに切れてしまい、情報を見ることができませんでした。 この脆弱性を悪用するには、被害者に代わって複数のリクエストをエンドポイントに送信する方法を見つける必要がありました。
シナリオ
- 被害者がハッカーのウェブサイトにアクセス
- ハッカーの Web サイトは、 https://www.target.tld/api/users/WHATEVER/current/full.cssにいくつかのリクエストを送信します。 キャッシュを汚染するために、
- ハッカーがブラウザでリンクを開くと、被害者の情報が表示されます。
ハッカー Web サイトで JS を使用して多数のリクエストを送信する
Chrome ブラウザが被害者であり、Firefox ブラウザがハッカーであることに注意してください。