Aller au contenu

Test d'API

Les API (interfaces de programmation) constituent une surface d'attaque à part entière. Les tester suppose d'abord de cartographier leurs capacités réelles — méthodes, paramètres, comportements selon le format — avant d'y appliquer les techniques d'exploitation classiques. Cette section regroupe les réflexes propres à l'exploration d'une API.

Manipulation du type de contenu

Changer l'en-tête Content-Type d'une requête (passer de JSON à XML, ou l'inverse) provoque parfois des comportements inattendus sur un endpoint. Cela permet de déclencher des erreurs révélant des informations internes, de contourner une sécurité fondée sur un format précis, ou d'identifier des endpoints qui ne valident pas correctement le contenu. C'est particulièrement utile quand l'API applique une logique différente selon le format d'entrée.

Découvrir les méthodes autorisées

Quand un changement de méthode HTTP échoue (par exemple de GET à PUT), la réponse révèle parfois les méthodes acceptées via un en-tête Allow :

Allow: GET, POST, PUT

Cette information aide à cartographier les capacités réelles de l'API et à repérer des méthodes potentiellement dangereuses ou mal protégées.

Découvrir les paramètres cachés

Plusieurs outils mettent au jour des paramètres non documentés. Burp Intruder teste une liste de noms courants en les ajoutant ou en remplaçant les paramètres existants ; il est conseillé d'inclure des noms pertinents tirés de la reconnaissance initiale. Param Miner peut deviner jusqu'à 65 536 noms de paramètres par requête et en génère automatiquement à partir du périmètre. Le Content Discovery de Burp permet de découvrir du contenu et des paramètres accessibles mais non référencés dans l'interface. Ces techniques révèlent fonctionnalités cachées, indicateurs internes et endpoints sensibles.

Pollution de paramètres côté serveur

La pollution de paramètres côté serveur (server parameter pollution) consiste à injecter plusieurs fois un même paramètre, ou à manipuler la façon dont le serveur fusionne les paramètres. Le Backslash Powered Scanner détecte automatiquement ce type d'injection côté serveur, en classant les entrées en boring, interesting et vulnerable — les entrées interesting méritant une investigation manuelle plus poussée.

Aide-mémoire

Objectif Approche
Comportement selon le format Manipuler Content-Type (JSON ↔ XML)
Méthodes acceptées Lire l'en-tête Allow après une méthode refusée
Paramètres cachés Burp Intruder, Param Miner, Content Discovery
Fusion de paramètres Pollution côté serveur (Backslash Powered Scanner)

Une fois la surface cartographiée, les endpoints découverts se testent comme n'importe quelle entrée — injection, contrôle d'accès, logique métier — la spécificité du test d'API résidant surtout dans cette phase d'exploration méthodique.