
Proof-of-Concept-Exploit für CVE-2020-11022, eine DOM-basierte XSS-Schwachstelle in jQuery-Versionen unter 3.5.0. Demonstriert Payload-Injektion über die .html()-Methode, um Cross-Site-Scripting auszulösen.
Also Leute, CVE-2020-11022 ist eine Sicherheitslücke in jQuery unter Version 3.5.0. Die Schwachstelle CVE-2020-11022 selbst löst einen XSS aus, indem sie DOM-Manipulationen (z. B. .html(), .append() und andere) ausnutzt, um schädlichen XSS-Code auszuführen.
Überprüfung der jQuery-Version: Stellen Sie sicher, dass das Ziel eine anfällige jQuery-Version verwendet. Diese Schwachstelle betrifft jQuery unter Version 3.5.0 (Version 3.5.0 und höher sind gepatcht).
Identifizierung der Ziel-Elemente (IDs auslesen): Sammeln (dumpen) Sie alle id-Attribute von HTML-Elementen auf der Seite. Dies dient dazu, Elemente zu finden, die potenziell von der Anwendung als Senke (Sink) für die Verarbeitung von Eingaben mithilfe von DOM-Manipulationsmethoden genutzt werden.
Auswahl eines Testelements: Wählen Sie eine ID aus den zuvor extrahierten Elementen aus. Als Beispiel nehmen wir an, dass ein Element mit der ID #error-msg vorhanden ist.
Ausführung des Payloads: Lösen Sie die DOM-Manipulation aus, indem Sie den Payload in die Zielsenke injizieren (z. B. mit der Methode .html()).
Syntax der Injektion: $('#error-msg').html(payload)
<style><style />
Erfolgreiche Validierung (Ausführung): Wenn das System anfällig ist, durchbricht der Payload den alten jQuery-Regex-Filter. Das Skript im onerror-Attribut wird sofort vom Browser ausgeführt (Triggered/BOOM) und zeigt einen Alert als Proof of Concept an.