Guide Red TeamTests d’intrusion autorisés · Red Team · Purple Team
Domaines
Web — vulnérabilités complémentaires · guide pratique V13

Modification de variables externes

Vérifier si des paramètres, en-têtes ou variables de configuration peuvent modifier une décision de sécurité. Le point est ici appliqué au cas « Modification de variables externes ».

En bref

  • But : Vérifier si des paramètres, en-têtes ou variables de configuration peuvent modifier une décision de sécurité.
  • Livrable : une requête reproductible, une preuve HTTP et une correction vérifiable
  • Cadre : laboratoire isolé ou mandat écrit, avec une charge et des seuils d’arrêt définis.
Illustration : Modification de variables externes
Vue synthétique de « Modification de variables externes » : les blocs représentent les étapes et preuves propres à ce contrôle.

Comprendre le risque

La surface à examiner comprend en-têtes de proxy, variables d’environnement, feature flags et paramètres cachés. Le test doit préciser le contexte d’entrée, la couche qui interprète la donnée et la conséquence observée. Une anomalie de syntaxe n’est pas automatiquement une vulnérabilité : il faut démontrer une différence de sécurité ou de confidentialité.

Préparer le laboratoire

  • Utiliser une application locale ou une copie dédiée avec des comptes synthétiques.
  • Activer les journaux du proxy, de l’application et de la base lorsque cela est pertinent.
  • Fixer un nombre maximal de requêtes et un seuil d’arrêt avant le test.
  • Créer un répertoire de preuves et noter la version des composants.

Procédure de validation

  1. Identifier précisément le point d’entrée concerné par « Modification de variables externes ».
  2. changer un marqueur non sensible dans un environnement de test et comparer la décision côté serveur
  3. Comparer une requête de référence et une requête modifiée avec un seul changement à la fois.
  4. Confirmer le résultat depuis une seconde source : journal, réponse backend, état de l’objet ou test avec un autre compte.
  5. Revenir à l’état initial et répéter après correction.

Commandes et aide

La commande suivante ne cherche pas à exploiter la vulnérabilité. Elle prépare une capture reproductible et un identifiant de corrélation pour les journaux. Le point est ici appliqué au cas « Modification de variables externes ».

mkdir -p preuves
# Cible locale ou explicitement autorisée
export TARGET="http://127.0.0.1:8080"

# Conserver les en-têtes et la réponse d’un contrôle bénin
curl -sS -D "preuves/modification_de_variables_externes-headers.txt" \
  -o "preuves/modification_de_variables_externes-body.txt" \
  "$TARGET/"

# Ajouter un marqueur de corrélation sans effet métier
curl -sS -H "X-Lab-Test: V13-modification_de_va" "$TARGET/" -o /dev/null

Pour les requêtes complexes, enregistrer la requête brute depuis Burp ou ZAP et l’archiver avec l’heure UTC. Éviter les charges tirées d’une cheatsheet tant que le contexte de parsing n’est pas compris. Le point est ici appliqué au cas « Modification de variables externes ».

Lire les résultats

  • Un résultat positif doit montrer une différence de sécurité reproductible, pas seulement une erreur 500.
  • Un résultat négatif reste limité aux chemins, rôles, encodages et versions réellement testés.
  • Les réponses de proxy, CDN ou WAF doivent être distinguées de celles de l’application.
  • Documenter les faux positifs liés aux pages personnalisées, redirections et caches.

Correction et retest

définir les sources de confiance, signer les paramètres sensibles et ignorer les en-têtes non réécrits par le proxy

Le retest reprend exactement la requête de preuve, vérifie que le comportement dangereux a disparu et contrôle qu’aucune régression métier n’a été introduite. Le point est ici appliqué au cas « Modification de variables externes ».

Comprendre le sujet avant d’agir

Le chapitre « Modification de variables externes » appartient au domaine « Web vulnerabilites complementaires ». Il doit permettre de comprendre le mécanisme avant d’utiliser un outil, puis de produire une preuve lisible par une autre personne. L’objectif n’est pas d’accumuler des commandes : chaque action doit répondre à une hypothèse, rester dans le périmètre et déboucher sur une conclusion vérifiable.

Dans ce contexte, l’attention porte surtout sur la requête de référence, le point d’entrée modifié, le contexte d’encodage et les différences entre réponse normale et réponse testée. Une approche professionnelle commence par noter l’état initial, la version des composants et l’identité utilisée. Elle se termine par la conservation des sorties utiles, l’explication des limites et la vérification que le laboratoire a été remis dans son état prévu.

  • Point de contrôle — méthode HTTP et chemin.
  • Point de contrôle — paramètre ou en-tête modifié.
  • Point de contrôle — code de statut et taille de réponse.
  • Point de contrôle — variation du corps ou du temps de réponse.
  • Point de contrôle — preuve de reproductibilité avec une seule variable modifiée.

Procédure de validation contrôlée

La méthode suivante transforme « Modification de variables externes » en exercice reproductible. Elle évite de confondre la quantité de sorties avec la qualité de la preuve et permet d’arrêter le test dès que l’objectif est démontré.

  1. Définir en une phrase ce que l’exercice « Modification de variables externes » doit confirmer ou infirmer.
  2. Relever l’état initial du laboratoire et les versions utiles au domaine « Web vulnerabilites complementaires ».
  3. Enregistrer une requête de référence puis ne modifier qu’un paramètre, en-tête ou fragment de corps.
  4. Exécuter une seule variation à la fois et conserver la sortie brute avec un horodatage UTC.
  5. Comparer code, taille, contenu, redirections et temps de réponse avec la requête de référence.
  6. Documenter l’impact, les limites, la correction proposée et le critère de retest.

