Icône du lab

Pickle Jar

Pouvez-vous exploiter la désérialisation non sécurisée ?

Moyen Mis à jour le 23 juin 2026 Accès Gratuit Solution (Pro)
Python Pickle Deserialization RCE Privilege Escalation Linux

DataVault Inc. permet aux utilisateurs de restaurer des configurations de sauvegarde en téléchargeant des fichiers .pkl. Le service désérialise aveuglément tout ce que vous envoyez. Pouvez-vous créer un pickle malveillant pour obtenir un shell et escalader vers root ?

2
Flags
400
XP
44%
Taux de Réussite

La désérialisation non sécurisée est une vulnérabilité critique des applications web qui survient lorsqu'une application désérialise des données non fiables sans validation appropriée. En Python, le module pickle est une bibliothèque de sérialisation courante qui est intrinsèquement non sûre lorsqu'elle est utilisée avec des données fournies par l'utilisateur. La propre documentation de Python avertit explicitement que pickle ne devrait jamais être utilisé pour désérialiser des données provenant de sources non fiables, pourtant cet avertissement est fréquemment ignoré dans les applications en production, créant des vulnérabilités de sécurité graves.

Comprendre la désérialisation Python Pickle

Le module pickle de Python sérialise des objets en un flux d'octets et peut les reconstruire ultérieurement par désérialisation. Le danger réside dans la capacité de pickle à exécuter du code arbitraire pendant le processus de désérialisation. En implémentant la méthode __reduce__ sur une classe personnalisée, un attaquant peut définir des fonctions et arguments arbitraires qui seront appelés lorsque l'objet sera dépicklé. Cela signifie qu'une charge utile pickle malveillante peut exécuter des commandes système, établir des reverse shells ou effectuer n'importe quelle opération disponible pour l'utilisateur de l'application - ce qui en fait un chemin direct vers l'exécution de code à distance (RCE).

Création de charges utiles Pickle malveillantes

Créer un exploit pour une vulnérabilité de désérialisation pickle implique d'écrire une classe Python avec une méthode __reduce__ qui retourne un tuple contenant un callable (comme os.system ou subprocess.Popen) et ses arguments. Lorsque l'application dépickle cet objet, la commande spécifiée est exécutée sur le serveur. Cette technique est simple à implémenter, ne nécessitant que des compétences de base en script Python, mais elle produit l'impact le plus sévère - l'exécution de code arbitraire. La simplicité de l'exploit rend la désérialisation non sécurisée particulièrement dangereuse.

Du RCE à la compromission complète du système

Après avoir obtenu l'exécution de code par désérialisation pickle, les attaquants établissent généralement un point d'ancrage plus stable via des reverse shells ou un accès SSH. À partir de là, les techniques d'escalade de privilèges Linux - comme l'exploitation de règles sudo mal configurées, de binaires SUID ou de fichiers système accessibles en écriture - peuvent élever l'accès jusqu'à root. Comprendre la chaîne d'attaque complète depuis la désérialisation non sécurisée jusqu'à l'exécution de code puis l'escalade de privilèges est essentiel pour les professionnels de la sécurité évaluant les applications et services web basés sur Python.

Ce que vous apprendrez

  • Comprendre les vulnérabilités de désérialisation Python pickle et leur gravité
  • Apprendre à créer des charges utiles pickle malveillantes en utilisant la méthode __reduce__
  • Pratiquer l'obtention d'exécution de code à distance par désérialisation non sécurisée
  • Explorer l'énumération des privilèges sudo sur les systèmes Linux
  • Développer des compétences en escalade depuis un RCE d'application web jusqu'à l'accès root
  • Reconnaître les alternatives sécurisées à pickle pour le traitement des données sérialisées

Prérequis

Basic Python scripting Web application fundamentals Linux command line Understanding of serialization concepts

Prêt à hacker ce lab ?

Créez un compte gratuit et pratiquez la cybersécurité.

Commencer - C'est gratuit
Commencez Votre Défi

Lancez votre machine dédiée pour commencer à hacker

~1-2 min de configuration
Serveur dédié
Instance privée
Puissance standard
Nouveau ? Voici comment faire
1
Cliquez sur "Start Lab" ci-dessus Vous obtiendrez votre propre machine avec une adresse IP
2
Explorez la cible Ouvrez l'IP dans votre navigateur et cherchez des vulnérabilités
3
Trouvez et soumettez les flags Les flags sont des textes secrets cachés dans le système - collez-les ci-dessous pour marquer des XP

Prêt à hacker ce lab?

Créez un compte gratuit pour démarrer votre propre serveur dédié, soumettre des flags et gagner des XP au classement.

Commencer à Hacker Gratuitement
13 000+ Hackers 100+ Labs & Cours Gratuit
Commencer Gratuitement