lunes, marzo 03, 2008

Correos en la Web (IV de IV)

***************************************************************************************
- Correos en la Web (I de IV)
- Correos en la Web (II de IV)
- Correos en la Web (III de IV)
- Correos en la Web (IV de IV)
***************************************************************************************
Hola a todos!

Quedaba esta cuarta entrada aún por publicar y quería dedicársela, como no, a los XSS en los correos en la web. Pedro Laguna hablaba de los gusanos que se expanden por medio de XSS y en Milw0rm hace tiempo que se publicó un vídeo de cómo hacer algún gusanillo de esta forma.

Las técnicas de XSS scripting han dado problemas a los servidores de correo web desde tiempo inmemorial. Ejemplos famosos de estos son los fallos de de Hotmail como éste, el salto del antivirus mediante XSS ] o, de forma parecida, los CSRF de Gmail.

Pocos han sido los que se han librado de los ataques de XSS, así el Spectra OWA (Outlook Web Access) 2000 y el OWA 2003 fueron atacados también por XSS.

Poner un lector de correos en la web es sinónimo de enfrentarte a ataques de XSS, así que, más vale que protejas bien lo que vas a mostrar. Es fácil encontrar en muchísimos sitios que las etiquetas script están bloqueadas, pero pensar que con esto estás arreglado es lo mismo que porque tengas los errores filtrados de la base de datos pienses que no vas a ser atacado y no van a poder acceder a la información.
En el reto de Boinas Negras, tiempo ha, el nivel 10 era un XSS que había que hacer con un lector de correos que filtraba la etiqueta script. Nuestro amigo RoMaNSoFt realizo la inyección en el elemento body.

Es fácil hoy en día que, la mayoría de los sistemas que filtran la etiqueta script no filtran correctamente el html dinámico y se puede inyectar XSS de mil formas en mil elementos. Como en un correo web la sesión está iniciada, podría hacerse un mail que cada vez que se leyera enviar un mail a toda la libreta de direcciones, o que cerrara la sesión o que borrara los correos o … a gusto del consumidor.
Yo he probado a enviarme un correito de un sistema web a otro sistema web metiendo un simple: [b onmouseover=”javascript:alert(document.cookie)”]Hola![/b] a mi correo de Hispavista.

[b onmouseover=”javascript:alert(document.cookie)”]Hola![/b]

Y el resultado ha sido que cuando he pasado el ratón el código se ha ejecutado.

javascript ejecutado

Chupao, ¿no? Bueno, pues nada, habrá 1 punto extra para el campeonato del 2008 en los Retos Hacking para LOS TRES PRIMEROS que me envíen un correo que cuando lo abra me envíe otro correo a mi dirección personal. Hasta el día de las elecciones hay tiempo… después no cuenta ;)

Saludos Malignos!

***************************************************************************************
- Correos en la Web (I de IV)
- Correos en la Web (II de IV)
- Correos en la Web (III de IV)
- Correos en la Web (IV de IV)
***************************************************************************************

5 comentarios:

  1. Cab... y yo me iba ya a la cama y me da por leer blogs...

    ResponderEliminar
  2. Por cierto, el maligno ha omitido un pequeño dato en la descripción de su exploit: no funciona enviando un mail de texto normal y corriente (text/plain). Ha de ser HTML.

    -r

    ResponderEliminar
  3. @romansoft

    y cómo se envía en HTML

    ResponderEliminar
  4. @novato: con un content-type de "text/html". Yo lo hice a manubrio (telnet al 25, etc) pero quizás os sea más fácil utilizar cualquier cliente de correo y configurarlo para que envíe en formato HTML (y no en texto plano).

    -r

    ResponderEliminar