← retour au fanzine
OUTILS // 02 / 03
NETWORK
// ce qui circule — requêtes, réponses, headers, codes
H.A.L. — Chaque page que tu visites est le résultat d'une conversation.
Ton navigateur envoie une requête. Le serveur répond.
L'onglet Network intercepte tout — chaque requête, chaque réponse, chaque header.

C'est là que se cache ce que le challenge 01 te demande de trouver.
OUVRIR L'ONGLET NETWORK
F12 → onglet Network (Réseau sur Firefox).
L'onglet est vide au départ. Recharge la page (F5) — toutes les requêtes apparaissent.
Clique sur n'importe quelle ligne pour voir les détails : headers, réponse, timing.

Si la liste est vide après rechargement, vérifie que l'enregistrement est actif — le bouton rond en haut à gauche de l'onglet doit être rouge.

LA REQUÊTE GET
Quand tu tapes une URL dans la barre d'adresse et appuies sur Entrée, ton navigateur envoie une requête GET.
GET = "donne-moi cette ressource". Les paramètres sont visibles dans l'URL.
GET /challenge/1 HTTP/1.1 Host: hal.anotherlab.fr User-Agent: Mozilla/5.0 ... Accept: text/html
Dans l'onglet Network, chaque ligne correspond à une requête.
Colonne Method = GET ou POST. Colonne Status = code de réponse.
LA REQUÊTE POST
Quand tu soumets un formulaire ou envoies des données, c'est une requête POST.
Les données ne sont pas dans l'URL — elles sont dans le corps de la requête.
Invisibles dans la barre d'adresse. Visibles dans l'onglet Network.
POST /flag HTTP/1.1 Content-Type: application/json {"challenge": 1, "flag": "flag{...}"}
Dans Network, clique sur une requête POST → onglet Payload (ou Corps de la requête).
Tu vois exactement ce que le navigateur a envoyé au serveur.

Ouvre l'onglet Network avant de cliquer. Cherche la requête vers /score.

LES HEADERS
Chaque requête et chaque réponse transporte des headers — des métadonnées.
Ils ne s'affichent pas dans la page. Ils circulent en coulisse.
Le serveur lit les headers de ta requête. Tu dois lire les headers de sa réponse.
// requête → serveur
User-Agent: qui tu es (navigateur, curl, bot…)
Cookie: ce que le serveur t'a donné à mémoriser
Content-Type: format des données envoyées
// réponse ← serveur
Content-Type: format de la réponse
Set-Cookie: cookie à stocker
X-HAL-Message: quelque chose de particulier…
Dans Network → clique sur une requête → onglet Headers.
Tu vois les headers envoyés (Request Headers) et reçus (Response Headers).

Indice direct : le challenge 01 de ce CTF cache quelque chose dans les Response Headers.

LES CODES DE RÉPONSE
Chaque réponse du serveur commence par un code à 3 chiffres.
Il indique si ça s'est bien passé — ou pourquoi ça n'a pas marché.
200OK — tout s'est bien passé
301Redirect — la ressource a bougé
400Bad Request — ta requête est mal formée
403Forbidden — accès refusé (tu n'as pas le droit)
404Not Found — cette ressource n'existe pas
500Server Error — le serveur a planté

Un 403 n'est pas une impasse. Il signifie souvent "pas comme ça" — pas "jamais".


"Tu vois maintenant ce qui circule.
La prochaine étape : utiliser la console pour lire, modifier, envoyer."
— H.A.L. // système en ligne
// tu as trouvé un flag ?