
Ein leistungsstarkes Directory-Brute-Force-Tool, das für rekursive/Multiplex-Operationen, API-Erkennung und -Enumeration, JS-Datei-Scraping und die Auflistung von API-HTTP-Methoden in einem einzigen Befehl ausgelegt ist. Dies ist nicht NUR für APIs, mein Tool zeichnet sich einfach darin aus.
Ein leistungsstarkes Directory-Brute-Force-Tool, entwickelt für API-Erkundung und Penetrationstests. Es entdeckt automatisch versteckte API-Endpunkte, führt rekursives Subscanning durch und testet HTTP-Methoden für eine tiefere API-Erfassung.
✨ Hauptfunktionen:
requests-Bibliothektmux (optional, für --split-Flag)xfce-terminal (für Linux-Desktop-Umgebungen)# Repository klonen
git clone https://github.com/austinjump-sec/API-SPY.git
cd API-SPY
# Abhängigkeiten installieren
pip install requests
# Skripte ausführbar machen (optional)
chmod +x apispy.py apiprobe.py
python3 apispy.py <baseUrl> <wordlist> [OPTIONEN]
| Argument | Beschreibung |
|---|---|
<baseUrl> | Ziel-URL (z.B. http://example.com oder http://api.example.com) |
<wordlist> | Pfad zur Wordlist-Datei mit Endpunkten (einer pro Zeile) |
python3 apispy.py http://api.example.com wordlist.txt
python3 apispy.py http://api.example.com wordlist.txt -t10
python3 apispy.py http://api.example.com wordlist.txt -t5 --split
python3 apispy.py http://api.example.com/v1 wordlist.txt -t20
Das Tool beginnt mit dem Testen eines vordefinierten Satzes gängiger API-Pfade:
api, v1, v2, api/v1, api/v2, graphql, rest# beginnen)200, 401, 403Wenn ein Endpunkt gefunden wird, werden Sie gefragt:
'-> Subscan <url>? (j/n) [Auto-Überspringen in 5s]:
j/yes, um diesen Endpunkt rekursiv mit derselben Wordlist zu scannenNach dem Subscanning werden Sie gefragt:
'-> Methoden testen auf <url>? (j/n) [Auto-Überspringen in 5s]:
apiprobe.py, das HTTP-Methoden auf dem entdeckten Endpunkt testetAllow-Header[+] Url gefunden: http://api.example.com/v1 ← 200 OK (zugänglich)
'-> Subscan http://api.example.com/v1? (j/n) [Auto-Überspringen in 0s]:
[-] Timeout: Aufforderung für http://api.example.com/v1? übersprungen
'-> Methoden testen auf http://api.example.com/v1? (j/n) [Auto-Überspringen in 4s]:
[-] Url gefunden, aber nicht erlaubt (403 ERR): ... ← Verboten, existiert aber
[-] Url gefunden, aber nicht erlaubt (401 ERR): ... ← Erfordert Authentifizierung
[+] GET -> STATUS: 200 OK (Größe: 1024)
[-] POST -> STATUS: 405 (Größe: 0)
[Header-Hinweis] Allow: GET, HEAD, OPTIONS
Erstellen Sie eine einfache Textdatei mit Endpunkten (einer pro Zeile):
admin
users
api/users
v1/products
v2/customers
/api/v1/auth
/graphql
search
data
config
Hinweis: Zeilen, die mit # beginnen, werden als Kommentare behandelt und ignoriert.
Beliebte API-Wordlists zur Verwendung mit API-SPY:
# Stealth-Modus (niedrige Threads)
python3 apispy.py http://target.com wordlist.txt -t3
# Ausgewogener Modus
python3 apispy.py http://target.com wordlist.txt -t15
# Aggressiver Modus
python3 apispy.py http://target.com wordlist.txt -t50
timeout=5 im Quellcode zur AnpassungStellen Sie sicher, dass der Wordlist-Pfad korrekt und die Datei vorhanden ist:
ls -la /pfad/zur/wordlist.txt
Stellen Sie beim Subscanning sicher:
apispy.pyapiprobe.pyFalls --split fehlschlägt:
sudo apt install tmuxtmux new-session -s scancurl http://ihre-url/check_status()-Funktion⚠️ Rechtlich & Ethisch:
Bearbeiten Sie den Quellcode, um Timeout-Werte anzupassen:
def ask_subscan(url, wordlist, timeout=10): # Von 5 auf 10 Sekunden ändern
Erstellen Sie Wordlists, die auf bestimmte API-Pfade abzielen:
# Nur Admin-Endpunkte
grep -i "admin" vollstaendige-wordlist.txt > admin-wordlist.txt
# Nur v1-API
grep "v1" vollstaendige-wordlist.txt > v1-wordlist.txt
Mehrere Ziele mit einer Schleife scannen:
for target in http://target1.com http://target2.com http://target3.com; do
python3 apispy.py "$target" wordlist.txt -t10
done
Beiträge sind willkommen! Sie können:
Dieses Tool wird nur zu Bildungszwecken und für autorisierte Sicherheitstests bereitgestellt. Die Benutzer sind dafür verantwortlich, sicherzustellen, dass sie vor dem Scannen von Systemen die entsprechende Genehmigung haben. Unbefugter Zugriff auf Computersysteme ist illegal.
Dieses Projekt wird wie besehen für Sicherheitsforschung und autorisierte Testzwecke bereitgestellt.
Erstellt von: austinjump-sec
Repository: austinjump-sec/API-SPY
| Argument | Beschreibung |
|---|
--t<number> | Thread-Anzahl (max. 150, Standard: 1) |
--split | tmux split-window anstelle neuer Terminalfenster verwenden |
--debug | Zeigt sonst verborgene Fehlermeldungen an |
--loud | Zeigt alle Meldungen, positive und Fehler, und hebt solche hervor, die nicht 404 zurückgeben |
--js | Durchsucht JavaScript-Dateien und extrahiert aus gefundenen Dateien gängige hartcodierte API-Endpunkte |