Bienvenidos a este paper de Image Filename XSS [IFXSS].
<------------------------------------------------------------------------------>
0x01-> Introducción.
0x02-> Explotar la vulnerabilidad
0x04-> Créditos.
+------------------------------------------------------+
Introducción.
Image Filename XSS es el aprovechamiento de $http_post_files['userfile']['name'] que coge el nombre del archivo subido, en el cual nostros añadiremos HTML o Javascript para poder conseguir un XSS.
+-------------------------------------------------------+
Explotando la vulnerabilidad.
Primero tendremos que buscar una aplicación vulnerable para este tipo de ataque, se trata de que se pueda subir jpeg/pdf/doc/txt... (Cualquier archivo)
¿Que tipo de sitios suelen ser vulnerables a IFXSS?Suelen ser vulnerables los foros, sitios web de almacenamiento, algunos libros de visitas...
¿Como se si es vulnerable?Para saber si es vulnerable vamos a crear un archivo llamado "><h1>XSS.txt (sin cerrar al final explicare el porqué)
Lo abrimos con un blog de notas o el gedit depende de que SO estes y escribiremos:
"Hola papapa test!"
Ahora vamos a cambiar el .txt por .jpg ya que la mayoria de uploaders permiten .jpg y nos sera más fácil encontrar uno.
Entonces si sale algo parecido a: La imagen: "Nombre imagen" se subio correctamente o un listado con el nombre del archivo que hemos subido podremos probar de inyectar HTML o Javascript
Ahora vamos donde aparece el nombre del archivo.jpg y si es vulnerable el <h1> se ejecuto y todo lo que hay despues de "nombrearchivo.jpg" debería de salir grande como en la imagen de abajo, en caso de que no salga en grande y salga: "><h1>JKS.jpg pues otra vez será.

Ahora que sabemos que es vulnerable podremos probar de inyectar más códigos como un iframe y "infectarlo" con un beef o otras cositas eso lo dejo para vosotros..
PD: El h1 no lo cerramos porque en Linux (No se en windows, supongo que también) no deja poner / ya que si se pudiera poner lo interpretaria el archivo como si fuera un directorio a abrir.
Quedando asi la URL del archivo: /home/jks/desktop/archivo.txt/
Aunque siempre nos quedaría probar de bypassear el nombre con el live http headers y cerrar el tag que pusimos
+-------------------------------------------------------+
Creado por: JKS (17-6-2011)
PD: Este paper hara la tira de tiempo que lo hice.
El XSS de dropbox esta reportado.