chema alonso blind sql injection taller
DESCRIPTION
Taller de ataques a sitios web través de Blind InjectionTRANSCRIPT
12/04/2008
1
►SQL Injection
►LDAP Injection
►Xpath Injection
►…Y a ciegas…
►Blind SQL Injection
►Blind LDAP Injection
►Blind XPAth Injection
12/04/2008
2
Blind SQL Injection
►La aplicación Web no muestra ningún mensaje de error.
►La aplicación no procesa nuestros comandos
�Select titulo from tabla where param=$param
►Se inyecta comandos y se busca hacer preguntas de Verdad o Mentira. Ejemplo:
�http://server/miphp.php?id=1 and 1=1
�http://server/miphp.php?id=1 and 1=2
12/04/2008
3
►¿Como reconocer un falso?
�Da un código de error
�Da una página de error
�Cambia el hash de la firma
�Cambia el árbol html
�Tarda más en responder
►Si la página reacciona de forma diferente a la Verdad y a la Mentira, entonces podemos extraer datos haciendo búsquedas:
�http://server/miphp.php?id=1 and 300>(selectascii(substring(username,1,1) from all_users where rownum<=1)
►http://www.informatica64.com/retohacking
12/04/2008
4
Blind LDAP Injection
12/04/2008
5
►LDAP: Base de datos Jerarquica
�Clases
�Objetos
�Herencia
�Contenedores
►Búsqueda: LDAP Search Filters
12/04/2008
6
filter = LPAREN filtercomp RPAREN
filtercomp = and / or / not / item
and = AMPERSAND filterlist
or = VERTBAR filterlist
not = EXCLAMATION filter
filterlist = 1*filter
item = simple / present / substring / extensible
simple = attr filtertype assertionvalue
filtertype = equal / approx / greaterorequal / lessorequal
equal = EQUALS
approx = TILDE EQUALS
greaterorequal = RANGLE EQUALS lessorequal = LANGLE EQUALS
(&(atributo1=valor1)(atributo2=valor2))
Ejemplo:
(&(directorio=nombre_directorio)(nivel_seguridad=bajo))
Inyección:
(&(directorio=almacen)(nivel_seguridad=alto))(|(directorio=almacen)(nivel_seguridad=bajo))
12/04/2008
7
(|(atributo1=valor1)(atributo2=valor2))
Ejemplo:
(|(cn=D*)(ou=Groups))
Inyección:
(|(cn=void)(uid=*))(ou=Groups))
►Tiene lógica binaria
►Tiene soporte para booleanización:
�Comodín: *
�Reducción charset: *a*
�Despliegue: a*
�Relacionales:
�>=
�<=
�~=
�=
12/04/2008
8
►http://retohacking4.elladodelmal.com
12/04/2008
9
Blind Xpath Injection
Explotación
Dada la siguiente consulta Xpath:
Inyectamos:
La condición quedaría:
User: abc' or 1=1 or 'a'='b
Pass: k
username/text()=‘abc' or 1=1 or 'a'='b' and password/text()=‘k'
string(//user[username/text()=‘romansoft' and password/text()='!dSR']/uid/text())
Condición Qué devolverDónde buscar
12/04/2008
10
►http://retohacking3.elladodelmal.com
►Chema Alonso
►http://elladodelmal.blogspot.com
►http://www.informatica64.com
12/04/2008
11
November 2006 21
Technews I64. Suscríbete Gratis en
http://www.informatica64.com/boletines
Blind SQL Injection
http://elladodelmal.blogspot.com/2007/07/proteccin-contra-las-tcnicas-de-blind.html
Time-Bases Blind SQL Injection with heavy Queries
http://www.microsoft.com/latam/technet/articulos/articulos_seguridad/2007/septiembre/sv0907.mspx
LDAP Injection & Blind LDAP Injection
http://elladodelmal.blogspot.com/2007/10/ldap-injection-blind-ldap-injection_9021.html
XPath injection in XML databases
http://palisade.plynt.com/issues/2005Jul/xpath-injection/
Blind XPath Injection
http://packetstormsecurity.org/papers/bypass/Blind_XPath_Injection_20040518.pdf
► Milw0rm (Webapps exploits)
http://milw0rm.com/webapps.php
- OWASP
http://www.owasp.org