InfoLeak Scanner

Ein Web-Applikations-Vulnerability-Scanner mit Fokus auf Informationslecks. Findet exponierte Admin-Panels, Directory Listings, Debug-Infos und Secrets in HTTP-Responses — mit Browser-Dashboard und Live-Ergebnissen.

Features

Acht Erkennungs-Module, alle parallel pro Scan ausführbar:

  • Path Prober — Testet ~100 bekannte sensitive Pfade (.env, /.git/config, /admin, /phpinfo.php, ...)
  • Header Analyzer — Erkennt Versions-Disclosure (Server, X-Powered-By) und fehlende Security-Header
  • Response Inspector — Sucht nach AWS-Keys, Private Keys, Stack Traces und API-Secrets in Responses
  • Directory Listing Detector — Erkennt aktives Directory Listing (Apache/Nginx)
  • CORS Analyzer — Findet unsichere CORS-Konfiguration (reflektierte Origin, Wildcard mit Credentials, null-Origin)
  • Cookie Analyzer — Prüft Set-Cookie auf fehlende HttpOnly/Secure/SameSite-Flags
  • TLS Analyzer — Prüft Zertifikat auf Ablauf, baldigen Ablauf, Self-Signed und Hostname-Mismatch
  • VCS Exposure — Erkennt exponierte .git/.svn-Verzeichnisse mit Inhaltsvalidierung (keine Catch-all-False-Positives)
  • Browser-Dashboard — Live-Polling, Severity-Filter, JSON-Export
  • JSON Export — Alle Findings als .json herunterladen

Voraussetzungen

  • Python 3.11+

Installation

git clone https://git.nb.myframework.de/jonas.hillenbrand/infoleak-scanner.git
cd infoleak-scanner
pip install -r requirements.txt

Starten

# Lokal (nur localhost)
uvicorn main:app --port 8000

# Im Netzwerk erreichbar
uvicorn main:app --host 0.0.0.0 --port 8000

Browser öffnen: http://localhost:8000

Verwendung

  1. URL des Ziels eingeben (z.B. https://example.com)
  2. Module auswählen (alle standardmäßig aktiv)
  3. Scan starten — Ergebnisse erscheinen live
  4. Findings nach Severity filtern
  5. JSON Export für Weiterverarbeitung

Severity-Stufen

Stufe Beispiele
🔴 Critical .env exponiert, Private Key, AWS-Key, CORS-Reflect mit Credentials, .git/.svn exponiert
🟠 High /admin erreichbar, Stack Trace, PHP-Fehler, CORS-Reflect, abgelaufenes/falsches TLS-Zertifikat
🟡 Medium Directory Listing, unbekannte exponierte Pfade, TLS bald ablaufend/Self-Signed
🔵 Low Versions-Disclosure (Server: Apache/2.4), Cookie ohne HttpOnly/Secure
Info Fehlende Security-Header, Cookie ohne SameSite, CORS-Wildcard

API

Method Endpoint Beschreibung
POST /scan Scan starten — Body: {"url": "...", "modules": [...]}
GET /scan/{id} Status + Findings abfragen
GET /scan/{id}/export Findings als JSON herunterladen
GET /scans Alle Scans der aktuellen Session

Projektstruktur

infoleak-scanner/
├── main.py                  # FastAPI App + API-Routen
├── scanner/
│   ├── engine.py            # Orchestrierung + In-Memory-Registry
│   ├── models.py            # Finding, ScanJob Datenmodelle
│   ├── path_prober.py       # Pfad-Scanner
│   ├── header_analyzer.py   # Header-Analyse
│   ├── response_inspector.py# Secret-Erkennung via Regex
│   ├── directory_listing.py # Directory-Listing-Erkennung
│   ├── cors_analyzer.py     # CORS-Fehlkonfiguration
│   ├── cookie_analyzer.py   # Cookie-Security-Flags
│   ├── tls_analyzer.py      # TLS-/Zertifikat-Prüfung
│   └── vcs_exposure.py      # .git/.svn-Exposure
├── wordlists/
│   └── paths.txt            # Wordlist mit ~100 sensitiven Pfaden
├── docs/                    # Design-Specs & Implementierungspläne
├── static/                  # Browser-Dashboard (HTML/CSS/JS)
└── tests/                   # 66 Tests

Tests

pytest

Hinweise

  • Scan-Ergebnisse werden nur im RAM gespeichert — nach Neustart weg
  • Nur für autorisierte Tests auf eigenen oder explizit freigegebenen Systemen verwenden
  • Timeout pro Request: 5 Sekunden, max. 10 parallele Requests
S
Description
No description provided
Readme 146 KiB
Languages
Python 79.5%
JavaScript 8.3%
CSS 7.4%
HTML 4.8%