
Artículo · Pentesting
Explotar la vulnerabilidad Blind SQL injection
Historia
Como es sabido, la inyección de código representa el principal riesgo para los aplicativos web, según OWASP top 10. La SQL injection tiene un impacto muy alto debido a la facilidad de su detección y explotación con respecto a los daños que puede ocasionar.
Tipos de SQL Injection
Dentro de los tipos de SQL injection, podemos mencionar principalmente dos, las inyecciones clásicas (Las cuales muestran errores con rutas de archivos, líneas, tipos de motores de base de datos, etc.) y las inyecciones a ciegas (Las cuales realizan consultas de verdadero o falso).
En las inyecciones a ciegas tenemos dos variantes, cuando el error no se muestra es posible indicarle a la base de datos que haga una breve suspensión para poder determinar si la condicional es verdad o no. Dicho de otra manera.
Inyección a ciegas. Realizaremos una consulta a la base y la respuesta solo será verdadero o falso.

Interpretaremos las respuestas de acuerdo al contenido del sitio. Cuando detectamos un sitio que está enviando la información al aplicativo por medio de método GET, será más fácil manipular el contenido y validar los errores.
En este caso tenemos la URL del sitio http://192.169.123.12/index.php?categoria=21
Sitio vulnerable a Sql Injection a ciegas
Si ingresamos una comilla simple “ ’ ” por medio de los métodos GET de un validaremos si es vulnerable a SQL injection.
Como podemos apreciar, la columna central desapareció. No se nos está mostrando un error en la Base de Datos o sobre el contenido, simplemente desapareció está sección. Cuando nosotros realicemos una consulta y la respuesta sea verdadero se mostrará el contenido de la columna central, cuando realicemos una consulta que sea falsa no se mostrará el contenido de la columna central.
Explotando la vulnerabilidad.
SQLmap es una herramienta que nos permite explotar inyecciones clásicas y a ciegas. Una de las grandes ventajas es que automatiza las consultas y estandariza los distintos motores de base de datos.
Para explotar la vulnerabilidad utilizaremos el siguiente comando:
“sqlmap –u http://192.169.123.12/index.php?categoria=21 --level=3 --risk=3 --dbs”
Como podemos apreciar, la herramienta nos indica que el parámetro de categoría es inyectable.
Una vez que se comienza a analizar el parámetro, categoría, se va a identificar que tipo de manejador de base de datos se está utilizando. En este caso la herramienta nos lo indica.
Identificando una base de datos
Una vez que la herramienta avanza va a ser posible determinas si el parámetro el inyectable y el tipo de SQL injection que aplica.
Prueba de inyección
A la hora de explotar este identificador “categoria” nos mostrará el nombre de las bases de datos, la característica de este tipo de inyecciones es que no lo muestra al momento y es tardado porque está preguntando al motor de base de datos los campos correspondientes al nombre de la base.
Explotación de la vulnerabilidad
¿Quieres aprender estas técnicas en profundidad?
Continúa tu ruta con Penetration Testing Student.
Escrito por
Misael BanalesPenetration Testing And Ethical Hacking
Ingeniero en Computación. En mis años de experiencia en Seguridad Informática he realizado múltiples pruebas de penetración y hacking ético para organizaciones de gobierno, industria pública y privada. He brindado servicios de auditoria en ISO 27001 y he apoyado a empresas en la gestión de gobierno de IT.



