docs: add README
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user