Exemple guidé dans le laboratoire

Dans le laboratoire, placez une application de test sous `https://app.lab.local/` et créez un compte sans privilège. Pour « Modification de variables externes », capturez une requête normale, dupliquez-la dans l’outil adapté et modifiez une seule valeur. Conservez la requête et la réponse complètes, puis revenez à la valeur d’origine afin de vérifier que l’écart disparaît.

Le cas est réussi lorsque vous pouvez expliquer la différence observée sans vous appuyer uniquement sur le verdict automatique. Une validation propre mentionne le rôle du compte, l’état de la session, le paramètre testé, les protections présentes et la manière dont le développeur pourra reproduire le constat.

  • Préparation — confirmer les actifs et comptes autorisés pour « Modification de variables externes ».
  • Exécution — limiter l’action à une seule hypothèse et une seule variation.
  • Validation — reproduire le résultat et conserver la sortie brute.
  • Clôture — nettoyer les artefacts, documenter les limites et définir le retest.

Lecture des commandes et options

Les commandes déjà présentes dans « Modification de variables externes » doivent être lues comme des exemples de laboratoire. Les lignes suivantes expliquent leur rôle afin d’éviter une exécution aveugle.

  • `mkdir -p preuves` — cette ligne participe à l’exercice « Modification de variables externes » ; vérifiez ses arguments et exécutez-la uniquement sur les données ou cibles du laboratoire.
  • `export TARGET="http://127.0.0.1:8080"` — cette ligne participe à l’exercice « Modification de variables externes » ; vérifiez ses arguments et exécutez-la uniquement sur les données ou cibles du laboratoire.
  • `curl -sS -D "preuves/modification_de_variables_externes-headers.txt" \` — envoie une requête HTTP ; conservez les en-têtes, le corps et le code de statut afin de comparer les réponses.
  • `-o "preuves/modification_de_variables_externes-body.txt" \` — cette ligne participe à l’exercice « Modification de variables externes » ; vérifiez ses arguments et exécutez-la uniquement sur les données ou cibles du laboratoire.
  • `"$TARGET/"` — cette ligne participe à l’exercice « Modification de variables externes » ; vérifiez ses arguments et exécutez-la uniquement sur les données ou cibles du laboratoire.

Interpréter la réponse de l’application

Pour « Modification de variables externes », un résultat utile relie au minimum le contexte, l’action et l’observation. Une sortie d’outil isolée reste une indication : elle devient une preuve lorsque le périmètre, la version, les paramètres et la reproduction sont documentés.

La conclusion doit préciser ce qui est confirmé, ce qui reste probable et ce qui n’a pas été testé. Dans le profil « web », les éléments à rapprocher sont notamment : méthode HTTP et chemin, paramètre ou en-tête modifié, code de statut et taille de réponse. Les autres éléments servent à expliquer la portée et à préparer le retest.

  • Élément à documenter — méthode HTTP et chemin.
  • Élément à documenter — paramètre ou en-tête modifié.
  • Élément à documenter — code de statut et taille de réponse.
  • Élément à documenter — variation du corps ou du temps de réponse.
  • Élément à documenter — preuve de reproductibilité avec une seule variable modifiée.

Erreurs fréquentes et amélioration de la qualité

Les erreurs ci-dessous sont particulièrement importantes pour « Modification de variables externes ». Elles produisent des faux positifs, des conclusions impossibles à reproduire ou un risque inutile pour le laboratoire.

  • À éviter — tester plusieurs paramètres en même temps.
  • À éviter — confondre erreur applicative et vulnérabilité.
  • À éviter — laisser le scanner sortir du périmètre.
  • À éviter — ne pas tenir compte de l’authentification ou du rôle.
  • À éviter — documenter un payload sans expliquer pourquoi il démontre le problème.

Checklist avant de clôturer le chapitre

Cette checklist résume les contrôles attendus pour considérer « Modification de variables externes » comme terminé de manière professionnelle.

  • L’objectif et le périmètre de « Modification de variables externes » sont écrits.
  • La version des outils et composants est enregistrée.
  • La commande, le filtre ou la procédure exacte est conservé.
  • La sortie brute est horodatée et accompagnée de son contexte.
  • Le résultat a été confirmé par une seconde observation.
  • Les limites et les éléments non testés sont explicites.
  • Les artefacts créés ont été supprimés ou remis dans l’état convenu.
  • La recommandation et le critère de retest sont exploitables.

Références

À retenir

Pour maîtriser « Modification de variables externes », retenez trois idées : comprendre la requête de référence, le point d’entrée modifié, le contexte d’encodage et les différences entre réponse normale et réponse testée, exécuter une méthode limitée et reproductible, puis transformer la sortie en preuve contextualisée. Le chapitre est terminé lorsque le résultat peut être confirmé, que ses limites sont explicites et que la correction peut être retestée sans réinterpréter toute la mission.

  • Savoir expliquer le mécanisme propre à « Modification de variables externes » sans réciter une commande.
  • Conserver au minimum méthode HTTP et chemin, paramètre ou en-tête modifié et code de statut et taille de réponse.
  • Éviter en priorité de tester plusieurs paramètres en même temps et de confondre erreur applicative et vulnérabilité.
  • Proposer une action corrective mesurable et un retest réalisable.