CTF Write-Up

entièrement en français et réalisé par ThaySan.

View on GitHub

[Reverse] Auth2 - 25pts

auth2.py

title: Auth2

category: Reverse

difficulty: Facile

point: 25

author: m00n

description:

Bon en vrai au début j’étais naze, je retente !

Le flag n'est pas au format cybn{}

Solution

Il faut partir de la fin et remonter, on voit que a est comparé à b :

if a == b:
    print("Can you stop breaking my authentification FOR 5 MINUTES ?! Im trying to learn !\n(tu peux soumettre ce password comme flag)")
else:
    print("Well seems stronger this time, try again !")

a n’est jamais modifié avant la comparaison, sa valeur Vly{4Gjd-vbvI~VZ8UjeGX ne bouge jamais. Maintenant il faut que notre b soit égale à ça et on voit à la ligne 8 qu’il se fait encoder en base 85 pour “devenir a” :

b = base64.b85encode(str.encode(b))

Il faudra donc simplement décoder a de la base 85.

from base64 import b85decode
print(b85decode("Vly{4Gjd-vbvI~VZ8UjeGX"))

# b'b3773r_4u7h_m4yb3'

FLAG : b3773r_4u7h_m4yb3