2012-07-20 28 views
44

http://lcamtuf.coredump.cx/squirrel/¿Es esta una página web o una imagen?

Según el autor,

Esta es una página de destino integrado para una imagen. Puede vincular a esta URL y obtener el documento HTML que está viendo en este momento (pronto a incluir datos esenciales sobre la ardilla); o inserte exactamente la misma URL que una imagen en su propia página con temática de ardilla: <a href="http://lcamtuf.coredump.cx/squirrel/">Click here!</a> <img src="http://lcamtuf.coredump.cx/squirrel/"> No se han producido incidencias en el servidor - la magia ocurre en su navegador.

En otras palabras, si inserta esa URL en su navegador se representa como una página web, pero también puede usar la misma URL que una fuente de imagen.

¿Qué tipo de brujería está trabajando aquí?

(Edit: source code desde el enlace anterior si ese sitio nunca se queda sin conexión.)

+4

La respuesta a su * título * sería: ambas, al parecer. – aardvarkk

+4

Esta es la única vez que veo 'img src =" # "' usado. : P – Doorknob

+0

Es una imagen codificada –

Respuesta

44

El archivo que ha vinculado es un políglota, una combinación de idiomas. Se puede leer y entender como una imagen y un archivo HTML. Es un truco simple. Si nos fijamos en el código HTML se puede ver esto en la parte superior:

ÿØÿà 

Una búsqueda rápida en Google muestra esto parece una cabecera JPEG. Lo que hace el creador es almacenar el HTML en metadatos JPEG y los datos de imagen JPEG en un comentario html. Bastante ingenioso pero no mágico.

Para ocultar la cabecera JPEG que utiliza las reglas CSS para ocultar el cuerpo y muestran sólo algunos elementos:

body { visibility: hidden; } 
.n { visibility: visible; position: absolute; ...... } 

También tenga en cuenta que no es HTML válido, por ejemplo porque el comentario para ocultar los datos de imagen no está cerrado, pero los navegadores todavía lo aceptan felizmente y lo renderizan.

+0

Me pregunto si sería posible crear un archivo JPEG válido que termine con '->' – ThiefMaster

+2

@ThiefMaster: No pagando 122 CHF para averiguarlo, lo siento. http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber = 25431 – orlp

+0

Esto puede no estar relacionado con esto, pero me hizo pensar en ello y parece al menos algo apropiado: ¿Sería posible hacer que este archivo html (gupi1410 señalado que el archivo se llame index.html) tenga un php redirigir en ella? Entonces, cuando se usa en 'img src = 'imgLink'', muestra una imagen y cuando el usuario va a' imgLink' se lo redirecciona a la página "jaja, no puede enlazar mis imágenes". – DACrosby

3

Es una página HTML con el contenido HTML junto con datos de imagen.

Mira el encabezado, contiene el encabezado jpg. En la fuente, la primera línea contiene ÿØÿà que es un encabezado jpeg. La url http://lcamtuf.coredump.cx/squirrel/index.html (index.html adjunta), muestra claramente que es un archivo html. ¡Así que aparentemente esto se puede llamar tanto como una página web o una imagen!

Puede cambiar fácilmente el nombre de un archivo jpg (o cualquier archivo de imagen) como .html & cuando abre en su navegador, simplemente mostraría una imagen, como cualquier otra imagen.

Un truco similar reciente que recuerdo es que el cambio de nombre de gif a jpg como en here, pero aún así los datos son gif & los encabezados contienen gif.

Cuestiones relacionadas