Checklist

Lors d'un TI, si vous avez accès au code :

En PHP :

Exemple :

On a récupéré le fichier grâce à une backup qui était présente et en ajoutant le ~.

Code du fichier de Backup

On note la présence d'une magic fonction et on va donc faire appel à la Classe Custom qui appellera de manière automatique la fonction __destruct :

Exemple d'injection d'objet

En Java :

Lors d'un TI, si vous n'avez pas accès au code :

En PHP :

Format d'un object serializé :

O:4:"User":2:{s:8:"username";s:6:"carlos";s:7:"isAdmin";b:0;}

Vulnérabilité en PHP de l'opérateur == :

Allez voir la partie Modifying data types

Exemple

Géneration d'erreur :

Pour génerer des erreurs lors de la deserialization en PHP, il suffit :

En Java :

Format d'un objet serializé

Les objets Java sérialisés commencent toujours par les mêmes octets, qui sont ac ed en hexadécimal et rO0 en Base64.

Gadget Chain :

Trouver une explication :

Last updated