Cross-Site Scripting en El Mercurio On-Line (EMOL)


EMOL es un portal web de noticias que tiene una gran cantidad de visitas a nivel nacional, según dicen es una de las principales plataformas “noticiosas” del país.

El bug esta en no filtrar los parametros de entrada cuando se muestra el error 404 de una pagina inexistente, por ejemplo: https://www.emol.com/pagina_no_existe

Mostrara el mensaje

Si cambiamos “pagina_no_existe” por “prueba_de_concepto
(https://www.emol.com/prueba_de_concepto) mostrará

Asi mismo, si insertamos codigo HTML o JavaScript, este sera ejecutado.

La prueba de concepto que he hecho es:
https://www.emol.com/%3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%2f%58%53%53%2f%29%3c%2f%73%63%72%69%70%74%3e

La única restricción es que tenemos un límite de caracteres, creo que son 35 caracteres que podemos “inyectar”,
para explotarla debemos ser muy ingeniosos. Al ingresar mas de 35 caracteres, por ejemplo la URL
https://www.emol.com/123456789123456789123456789123456789 (36 caracteres) el mensaje mostrado es:

Entonces el codigo queda truncado. Si pensamos en meter un codigo javascript hay que pensar que tan solo escribiendo “<script></script>” tenemos 17 caracteres, por lo que solo nos quedarán 18 caracteres libres para poder escribir el código. Habría que probar otras técnicas como incluir un JS remoto (con src=) o bien usando el tag “style” para ahorrarnos 3 caracteres.

La vulnerabilidad fue reportada el 13 de Junio del 2011 y corregida el mismo día. Excelente tiempo de respuesta. Reportada vía email y en secureless.

EDITADO (30 de Junio)
En un comentario de un post anterior, ar4b14n ha reportado otro XSS en el sitio de EMOL. Tambien se ha agregado a secureless y se ha informado para que se solucione.

2 comentarios

  1. 😮 y quien ve esos errores? el programador de la pagina?

  2. Zerial

    junio 13, 2011 a las 7:33 pm

    Hola @royalgnz: Deben tener un “equipo de desarrollo” y ahi debe haber un responsable del sitio, supongo que ellos lo corrigen 🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Esto sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.