Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
API-SPY-API-PROBE — Un puissant outil de brute-force de répertoires conçu pour les opérations récursives/multiplexées, la découverte et l'énumération d'API, le scraping de fichiers JS, et l'énumération des méthodes HTTP API, en une seule commande. Il n'est pas limité aux API, mon outil excelle simplement dans ce domaine. | Kitploit
Outils/GitHubGitHub/austinjump-sec/api-spy-api-probe
ReconnaissanceScripting et AutomatisationExploitation d'Applications WebTests de Sécurité des APICollecte d'InformationsTests d'IntrusionCrawler
GitHub

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
austinjump-sec/api-spy-api-probe

API-SPY-API-PROBE

Voir le dépôt
5121il y a 3 moisPas encore vérifié

À propos

Un puissant outil de brute-force de répertoires conçu pour les opérations récursives/multiplexées, la découverte et l'énumération d'API, le scraping de fichiers JS, et l'énumération des méthodes HTTP API, en une seule commande. Il n'est pas limité aux API, mon outil excelle simplement dans ce domaine.

Partager

API-SPY 🕵️👻

Un outil puissant de brute-force de répertoires conçu pour la reconnaissance d'API et les tests d'intrusion. Découvre automatiquement les points d'extrémité d'API cachés, effectue un sous-scan récursif et sonde les méthodes HTTP pour une énumération plus approfondie des API.

capture d'écran travail

Fonctionnalités

✨ Fonctionnalités principales :

  • 🎯 Découverte rapide de points d'extrémité via brute-force sur wordlist
  • 🔄 Sous-scan récursif automatique des points d'extrémité découverts
  • 🔍 Sondage des méthodes HTTP (GET, POST, PUT, DELETE, PATCH, OPTIONS)
  • ⚡ Scan multi-threadé pour des performances améliorées
  • 📊 Gestion intelligente des codes d'état (200, 401, 403)
  • 🔗 Invites interactives pour sous-scan et sondage sélectifs
  • 🕷️ Récupération JavaScript pour les points d'extrémité /api/ courants
  • 🪟 Prise en charge du multiplexage de terminal (tmux) pour les opérations parallèles
  • ⏱️ Invites à saut automatique avec délai configurable

Installation

Prérequis

  • Python 3.6+
  • Bibliothèque requests
  • tmux (optionnel, pour le drapeau --split)
  • xfce-terminal (pour les environnements de bureau Linux)

Configuration

# Clonez le dépôt
git clone https://github.com/austinjump-sec/API-SPY.git
cd API-SPY

# Installez les dépendances
pip install requests

# Rendez les scripts exécutables (optionnel)
chmod +x apispy.py apiprobe.py

Utilisation

Syntaxe de base

python3 apispy.py <baseUrl> <wordlist> [OPTIONS]

Arguments obligatoires

