hacking ético en aplicaciones web [sql injection]
DESCRIPTION
Charla Realizada en la Universidad Autonoma sobre como atacar aplicaciones web con el ataque SQL Injection y las diversas variaciones que tiene.TRANSCRIPT
![Page 1: Hacking ético en aplicaciones web [SQL Injection]](https://reader031.vdocumento.com/reader031/viewer/2022020116/557ab9fcd8b42a642f8b4809/html5/thumbnails/1.jpg)
HACKING ÉTICO EN APLICACIONES WEB
Eduardo Arriols y Roberto López
![Page 2: Hacking ético en aplicaciones web [SQL Injection]](https://reader031.vdocumento.com/reader031/viewer/2022020116/557ab9fcd8b42a642f8b4809/html5/thumbnails/2.jpg)
Índice
� Breve introducción SQL
� SQL Injection (ByPass Login)
� SQL Injection� A mano � Mediante sqlmap
� Troyanización de un servidor
![Page 3: Hacking ético en aplicaciones web [SQL Injection]](https://reader031.vdocumento.com/reader031/viewer/2022020116/557ab9fcd8b42a642f8b4809/html5/thumbnails/3.jpg)
Introducción a SQL
� Lenguaje Estructurado para el manejo de las bases de datos.
� Consulta:� SELECT nombre, edad FROM personas WHERE
edad > 21
� Operadores Lógicos: and, or …
Nombre Edad
Roberto 23
Eduardo 20
![Page 4: Hacking ético en aplicaciones web [SQL Injection]](https://reader031.vdocumento.com/reader031/viewer/2022020116/557ab9fcd8b42a642f8b4809/html5/thumbnails/4.jpg)
Introducción a SQL
� Clausulas:� Union
� SELECT nombre, edad FROM personasUNIONSELECT usuario, password FROM usuarios
� Limit� Limitar lista de resultados
� SELECT … LIMIT 10
� Elegir posición de una tabla� SELECT … LIMIT 2,1
![Page 5: Hacking ético en aplicaciones web [SQL Injection]](https://reader031.vdocumento.com/reader031/viewer/2022020116/557ab9fcd8b42a642f8b4809/html5/thumbnails/5.jpg)
Introducción a SQL
� En los diferentes gestores (MySql, Postgres, Oracle, MsSql) existen una serie de bases de datos que contienen información acerca de las tablas, columnas …
� El gestor MySQL contiene la base de datos:� information_schema:
� information_schema.tables (Información sobre tablas)
� information_schema.columns (Información sobre columnas)
![Page 6: Hacking ético en aplicaciones web [SQL Injection]](https://reader031.vdocumento.com/reader031/viewer/2022020116/557ab9fcd8b42a642f8b4809/html5/thumbnails/6.jpg)
SQL Injection
� SQL Injection (SQLi) � Vulnerabilidad Web producida por un débil filtrado de las entradas.
� Se basa en modificar la consulta que realiza una aplicación para que haga cosas para las que no estaba pensada (E.j: Sacar contraseñas y usuarios)
� ByPass � Saltarse algo, ya sea un login, un filtrado..
![Page 7: Hacking ético en aplicaciones web [SQL Injection]](https://reader031.vdocumento.com/reader031/viewer/2022020116/557ab9fcd8b42a642f8b4809/html5/thumbnails/7.jpg)
SQL Injection (ByPass Login)
� Esquivar autenticación (saltar validación)
� Consultas del tipo:� SELECT usuario FROM usuarios WHERE
usuario=‘Admin’ AND password=‘Canalseguro666’
� Donde ‘Admin’ y ‘Canalseguro666’ son variables introducidas por el usuario de la aplicación.
� Si la consulta es vacía no permitirá el acceso, pero en caso contrario sí, dando igual que haya uno o mas registros.
![Page 8: Hacking ético en aplicaciones web [SQL Injection]](https://reader031.vdocumento.com/reader031/viewer/2022020116/557ab9fcd8b42a642f8b4809/html5/thumbnails/8.jpg)
SQL Injection (ByPass Login)
� Identificando vulnerabilidad:� Consulta:
SELECT usuario FROM usuarios WHERE usuario=‘ aaa’ ’ AND password=‘ aaa’ ’
� Saltándose la autentificación:� Consulta:
SELECT usuario FROM usuarios WHERE usuario=‘’ OR ‘1’=‘1’ AND password=‘’ OR ‘1’=‘1’
![Page 9: Hacking ético en aplicaciones web [SQL Injection]](https://reader031.vdocumento.com/reader031/viewer/2022020116/557ab9fcd8b42a642f8b4809/html5/thumbnails/9.jpg)
SQL Injection
� Secuencia:� Buscar vulnerabilidad� Sacar información (usuario, base de datos..)� Sacar tablas� Sacar columnas de las tablas� Sacar registros de las tablas
![Page 10: Hacking ético en aplicaciones web [SQL Injection]](https://reader031.vdocumento.com/reader031/viewer/2022020116/557ab9fcd8b42a642f8b4809/html5/thumbnails/10.jpg)
SQL Injection
� Buscar Vulnerabilidad� Introducir en los parámetros el carácter ‘, para
romper la consulta. (Se mostrara un error en la página)� E.j: www.prueba.es/index.php?id=1’
� Comprobar que realmente estamos modificando la consulta. (No se mostrara ningún error en la página)� E.j: www.prueba.es/index.php?id=1+and+1=1 � E.j: www.prueba.es/index.php?id=-1+or+1=1
![Page 11: Hacking ético en aplicaciones web [SQL Injection]](https://reader031.vdocumento.com/reader031/viewer/2022020116/557ab9fcd8b42a642f8b4809/html5/thumbnails/11.jpg)
SQL Injection
� Sacar información (usuario, base de datos …)� Dejamos la consulta de la aplicación vacía
� Buscamos el numero de columnas que tiene la consulta para poder realizar nuestra propia consulta mediante “UNION”
� Sacamos información mediante :� User(), database(), @@version, @@datadir…
![Page 12: Hacking ético en aplicaciones web [SQL Injection]](https://reader031.vdocumento.com/reader031/viewer/2022020116/557ab9fcd8b42a642f8b4809/html5/thumbnails/12.jpg)
SQL Injection
� Sacar tablas de la BD� Utilizamos la tabla: information_schema.tables
� De ahí sacamos que tablas hay en la base de datos
� Utilización de “limit N,1” para sacar las distintas tablas
� Sacar columnas de las tablas� Idéntico al anterior pero utilizando
information_schema.columns
![Page 13: Hacking ético en aplicaciones web [SQL Injection]](https://reader031.vdocumento.com/reader031/viewer/2022020116/557ab9fcd8b42a642f8b4809/html5/thumbnails/13.jpg)
SQL Injection
� Sacar registros de las tablas� Con la información obtenida construimos la
consulta que queramos como:� … UNION SELECT usuario, password FROM
usuarios LIMIT 0,1
� Pudiendo así ir sacando todos los registros de la tabla
![Page 14: Hacking ético en aplicaciones web [SQL Injection]](https://reader031.vdocumento.com/reader031/viewer/2022020116/557ab9fcd8b42a642f8b4809/html5/thumbnails/14.jpg)
SQL Injection (SQLmap)
� Esta herramienta nos permite…� Automatizar todo el proceso de inyección sql.
� Con ella podemos sacar todas las bases de datos, tablas y columnas en cuestión de minutos.
� Además trae gran cantidad de opciones, como obtener una shell de la base de datos, desde la cual podríamos alterar, crear o borrar lo que fuera.
![Page 15: Hacking ético en aplicaciones web [SQL Injection]](https://reader031.vdocumento.com/reader031/viewer/2022020116/557ab9fcd8b42a642f8b4809/html5/thumbnails/15.jpg)
Troyanización de un servidor
� Se utilizara SQLmap y Metasploit para poder introducir el “troyano” Meterpreter.
� El cual nos proporcionara control total del servidor, pudiendo desde encender la cam hasta obtener todo el trafico de red que pasa por el ordenador infectado.
![Page 16: Hacking ético en aplicaciones web [SQL Injection]](https://reader031.vdocumento.com/reader031/viewer/2022020116/557ab9fcd8b42a642f8b4809/html5/thumbnails/16.jpg)
FIN
Esperamos que os haya gustado la charla sobre SQL Injection! Y ante cualquier cosa, duda o… Ganas de aprender no dudéis en poneros en
contacto con nosotros!
� Os invitamos a pasaros por Blog: Hykeos-greyhat.blogspot.comYoutube: /user/hackingeticowebTwitter: @hackingeticowebCorreo: [email protected]