Inicio > hacking > XSS sobre SSL y los filtros de navegador

XSS sobre SSL y los filtros de navegador

El otro día salió una conversación a raíz del XSS clásico que ha afectado a la web de la presidencia española de la UE. Alguien preguntaba si una web con SSL a la que se le inyecta código javascript mediante XSS daría algún tipo de alerta de “contenido no seguro” o no. Yo respondí que no, pero como no se me terminó de creer (eso está bien, hay que dudar de todo) hice una pequeña prueba. He montado un servidor web con SSL y certificado autofirmado, con una página web que tiene el siguiente código:

<body>

<form action="sslxss.php" method="get">
<input type="text" id="texto" name="texto">
<input type="submit" value="Ale">
</form>

<br>
<br>
<?
echo $_GET["texto"];
?>
</body>

Este código es obviamente vulnerable a XSS, y la pinta que tiene es la que se muestra en la imagen.

Vista de la web

Vista de la web

Pues bien, iba yo todo contento a calzarle mi XSS de libro cuando…

XSS clásico que falla en chrome

XSS clásico que falla en chrome

¿Pero qué pasa aquí? ¡Yo he programado el código y vamos que si es vulnerable! Podríamos intentarlo con nuestro viejo Firefox 3.5 con el mismo resultado.

XSS clásico que falla en firefox

XSS clásico que falla en firefox

Vaya, parece que hay algo que anda filtrando las comillas, ¿magic quotes? ¿el navegador?. Vamos a darle una pequeña vuelta a la cosa a ver si tengo razón. Firefox ha caído fácil, en cuanto hemos quitado las comillas, y en vez de meter alert(“XSS”); hemos utilizado alert(123); ha saltado la esperada ventanita.

Evitando el filtro de comillas, firefox traga

Evitando el filtro de comillas, firefox traga

Como era de esperar, no hay avisos SSL de contenido no seguro. Sin embargo, Chrome se nos sigue escapando. Podemos probar también con:

<SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT>
<IMG SRC="javascript:alert('XSS');">

o con una variedad importante de métodos de evasión de filtros y la mayoría fracasarán. Chrome en Linux y Mac ha incluido recientemente un filtro antiXSS que, como estamos viendo, funciona bastante bien. Aunque le han encontrado las cosquillas, todos esos fallos están ya solucionados. Esto no pretende ser un estudio del filtrado XSS de Chrome (quizá para otra ocasión), así que nos quedamos con la idea de que el SSL no ofrece ninguna garantía adicional frente al XSS y de que en Chrome es más díficil que en Firefox ;)

Nos rendimos ante el filtro XSS de Chrome, de momento

Nos rendimos ante el filtro XSS de Chrome, de momento

Categorías:hacking Etiquetas: , ,
  1. Aún no hay comentarios.
  1. Aún no hay trackbacks

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.