SlideShare una empresa de Scribd logo
HACKING ÉTICO EN
APLICACIONES WEB
Eduardo Arriols y Roberto López
Índice
Breve introducción SQL
SQL Injection (ByPass Login)
SQL Injection
A mano
Mediante sqlmap
Troyanización de un servidor
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
Introducción a SQL
Clausulas:
Union
SELECT nombre, edad FROM personas
UNION
SELECT usuario, password FROM usuarios
Limit
Limitar lista de resultados
SELECT … LIMIT 10
Elegir posición de una tabla
SELECT … LIMIT 2,1
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)
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..
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.
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’
SQL Injection
Secuencia:
Buscar vulnerabilidad
Sacar información (usuario, base de datos..)
Sacar tablas
Sacar columnas de las tablas
Sacar registros de las tablas
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
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…
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
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
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.
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.
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.com
Youtube: /user/hackingeticoweb
Twitter: @hackingeticoweb
Correo: hacking.etico.web@gmail.com

Más contenido relacionado

PPT
Object Oriented Analysis and Design
PPT
Module 3 Object Oriented Data Models Object Oriented notations
PPTX
Requirement elicitation technique “one on one interview“
PPTX
Resiliency in Distributed Systems
PPT
Principles Of Good Screen Design
PPTX
Leaky bucket A
PPTX
Medical store inventory system using barcode
PDF
Aula 04 - Diagrama de casos de uso
Object Oriented Analysis and Design
Module 3 Object Oriented Data Models Object Oriented notations
Requirement elicitation technique “one on one interview“
Resiliency in Distributed Systems
Principles Of Good Screen Design
Leaky bucket A
Medical store inventory system using barcode
Aula 04 - Diagrama de casos de uso

Similar a Hacking ético en aplicaciones web [SQL Injection] (20)

PPTX
OVA DISEÑO ORACLE Introducción Bases de Datos .pptx
PDF
ManualPracticoSQL.pdf
PDF
Manual practico para sql ingieneria de sistemas
PDF
Manual practicosql
PDF
Manual practico-sql
PDF
Manual practico SQL
PDF
Manual practico SQL
PPT
INYECCION SQL(SEGURIDAD DE LA INFORMACION)
PDF
(In) seguridad web
ODT
Sql desde cero
DOCX
Curso my sql
PPTX
SQL EN VISUAL BASIC
PDF
S07.s1.s2 - Material Base de Datos - SISE
PPTX
Como utilizar sql en visual basic 6
PPTX
Como utilizar sql en visual basic 6
PPTX
Material Clase BDD: Diseño de una Base de Datos
PPS
SQL Visual Basic 6.0
PPTX
Java con base de datos
OVA DISEÑO ORACLE Introducción Bases de Datos .pptx
ManualPracticoSQL.pdf
Manual practico para sql ingieneria de sistemas
Manual practicosql
Manual practico-sql
Manual practico SQL
Manual practico SQL
INYECCION SQL(SEGURIDAD DE LA INFORMACION)
(In) seguridad web
Sql desde cero
Curso my sql
SQL EN VISUAL BASIC
S07.s1.s2 - Material Base de Datos - SISE
Como utilizar sql en visual basic 6
Como utilizar sql en visual basic 6
Material Clase BDD: Diseño de una Base de Datos
SQL Visual Basic 6.0
Java con base de datos

Más de Eduardo Arriols Nuñez (16)

PDF
Introducción a los ejercicios de Red Team
PDF
Red Team: Auditando los procesos de detección y respuesta a incidentes
PDF
Technical Approach to Red Team Operations
PDF
Cyber Threats on the Industrial Environment
PDF
Red Team: Un nuevo enfoque para auditar controles de Ciberseguridad
PPTX
Vulnerando Entornos Critios: Smart-Cities, Smart-Buildings y Grandes Corporac...
PPTX
Como Pedro por su Smart-Building
PPTX
Hacking Ético Web
PPTX
¿Como es el trabajo de un Hacker?
PDF
¿Alguna vez has pensado que te gustaría ser "hacker"?
PDF
Hacking Físico: Vulnerando entornos, evadiendo sensores... ¿Misión Imposible?
PDF
Red Team: Next Generation Penetration Testing
PDF
Physical Penetration Testing (RootedCON 2015)
PDF
Red Team: Un cambio necesario para la visión holística de la ciberseguridad
PDF
Los sistemas informáticos de tu empresa al descubierto
PDF
Hacking ético [Pentest]
Introducción a los ejercicios de Red Team
Red Team: Auditando los procesos de detección y respuesta a incidentes
Technical Approach to Red Team Operations
Cyber Threats on the Industrial Environment
Red Team: Un nuevo enfoque para auditar controles de Ciberseguridad
Vulnerando Entornos Critios: Smart-Cities, Smart-Buildings y Grandes Corporac...
Como Pedro por su Smart-Building
Hacking Ético Web
¿Como es el trabajo de un Hacker?
¿Alguna vez has pensado que te gustaría ser "hacker"?
Hacking Físico: Vulnerando entornos, evadiendo sensores... ¿Misión Imposible?
Red Team: Next Generation Penetration Testing
Physical Penetration Testing (RootedCON 2015)
Red Team: Un cambio necesario para la visión holística de la ciberseguridad
Los sistemas informáticos de tu empresa al descubierto
Hacking ético [Pentest]

Hacking ético en aplicaciones web [SQL Injection]

  • 1. HACKING ÉTICO EN APLICACIONES WEB Eduardo Arriols y Roberto López
  • 2. Índice Breve introducción SQL SQL Injection (ByPass Login) SQL Injection A mano Mediante sqlmap Troyanización de un servidor
  • 3. 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
  • 4. Introducción a SQL Clausulas: Union SELECT nombre, edad FROM personas UNION SELECT usuario, password FROM usuarios Limit Limitar lista de resultados SELECT … LIMIT 10 Elegir posición de una tabla SELECT … LIMIT 2,1
  • 5. 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)
  • 6. 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..
  • 7. 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.
  • 8. 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’
  • 9. SQL Injection Secuencia: Buscar vulnerabilidad Sacar información (usuario, base de datos..) Sacar tablas Sacar columnas de las tablas Sacar registros de las tablas
  • 10. 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
  • 11. 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…
  • 12. 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
  • 13. 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
  • 14. 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.
  • 15. 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.
  • 16. 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.com Youtube: /user/hackingeticoweb Twitter: @hackingeticoweb Correo: hacking.etico.web@gmail.com