
生のHTMLがサーバー側に保存され、フィルタリングなしでクライアント側でレンダリングされていることが判明しました。
ページの更新または再訪問時にチャット履歴が読み込まれると、メッセージはエスケープもサニタイズもされていないHTMLのまま表示されました。
これは、HTMLがサーバー側に保存され、フィルタリングが読み込まれずにクライアント側でレンダリングされていた、保存型HTMLインジェクションであることを示しています(下記参照)。
JavaScriptの実行は、JavaScript実行エラーにより完全に無効化されました。


コメント