pyterm

Catégorie: Misc Difficulté: Moyen Flag: CTF{c54f60751af79f92fd93a3a2f78eb2461e8ce614c879a1bb85fb1c0e32bd7ec3}

Challenge

Description


Bypass the restrtictions and get the flag.

Flag format: CTF{sha256}

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 ?