📜 Scénario
Agent, l’épreuve finale de l’entraînement programmation est aussi réputée que dangereuse. Comme tous ceux qui vous ont précédé, vous devez désamorcer la bombe dans le temps imparti. Elle génère un code toutes les 2 secondes, que vous devez saisir pour assurer la sécurité de tous.
- La bombe génère le code à récupérer via une requête GET sur la page 1
- Vous n’avez que 2 secondes pour envoyer ce code via une requête POST dans le champ
solutionde la page 2 - Si tout est correct, la bombe sera inoffensive et affichera le mot de passe ! Sinon… courez 💥
⚠️ Attention : Le serveur vérifie votre identité. Sans authentification, votre mission échouera !
🎯 Objectif du Défi
Ce défi vous fera découvrir :
- ✅ Les requêtes HTTP GET/POST avec le fonctionnement des sites web
- ✅ La manipulation de données avec Python
- ✅ L’authentification de base pour prouver votre identité à notre plateforme
Prêt a relever le défi ? 🕵️♂️
🛠️ Outils Nécessaires
- Python 3, pour écrire votre script
- VS Code, pour exécuter votre script
📝 Instructions Pas à Pas
Toutes les informations pour réussir le défi sont disponibles ci-dessus. Toutefois, pour compléter votre entraînement Code Guardians, vous pouvez suivre les consignes pas à pas :
Cette épreuve se base sur la base d’Internet et du protocole HTTP : les échanges client – serveur. Ils peuvent être de 2 natures :
- Recevoir de l’information, via le HTTP
GET - Envoyer de l’information, via le HTTP
POST
Ces deux méthodes peuvent être appelées depuis votre ordinateur en ecrivant du code informatique. Ce code peut être ecrit dans plusieurs langages, et nous couvrirons ici le Python pour les raisons X Y Z
- Installer Python via le guide W3schools – Get started
- Installer VS Code et l’extension via le guide VSCode
1️⃣ Récupérer le Nom Secret (GET)
Dans VS Code, creer le fichier main.py file et lancer le code suivant pour appeler la page 1 avec une requete GET :
import requests
session = requests.Session()
page1 = 'https://wp.pioneer-sprint-futura.ovh/wp-json/cg_call_renvoi/v1/receive'
request1 = session.get(page1)
print(request1.text)
Appelez-le et vous recevrez une erreur.
C’est parce que notre plateform verifie l’authentification. Recuperez votre authent depuis vos paramétres d’API (aide) et corrigez :
import requests
session = requests.Session()
session.auth = requests.auth.HTTPBasicAuth('votre-username-ici', 'votre-cle-ici')
page1 = 'https://wp.pioneer-sprint-futura.ovh/wp-json/cg_call_renvoi/v1/receive'
request1 = session.get(page1)
print(request1.text)
3️⃣ Transmettre le Nom (POST)
top, maintenant envoyez la reponse a la page 2
import requests
session = requests.Session()
session.auth = requests.auth.HTTPBasicAuth('votre-username-ici', 'votre-cle-ici')
page1 = 'https://wp.pioneer-sprint-futura.ovh/wp-json/cg_call_renvoi/v1/receive'
request1 = session.get(page1)
print(request1.text)
page2 = 'https://wp.pioneer-sprint-futura.ovh/wp-json/cg_call_renvoi/v1/submit'
request2 = session.post(page2, data={'solution': request1.text})
print(request2.text)
Si tout se passe bien, le serveur vous retournera un message de succès 🎉
🚨 Besoin d’Aide ?
- Erreur 401 : Vérifiez vos identifiants dans vos paramètres.
- Timeout : Assurez-vous d’avoir une connexion internet stable.
- Bug dans le code : Comparez avec notre solution type (disponible après 3 tentatives).
💬 Posez vos questions sur notre forum ou contactez le support !
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.