

Bolt befindet sich in der Beta-Phase der Entwicklung, was bedeutet, dass es Fehler geben kann. Eine produktive Nutzung dieses Tools wird nicht empfohlen. Pull-Requests und Issues sind willkommen. Ich empfehle dir außerdem, dieses Repository zu beobachten, falls du daran interessiert bist.
Bolt durchsucht die Ziel-Website bis zur angegebenen Tiefe und speichert alle gefundenen HTML-Formulare in einer Datenbank zur weiteren Verarbeitung.
In dieser Phase ermittelt Bolt, welche Tokens nicht stark genug sind und welche Formulare nicht geschützt sind.
Diese Phase konzentriert sich auf die Erkennung von Replay-Angriffsszenarien und prüft daher, ob ein Token mehr als einmal ausgestellt wurde.
Es berechnet auch die durchschnittliche Levenshtein-Distanz zwischen allen Tokens, um festzustellen, ob sie ähnlich sind.
Tokens werden ebenfalls mit einer Datenbank von über 250 Hash-Mustern verglichen.
In dieser Phase werden 100 gleichzeitige Anfragen an eine einzelne Webseite gesendet, um zu sehen, ob für die Anfragen dieselben Tokens generiert werden.
Diese Phase ist dem aktiven Testen des CSRF-Schutzmechanismus gewidmet. Dies umfasst unter anderem die Prüfung, ob der Schutz für mobile Browser existiert, das Senden von Anfragen mit selbst erzeugtem Token und das Testen, ob das Token auf eine bestimmte Länge überprüft wird.
In dieser Phase werden verschiedene statistische Prüfungen durchgeführt, um zu sehen, ob das Token wirklich zufällig ist. Die folgenden Tests werden in dieser Phase durchgeführt:
Das Scannen einer Website mit Bolt auf CSRF ist so einfach wie:
python3 bolt.py -u https://github.com -l 2
Wobei -u zum Angeben der URL und -l zum Angeben der Crawling-Tiefe verwendet wird.
Weitere Optionen und Schalter:
-t Anzahl der Threads--delay Verzögerung zwischen Anfragen--timeout HTTP-Request-Timeout--headers HTTP-Header angebenDie regulären Ausdrücke zur Erkennung von Hashes stammen von hashID.
Die Bit-Level-Entropietests stammen von highfestiva's Python-Implementierung statistischer Tests.