ArgumentDescription
<baseUrl>URL cible (ex : http://example.com ou http://api.example.com)
<wordlist>Chemin vers le fichier wordlist contenant les points d'extrémité (un par ligne)

Arguments optionnels

ArgumentDescription
--t<number>Nombre de threads (max 150, défaut : 1)
--splitUtiliser tmux split-window au lieu de nouvelles fenêtres de terminal
--debugAffiche les messages d'erreur autrement cachés
--loudAffiche tous les messages, positifs et erreurs, en mettant en évidence ceux qui ne renvoient pas 404
--jsRecherche les fichiers JavaScript et récupère les points d'extrémité d'API codés en dur courants

Exemples

Scan de base avec paramètres par défaut (mono-thread)

python3 apispy.py http://api.example.com wordlist.txt

Scan multi-thread avec 10 threads

python3 apispy.py http://api.example.com wordlist.txt -t10

Utiliser tmux pour les opérations parallèles

python3 apispy.py http://api.example.com wordlist.txt -t5 --split

Sous-scan d'une URL spécifique avec un nombre de threads plus élevé

python3 apispy.py http://api.example.com/v1 wordlist.txt -t20

Fonctionnement

Phase 1 : Test des points d'extrémité d'API courants

L'outil commence par tester un ensemble prédéfini de chemins d'API courants :

  • api, v1, v2, api/v1, api/v2, graphql, rest

Phase 2 : Brute-force sur wordlist

  • Charge les points d'extrémité de votre wordlist (ignore les commentaires commençant par #)
  • Teste chaque point d'extrémité avec des requêtes HTTP GET
  • Exécution multi-thread pour un scan plus rapide
  • Identifie les points d'extrémité répondant avec les codes d'état : 200, 401, 403

Phase 3 : Sous-scan interactif (optionnel)

Lorsqu'un point d'extrémité est trouvé, vous êtes invité :

'-> Subscan <url>? (y/n) [Auto-skip in 5s]:
  • Choisissez y/yes pour scanner récursivement ce point d'extrémité avec la même wordlist
  • Lance automatiquement dans un nouveau terminal ou tmux split-window
  • Saut automatique après 5 secondes si aucune entrée n'est fournie

Phase 4 : Sondage des méthodes HTTP (optionnel)

Après le sous-scan, vous êtes invité :

'-> Probe methods on <url>? (y/n) [Auto-skip in 5s]:
  • Lance apiprobe.py qui teste les méthodes HTTP sur le point d'extrémité découvert
  • Tests : GET, POST, PUT, DELETE, PATCH, OPTIONS
  • Sortie codée par couleur (vert pour 200, jaune pour les erreurs liées à l'authentification)
  • Affiche les tailles de réponse et les indices de l'en-tête Allow

Interprétation des résultats

Script principal API-SPY

[+] Url found: http://api.example.com/v1            ← 200 OK (accessible)
    '-> Subscan http://api.example.com/v1? (y/n) [Auto-skip in 0s]: 
[-] Timeout: Skipped prompt for http://api.example.com/v1?
    '-> Probe methods on http://api.example.com/v1? (y/n) [Auto-skip in 4s]: 
[-] Url found but not permitted (403 ERR): ...      ← Forbidden but exists
[-] Url found but not permitted (401 ERR): ...      ← Requires authentication

Script API-Probe

[+] GET     -> STATUS: 200 OK (Size: 1024)
[-] POST    -> STATUS: 405 (Size: 0)
[Header Hint] Allow: GET, HEAD, OPTIONS

Format du wordlist

Créez un fichier texte simple avec les points d'extrémité (un par ligne) :

admin
users
api/users
v1/products
v2/customers
/api/v1/auth
/graphql
search
data
config

Remarque : Les lignes commençant par # sont considérées comme des commentaires et ignorées.

Wordlists recommandées

Wordlists d'API populaires à utiliser avec API-SPY :

  • SecLists - API endpoints
  • Assetnote API wordlist
  • FuzzDB API routes

Conseils de performances

Directives pour le nombre de threads

  • 1-5 threads : Conservateur, moins de risque de détection, plus lent
  • 5-20 threads : Performance et discrétion équilibrées
  • 20-50 threads : Scan agressif, résultats plus rapides
  • 50-150 threads : Vitesse maximale (peut déclencher WAF/IDS)
# Mode furtif (peu de threads)
python3 apispy.py http://target.com wordlist.txt -t3

# Mode équilibré
python3 apispy.py http://target.com wordlist.txt -t15

# Mode agressif
python3 apispy.py http://target.com wordlist.txt -t50

Comportement du délai d'attente

  • Les invites interactives se sautent automatiquement après 5 secondes
  • Utile pour le scan non supervisé de grandes listes de cibles
  • Modifiez timeout=5 dans le code source pour personnaliser

Dépannage

"Wordlist introuvable"

Assurez-vous que le chemin du wordlist est correct et que le fichier existe :

ls -la /path/to/wordlist.txt

Erreur de nom de script incorrect

Lors du sous-scan, assurez-vous :

  • Le script principal s'appelle : apispy.py
  • Le script de sondage s'appelle : apiprobe.py
  • Les deux sont dans le même répertoire

tmux split-window ne fonctionne pas

Si --split échoue :

  • Installez tmux : sudo apt install tmux
  • Assurez-vous d'être dans une session tmux : tmux new-session -s scan
  • Replie automatiquement sur xfce-terminal

"Échec de la connexion" pour tous les points d'extrémité

  • Vérifiez que l'URL de base est correcte et accessible
  • Vérifiez les paramètres du pare-feu/proxy
  • Assurez-vous que le service cible est en cours d'exécution
  • Testez manuellement : curl http://your-url/

Aucun résultat trouvé

  • Vérifiez que le wordlist contient des points d'extrémité pertinents
  • Vérifiez si la cible renvoie des codes d'état autres que 200/401/403
  • Essayez avec moins de threads pour éviter les délais d'attente
  • Augmentez le délai d'attente des requêtes dans la fonction check_status()

Considérations de sécurité

Télécharger l’outil