Hoy toca contar una historia, que por desgracia cada vez es más frecuente. Estaba yo el día uno de noviembre en mi casa, sentado en mi mesa de estudio peleándome con las particiones FAT32 con sus “directory root” y los “longs entry” (a quién se le ocurre empezar por el final), cuando a las cinco de la tarde decidí darme una vuelta por la web, y en concreto por las de noticias, a ver que había ocurrido.
Dentro de las noticias que vi me encontré con una muy interesante que indicaba que había habido un socavón en un estado de Alemania (me pareció curiosa), pero al pinchar sobre esa noticia el no-script me grito, algo bastante raro ya que lo tengo bastante bien configurado. Cuando mire a ver que ocurría me encontré con esto:

Antes de continuar se habrán dado cuenta que tanto he eliminado cualquier referencia de la página web donde ocurrió, como he eliminado el supuesto atacante que lo produzco, por razones muy distintas, un fallo lo puede cometer cualquiera, y el que esté libre de culpa que tire la primera piedra. Por otro lado, me he negado a hacer publicidad de los supuestos atacantes, que no son más que un par de irresponsables, por no emplear calificativos de otro tipo.
Bueno, ya podemos seguir. Al ver el mensaje “alert” lo vi claro, sabía donde estaba el fallo puesto que siempre que visitaba la web veía esa zona y pensaba: “esto es vulnerable sí o sí”. No hubo duda, fui directo a la zonas de comentario en busca del alert, y claramente “one more time” esto era un XSS:
<span class="fechaHora">01.11.2010 - 16.55 h - </span>Dice ser <strong><a
href="mailto:XXX%3C"><script>alert("Hacked By: XXXXXXXX")</script>@gmail.com"
>XXXX</a></strong> - <span class="ordinal">#1</span>
Por tanto la zona vulnerable era la parte donde se mostraba el nombre del usuario registrado que había publicado el comentario. Lo peligroso de esto, es que, como todo comentario, este es permanente y por tanto el XSS se ejecutaba cada vez que un usuario visitaba la noticia. Como se podrán imaginar el atacante fue aumentado la calidad del ataque, dejando inservible la noticia.
Como ven, esto es lo que tendría que haber en un usuario registrado:
<span class="fechaHora">01.11.2010 - 14.28 h -</span><strong><a href="direccion web" onclick="window.open(this.href); return false; ">Nombre usuario</a></strong> - <span class="ordinal">#1</span>
A raíz de esto me surgieron varias dudas que quiero compartir con ustedes.
Si como técnico de seguridad detecto que una web es posiblemente vulnerable, ¿debo informar a la web? ¿Si informo me podrían acusar de asaltante? ¿Me harían caso? Antes de contestar piensen: ¿en que web hay un enlace para poder notificar posibles fallos de seguridad detectados?
Otra duda que me surgió fue, ¿porqué si cada vez más se están realizando ataques de tipo XSS que permiten, entre otras, modificar la imagen de la web, robar sesiones de los usuarios y redireccionar a servidores con malware, cuando se informa de una vulnerabilidad XSS en una auditoría no se le da el valor que corresponde?
¿Pero saben cuál fue la mayor pregunta que me hice después? Que ocurrió en Alemania con el socavón, que era lo que realmente me interesaba.
Twitter! 