API Fuzzing — Découverte et test automatisé d'API
★★★★★
Objectif
Sonder une API (REST/GraphQL) pour découvrir endpoints, paramètres cachés, méthodes HTTP non documentées et comportements d'erreur révélateurs, en s'appuyant si possible sur sa spec OpenAPI/Swagger.
Découverte d'endpoints et paramètres
# Fuzz d endpoints
ffuf -w api-wordlist.txt -u https://t/api/v1/FUZZ
# Fuzz de paramètres cachés
ffuf -w params.txt -u 'https://t/api/user?FUZZ=test' -fs 0
# Méthodes HTTP alternatives (PUT/DELETE/PATCH activées ?)
for m in GET POST PUT DELETE PATCH OPTIONS; do
curl -s -X $m https://t/api/v1/users -o /dev/null -w "$m %{http_code}\n"
done À partir d'une spec OpenAPI
# Importer le swagger dans des outils dédiés
# - Postman / Burp (import OpenAPI)
# - schemathesis : génère des cas à partir du schéma
schemathesis run https://t/openapi.json --checks all Quoi chercher
Endpoints d'admin/debug exposés, fuites d'erreurs (stack traces), incohérences d'autorisation (BOLA/BFLA), versions d'API obsolètes (/api/v1 laissé en ligne), et différences de réponses indiquant une logique exploitable.