SQLol y XMLmao: Web hacking Testbeds

Recientemente tuve que preparar unas presentaciones sobre XPath Injection (I,II) a modo de formación interna en la empresa, y me puse a buscar entornos en los que se pudieran practicar las técnicas que iba a contar. El caso es que la mayoría de entornos “conocidos”, como WebGoat, DVWA, Multillidae, AltoroMutual… tienen uno o ningún nivel dedicado a XPath Injection. Con la intención de que los alumnos pudieran jugar un poco más, estuve indagando en Google, y encontré XMLmao.

XMLmao

XMLmao es un entorno vulnerable a XPath Injection y XML Injection que permite probar gran variedad de ataques diferentes. Está construido de tal forma que se puede elegir si hay filtro de comillas, de barras (/), de pipes (|), de espacios o de brackets ([). También se puede configurar el punto de inyección: Ruta del nodo, Nombre del nodo, Variable de condición, Valor numérico en la condición, cadena en la condición, Nodo Hijo o query completa. Permite seleccionar si se mostrarán todos los resultados, sólo uno, ninguno, o tan sólo un comportamiento diferente entre resultados y no (para blind injection).

XMLmao

Eso en cuanto a XPath Injection. La sección de XML Injection tiene configuraciones muy similares. Además de todo lo anterior, la aplicación consta de una serie preestablecida de “desafíos” para superar utilizando diferentes técnicas de inyección. Por si alguno se atasca con los desafíos, en la misma carpeta en la que se encuentran los .php que los contienen están también los .txt que explican una posible solución al reto.

El entorno está escrito en PHP, y su instalación es tan sencilla como descargar un .zip (de aquí) y extraerlo en la carpeta del servidor web (/var/www/XMLmao en mi caso). Como la aplicación es deliberadamente vulnerable, no se recomienda su instalación en servidores públicos (o al menos no sin algún tipo de autenticación).

SQLol

Al trastear con el repositorio de SpiderLabs, descubrí otro proyecto de características similares pero orientado a las inyecciones SQL. No es que de este tipo de ataque no haya entornos de prueba (que los hay, y muchos), pero me sigue pareciendo muy interesante que permita al usuario configurar los parámetros de inyección de acuerdo a sus inquietudes en ese momento.

SQLol

Pantalla Principal SQLol

Del mismo modo que XMLmao, permite configurar el nivel de filtrado, qué caracteres están siendo filtrados, si se muestra la consulta, el nivel de verbosidad de los errores y el lugar en el que se encuentra la inyección. Así por ejemplo, puedes probar inyecciones en los siguientes sitios:

Lugares para inyectar

Opciones de Inyección

Por supuesto, también se puede elegir el tipo de consulta en el que se va a inyectar (DELETE, UPDATE, SELECT, INSERT o CUSTOM). Consta de una serie de retos predefinidos con sus respectivas soluciones para aquel que se atasque con alguno. La instalación es similar a la de XMLmao, descargar el .zip (de aquí) y descomprimir en la carpeta del servidor web. Sin embargo, SQLlol requiere una base de datos SQL. Soporta MySQL, Postgres y SQLite, aunque el desarrollador comenta que puede que otras funcionen. Una vez descomprimido el paquete, es necesario modificar el fichero #SQLol_directory/includes/database.config.php para que haga referencia a la base de datos que hayamos instalado. Al finalizar este paso, nos dirigimos a la interfaz web y pulsamos en el botón “RESET”, y listo.

Espero que éstos entornos “menos conocidos” os sirvan para practicar éste tipo de ataques o para replicar de manera más precisa el escenario que os podáis encontrar durante un pentest.

¡Salud!

Anuncios
Tagged with: , , , ,
Publicado en hacking, seguridad, web hacking
2 comments on “SQLol y XMLmao: Web hacking Testbeds
  1. I’m happy to see someone getting use out of XMLmao! 🙂

    • Adrián dice:

      Hi Daniel,

      Thank you for your comment. XMLmao has been very useful to teach XPath Injection to my workmates, thanks. I think you should request the inclusion of XMLmao and SQLol into the WebApp Dojo as another training environment.

      By the way, I’m using this email to tell you that there is a little problem with the app when you try to use the hex representation of some chars (as in %00) during a challenge. If you fill the textbox with ‘%00 for example, and click on the “Inject!” button, the app takes you to the main screen, where you should see the injection outcome. However, XMLmao is URL-encoding % sign, so as you can see in the second picture the ‘%00 injection payload becomes ‘%2500 and therefore the attack fails. What the user can do, is change the URL manually replacing %2500 by %00 and the attack will then succeed, but there might be a better solution.

      Image1: http://i46.tinypic.com/f1w39d.png Image2: http://i45.tinypic.com/2je6b6s.png

      Hope that helps. Thanks!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Archive
A %d blogueros les gusta esto: