cybercursus

Cartographier une application web : points d'entrée, technologies

11 min · Intermédiaire · 7 août 2026

Sommaire
  1. Deux questions à répondre : où, et avec quoi
  2. Trouver les points d’entrée
  3. Ce que les en-têtes HTTP révèlent sans le vouloir

Deux questions à répondre : où, et avec quoi

Cartographier une application web répond à deux questions distinctes : quels sont ses points d’entrée (où une donnée peut-elle atteindre le serveur), et avec quelles technologies est-elle construite (ce qui oriente les failles à rechercher en priorité).

Trouver les points d’entrée

  • robots.txt et sitemap.xml : révèlent souvent des chemins que le site préfère ne pas voir indexés, ou au contraire liste exhaustivement les pages publiques.
  • Formulaires et champs de saisie : chaque champ est un point d’entrée potentiel, au sens du premier chapitre du cours sur les injections SQL.
  • Paramètres d’URL et appels d’API : visibles en observant le trafic normal de l’application, souvent bien plus nombreux que les seuls formulaires visibles.

Ce que les en-têtes HTTP révèlent sans le vouloir

Le chapitre sur les en-têtes du cours HTTP a introduit leur rôle général. En reconnaissance, ils deviennent une source d’indices sur la pile technique de la cible :

python
en_tetes_reponse = {
  "Server": "nginx/1.18.0",
  "X-Powered-By": "PHP/7.4.3",
  "Set-Cookie": "PHPSESSID=abc123; path=/",
  "X-Generator": "WordPress 5.8"
}

indices = []
if "Server" in en_tetes_reponse:
  indices.append(f"Serveur web : {en_tetes_reponse['Server']}")
if "X-Powered-By" in en_tetes_reponse:
  indices.append(f"Langage / framework : {en_tetes_reponse['X-Powered-By']}")
if "PHPSESSID" in en_tetes_reponse.get("Set-Cookie", ""):
  indices.append("Session PHP native detectee (nom de cookie par defaut)")
if "X-Generator" in en_tetes_reponse:
  indices.append(f"CMS : {en_tetes_reponse['X-Generator']}")

print("Indices de technologie trouves dans ces en-tetes :")
for indice in indices:
  print(" -", indice)

Un simple nom de cookie par défaut (PHPSESSID, JSESSIONID, ASP.NET_SessionId) suffit souvent à identifier un langage serveur, sans qu’aucun en-tête explicite ne soit nécessaire.

Astuce

Beaucoup d’équipes de sécurité masquent volontairement ces en-têtes (numéro de version en particulier) en durcissement. C’est une mesure complémentaire utile, jamais suffisante seule : elle ralentit la reconnaissance sans corriger la moindre faille sous-jacente, et d’autres indices (comportement, structure des erreurs) permettent souvent de contourner ce masquage.

Pourquoi robots.txt et sitemap.xml sont-ils des points de départ utiles pour cartographier une application ?
Pourquoi masquer les en-têtes qui révèlent une technologie (comme X-Powered-By) reste une mesure complémentaire, pas une protection suffisante ?

Pour aller plus loin

Commentaires

Recherche