Hola a todos en otro post más de Byte Mind, en el caso de hoy, os vamos a enseñar a extraer, crear, borrar y modificar los metadatos de un fichero con la herramiento exiftool.
Esta idea a surgido a través de un problema en el proyecto web en el que trabajo actualmente, hemos tenido algunos problemas en el servidor y nos pareció que podíamos haber sido atacados. Después de muchas búsquedas, una de las ideas fue buscar en los metadatos de los ficheros que podían subir los usuarios y comprobar si alguien con malas intenciones, había intentado ejecutar un script xss (Cross-Site Scripting) a través de los metadatos de un fichero .pdf (en este puntual caso).
Por suerte, no fue el problema y realmente tampoco fuimos atacados, pero había un error en la configuración de apache, lo que daba permisos extra a los usuarios permitiendo la ejecución de estos ficheros en el lado del cliente.
Cambiando al tema principal de este post y para realizar esta acción de leer los metadatos, utilizamos una herramienta disponible para su descarga en casi cualquier distribución linux aunque, para variar, preferimos utilizar un sistema debian también en el trabajo. Esta herramienta es exiftool pero, antes de nada, algunos os preguntaréis ¿qué son los metadatos?
Los metadatos son datos que describen otros datos. Qué raro verdad pero, tiene su lógica. Un grupo de metadatos se describen como el contenido informativo de un objeto. En el campo de la informática, los metadatos de un fichero, serían datos como el autor, la fecha de creación, el tamaño, coordenadas GPS, etc.
Una vez aclarado este tema comenzamos instalando la herramienta mencionada anteriormente, exiftool, que instalaremos en nuestro sistema linux con el siguiente comando:
apt-get install libimage-exiftool-perl
Otra opción si no trabajáis con debian o, si prefereis instalarlo manualmente, podéis hacerlo de la siguiente manera:
wget http://www.sno.phy.queensu.ca/~phil/exiftool/Image-ExifTool-9.70.tar.gz
tar -xzf Image-ExifTool-9.70.tar.gz
cd Image-ExifTool-9.70/
perl Makefile.PL
make test
make install
Una vez lo tenemos instalado, ahora toca utilizarlo. Para utilizar esta herramienta se hace con el siguiente comando:
exiftool nombre_fichero
Aquí podemos ver un ejemplo mostrando los metadatos de un fichero
La gran mayoría de comandos tienen una opción help para consultar los posibles comandos de la herramienta pero, en este caso no tenemos esa posibilidad. En este caso tenemos una documentación completa acerca de ella, tipos de ficheros permitidos, listado de comandos, etc. Podemos consultar la documentación pinchando aquí.
Una vez explicado este punto, pasamos a enseñaros como añadir metadatos a nuestro fichero, la sintaxis sería la siguiente
exiftool -exif:Campo="texto" nombre_fichero
exiftool nombre_fichero

exiftool -exif:campo_a_modificar="nuevo valor" nombre_fichero

exiftool -all= nombre_fichero
