Hello there, ('ω')ノ
保存された XSS の脆弱性 WAF バイパスを。
脆弱性:
保存された XSS
WAF バイパス
記事:
https://medium.com/@lopseg/bug-bounty-writeup-stored-xss-vulnerability-waf-bypass-f38aae7ff9eb
今回は、編集済みアプリのカスタム レシートおよび放棄されたカートの
電子メールに挿入された外部リンクで発見された、
保存されたクロスサイト スクリプティング (XSS) の脆弱性について。
脆弱性、その影響、それを再現する手順について説明することに。
脆弱性の説明:
TARGET アプリを使用すると、ユーザは顧客に送信されるカスタム レシートと
カート放棄メールをカスタマイズでき。
ユーザはこれらの電子メール内に外部 Web サイトへのリンクを挿入でき。
ただし、アプリは、二重引用符が外部リンクの一部として挿入される場合、
二重引用符を適切にエンコードできないため、生成されたアンカー タグに
任意の属性を挿入できて。
これにより、保存された XSS の脆弱性が発生し、
攻撃者が任意の JavaScript コードを実行できるようになって。
ユーザが、 http://example.com"%20test=test を外部 URL として挿入すると、
生成されるアンカー タグは次のようになって。
<a href="http://example.com" test=test"> CLICK ME </a>
XSS ペイロードの作成:
脆弱性を実証するために、WAF をバイパスし、生成されたアンカー タグに
onmouseover JavaScript イベント ハンドラを追加する XSS ペイロードを作成して。
onmouseover 属性は、ユーザがリンク上にマウスを移動するとトリガされ。
以下のペイロードを参照して。
http:falselink.com;"onmouseover%20=%0az=top;z[/al/.source%2b/ert/.source](8);//test.com/
XSS 脆弱性の概念実証 (POC) は次のとおりで。
<a href="http://example.com;" onmouseover="z=top;z[/al/.source%2b/ert/.source](8);//test.com/"
影響:
他のユーザのブラウザでカスタム JavaScript コードが実行されるということは、
悪意のあるユーザが他のユーザに代わって権限を昇格したり、
読み取り/書き込みアクションを実行したりするなど、
望ましくないアクションを実行できることを意味して。
これは、XSS の脆弱性により、攻撃者が同一生成元ポリシーを回避できるためで。
再現する手順:
アカウント 1 (所有者) とアカウント 2 (招待された管理者) の
2 つのアカウントがあると仮定して、次の手順に従い。
アカウント 2 として、「AAAAAAAAAAAAAAAAAA」と入力し、
テキストを選択して [リンク] ボタンをクリックし、
URL として http://example.com を貼り付けて。
Burp Suite などのツールを使用してリクエストをインターセプトし、
リクエスト本文のhttp://example.com を http:falselink.com;"onmouseover%20=%0az=top;z[/al/.source%2b/ert/.source](8);//test.com/
に置き換えて。
ここで、アカウント 1 としてログインし、脆弱なページに移動し、AAAAAAAAAAAAAAAAAAAA リンクの上にマウスを置いて。
結論:
この記事では、攻撃者が他のユーザのコンテキストで
任意の JavaScript コードを実行できる、
Redacted アプリに保存された XSS の脆弱性について詳しく説明していて。
このような脆弱性を防ぐには、Web アプリケーションがユーザ入力を
適切にエンコードしてサニタイズすることが不可欠で。
Best regards, (^^ゞ