
jQuery 3.5.0未満のDOMベースのXSS脆弱性であるCVE-2020-11022の概念実証エクスプロイト。.html()メソッドを介したペイロードインジェクションによるクロスサイトスクリプティングのトリガーを示す。
みんな、CVE-2020-11022 はバージョン 3.5.0 未満の jQuery に存在する脆弱性なんだ。CVE-2020-11022 自体は、.html() や .append() などの DOM 操作を利用して XSS を誘発し、悪意のある XSS コードを実行するものだ。
jQuery バージョンの検証: 対象が脆弱なバージョンの jQuery を使用していることを確認する。この脆弱性は 3.5.0 未満の jQuery に適用される(3.5.0 以降はパッチ済み)。
対象要素の特定(ID のダンプ): ページ上にある HTML 要素の id 属性をすべて収集(ダンプ)する。これは、アプリが DOM 操作メソッドを使って入力を処理する場所(シンク)として使用される可能性のある要素を探すためだ。
テスト要素の選択: 先ほどの抽出結果から 1 つの要素 ID を選ぶ。例として、#error-msg という ID を持つ要素があると仮定する。
ペイロードの実行: 対象のシンクにペイロードを注入して DOM 操作を誘発する(例: .html() メソッド)。
注入構文: $('#error-msg').html(payload)
<style><style />