docs: add README

This commit is contained in:
InfoLeak
2026-06-21 19:10:57 +02:00
parent 21eb89ab8f
commit a51be482e8
+93
View File
@@ -0,0 +1,93 @@
# 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
- **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)
- **Browser-Dashboard** — Live-Polling, Severity-Filter, JSON-Export
- **JSON Export** — Alle Findings als `.json` herunterladen
## Voraussetzungen
- Python 3.11+
## Installation
```bash
git clone https://git.nb.myframework.de/jonas.hillenbrand/infoleak-scanner.git
cd infoleak-scanner
pip install -r requirements.txt
```
## Starten
```bash
# 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 |
| 🟠 High | `/admin` erreichbar, Stack Trace, PHP-Fehler |
| 🟡 Medium | Directory Listing, unbekannte exponierte Pfade |
| 🔵 Low | Versions-Disclosure (`Server: Apache/2.4`) |
| ⚫ Info | Fehlende Security-Header |
## 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
├── wordlists/
│ └── paths.txt # Wordlist mit ~100 sensitiven Pfaden
├── static/ # Browser-Dashboard (HTML/CSS/JS)
└── tests/ # 34 Tests
```
## Tests
```bash
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