Script Bash para pruebas de XXE Out-of-Band en laboratorios, CTFs y auditorias autorizadas.
El script levanta un servidor HTTP local, sirve una DTD externa y envia un XML modificado al endpoint objetivo para comprobar si es posible recibir una respuesta OOB.
Este proyecto se proporciona exclusivamente con fines educativos y de investigacion en seguridad. Usalo solo sobre sistemas propios o sobre objetivos donde tengas autorizacion explicita.
El uso de esta herramienta contra sistemas de terceros sin permiso puede ser ilegal. El autor no se hace responsable del mal uso, perjuicios, perdidas o consecuencias derivadas del uso de este software.
- Linux o WSL
bashpython3curl- GNU
grepcon soporte-P - Permisos para escuchar en el puerto
80 - Conectividad desde el objetivo hacia la IP local del equipo que ejecuta el script
git clone https://github.com/amis13/XXE_OOB.git
cd XXE_OOB
chmod +x xxe_oob.sh./xxe_oob.sh -f <archivo> -u <url> -p <archivo_php> -x '<xml_raw>'Opciones:
| Opcion | Descripcion |
|---|---|
-f |
Archivo o recurso que se intentara leer en el servidor objetivo. |
-u |
URL base del objetivo, sin barra final. |
-p |
Archivo o ruta PHP que procesa el XML. |
-x |
XML original en formato raw. Usar comillas simples. |
-h |
Muestra la ayuda. |
Ejemplo:
./xxe_oob.sh -f /etc/hostname -u http://localhost:5000 -p process.php -x '<root><name>test</name></root>'- El script usa la primera IP devuelta por
hostname -I. - Si el objetivo no puede alcanzar esa IP, no habra callback OOB.
- Durante la ejecucion se crean temporalmente
malicious.dtdyresponse; el script los elimina al finalizar.
Este proyecto esta publicado bajo licencia MIT. Consulta el archivo LICENSE.