Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
VulnScan — Web-Schwachstellenscanner in Python: SQL-Injection, XSS , Path Traversal, Security-Header. Crawler, Flask-Dashboard, Bericht als PDF. | Kitploit
Tools/GitHubGitHub/torchiachristian/vulnscan
Statische AnalyseSchwachstellenscannerWeb-SchwachstellenscannerCode-AnalyseWebsicherheitPenetrationstestsLernen & BildungCrawler
GitHubtorchiachristian/vulnscan

VulnScan

Web-Schwachstellenscanner in Python: SQL-Injection, XSS , Path Traversal, Security-Header. Crawler, Flask-Dashboard, Bericht als PDF.

Repository anzeigen
228vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

VulnScan

Web-Schwachstellenscanner. Er crawlt eine Website, findet Formulare und Parameter und testet sie gegen SQL-Injection, reflektiertes XSS, Path Traversal und fehlende Sicherheitsheader. Er erzeugt einen Bericht im Terminal, ein PDF und hat ein Flask-Dashboard.

Lernprojekt. Ich habe es geschrieben, um zu verstehen, wie diese Angriffe in der Praxis funktionieren, nachdem ich die Theorie studiert hatte. Der Code ist mit KI-Unterstützung generiert und das erkläre ich: Was ich gemacht habe, ist das Testen und die Korrektur der Falsch-Positive, die in docs/DESIGN_NOTES.md dokumentiert sind.

Nur bei eigenen Anwendungen oder mit schriftlicher Genehmigung. Das Scannen von Websites Dritter ohne Erlaubnis ist in den meisten Rechtsordnungen illegal.

Was es erkennt

  • SQL-Injection, error-based und boolean-based blind
  • Reflektiertes XSS
  • Path Traversal
  • Fehlende Sicherheitsheader (CSP, HSTS, X-Frame-Options, X-Content-Type-Options)
  • Crawler, der Seiten und Formulare entdeckt
  • PDF-Bericht und Web-Dashboard

Was er NICHT macht, obwohl die Payloads in den Dateien sind: time-based SQL-Injection und Stored XSS. Time-based erfordert das Messen der Latenz gegen eine Baseline und erzeugt auf verrauschten Netzwerken zu leicht Falsch-Positive; Stored erfordert das Senden auf eine Seite und das Verifizieren auf einer anderen, was der aktuelle Crawler nicht macht. Solange es den Code nicht gibt, zähle ich sie nicht zu den Features.

Installation

git clone https://github.com/torchiachristian/VulnScan
cd VulnScan
pip install -r requirements.txt
python3 src/database.py

Verwendung

# scansione base
python3 src/scanner.py http://localhost:8080

# con report PDF
python3 src/scanner.py http://localhost:8080 --pdf report.pdf

# dashboard web su http://127.0.0.1:5000
python3 src/web/app.py

Wo man es ausprobieren kann

# DVWA in docker
docker run -p 80:80 vulnerables/web-dvwa
# credenziali admin/password, livello di sicurezza "Low"

Oder OWASP Juice Shop. Im Repo gibt es außerdem zwei minimale Flask-Apps in tests/: eine absichtlich verwundbare und eine sichere, die verwendet werden, um zu überprüfen, dass das Tool die echten Schwachstellen findet, ohne falsche zu erfinden.

Der falsch positive Treffer, den ich beim Testen gefunden habe

Die erste Version des boolean-basierten Detektors funktionierte so:

if len(response_true.text) != len(response_false.text):
    # -> SQL Injection, Critical

Ein einziges Byte Unterschied zwischen der Antwort auf die wahre Bedingung und der auf die falsche Bedingung genügte, um eine kritische SQL-Injection zu melden.

Das Problem ist, dass zwei identische Anfragen an dieselbe Seite fast nie dieselbe Antwort liefern: CSRF-Token, Zeitstempel, Besucherzähler, Banner. Ich habe eine Flask-App ohne jede Datenbank und mit stets escaptem Input geschrieben, mit einem zufälligen Token darin, wie es jede Website hat, und das Tool hat darin Folgendes gefunden:

[6] SQL Injection (Critical)
    Evidence: Response length difference: 268 vs 300

Una SQL injection su un'applicazione che non ha un database. Due richieste identiche alla stessa pagina davano 262 e 241 byte, quindi il controllo scattava anche senza payload.

Adesso il detector misura prima quanto varia la pagina da sola a parita' di input, poi considera una differenza solo se supera quel rumore di un margine e se il risultato e' coerente su piu' tentativi, sempre nello stesso verso. Se la pagina e' troppo instabile per misurare restituisce niente invece di indovinare.

Sulla stessa app sicura ora non segnala piu' nulla, e su un'app con una SQL injection vera continua a trovarla.

Struktur

src/
├── crawler/web_crawler.py       scoperta di pagine e form
├── detectors/
│   ├── http_utils.py            costruzione richieste e misura del rumore
│   ├── sql_injection.py         error-based e boolean-based
│   ├── xss.py                   XSS riflesso
│   ├── path_traversal.py        directory traversal
│   └── security_headers.py      header mancanti
├── reporting/pdf_generator.py   report PDF
├── web/app.py                   dashboard Flask
├── scanner.py                   pipeline principale
└── database.py                  SQLite
payloads/                        payload per tipo di attacco
tests/                           app di prova (vulnerabile e sicura) + test

Grenzen

Der Crawler behandelt keine Authentifizierung, daher sieht er nur den öffentlichen Teil einer Anwendung. Es gibt kein Rate Limiting: Gegen eine echte Website muss er mit Vorsicht verwendet werden. Die Payloads sind generisch und belegen keine WAF-Bypässe. Das boolean-basierte Verfahren bleibt die fragilere Heuristik der beiden SQL-Techniken, und deshalb enthält der Bericht immer das gemessene Rauschen und den verwendeten Schwellenwert, sodass die Leserschaft urteilen kann.

Lizenz

MIT. Verwende es ethisch.

Tool herunterladen