
Ein schnelles Werkzeug zum Scannen von CRLF-Schwachstellen, geschrieben in Go
Ein schnelles Tool zum Scannen von CRLF-Schwachstellen, geschrieben in Go
Die Installation ist einfach. Sie können ein vorkompiliertes Binary von der Releases-Seite herunterladen, entpacken und ausführen! oder mit
▶ curl -sSfL https://git.io/crlfuzz | sh -s -- -b /usr/local/bin
Wenn Sie den go1.13+ Compiler installiert und konfiguriert haben:
▶ GO111MODULE=on go install github.com/dwisiswant0/crlfuzz/cmd/crlfuzz@latest
Um das Tool zu aktualisieren, können Sie das -u Flag mit dem go get Befehl verwenden.
▶ git clone https://github.com/dwisiswant0/crlfuzz
▶ cd crlfuzz/cmd/crlfuzz
▶ go build .
▶ mv crlfuzz /usr/local/bin
Einfach, CRLFuzz kann ausgeführt werden mit:
▶ crlfuzz -u "http://target"
▶ crlfuzz -h
Dies zeigt die Hilfe für das Tool an. Hier sind alle unterstützten Schalter.
| Flag | Beschreibung |
|---|---|
| -u, --url | Einzelne URL zum Fuzzing definieren |
| -l, --list | URLs in einer Datei fuzzen |
| -X, --method | Anforderungsmethode festlegen (Standard: GET) |
| -o, --output | Datei zum Speichern der Ergebnisse |
| -d, --data | Anforderungsdaten definieren |
| -H, --header | Benutzerdefinierten Header an Ziel übergeben |
| -x, --proxy | Angegebenen Proxy zum Fuzzing verwenden |
| -c, --concurrent | Parallelitätsgrad festlegen (Standard: 25) |
| -s, --silent | Stiller Modus |
| -v, --verbose | Ausführlicher Modus |
| -V, --version | Aktuelle CRLFuzz-Version anzeigen |
| -h, --help | Hilfe anzeigen |
Sie können ein Ziel auf 3 Arten definieren:
▶ crlfuzz -u "http://target"
▶ crlfuzz -l /path/to/urls.txt
Falls Sie es mit anderen Tools verketten möchten.
▶ subfinder -d target -silent | httpx -silent | crlfuzz
Standardmäßig sendet CRLFuzz Anfragen mit der GET-Methode. Wenn Sie dies ändern möchten, können Sie das -X Flag verwenden.
▶ crlfuzz -u "http://target" -X "GET"
Sie können die Fuzzing-Ergebnisse auch mit dem -o Flag in einer Datei speichern.
▶ crlfuzz -l /path/to/urls.txt -o /path/to/results.txt
Wenn Sie eine Datenanfrage mit POST, DELETE. PATCH oder anderen Methoden senden möchten, müssen Sie nur das -d Flag verwenden.
▶ crlfuzz -u "http://target" -X "POST" -d "data=body"
Möchten Sie benutzerdefinierte Header verwenden, um Cookies oder andere Headerteile hinzuzufügen.
▶ crlfuzz -u "http://target" -H "Cookie: ..." -H "User-Agent: ..."
Bei Verwendung eines Proxys kann die Proxy-Zeichenfolge mit einem protocol:// Präfix angegeben werden, um alternative Proxy-Protokolle zu spezifizieren.
▶ crlfuzz -u "http://target" -x http://127.0.0.1:8080
Parallelität ist die Anzahl der gleichzeitigen Fuzzing-Vorgänge. Der von CRLFuzz bereitgestellte Standardwert ist 25, Sie können ihn mit dem -c Flag ändern.
▶ crlfuzz -l /path/to/urls.txt -c 50
Wenn Sie diesen stillen Modus mit dem -s Flag aktivieren, sehen Sie nur verwundbare Ziele.
▶ crlfuzz -l /path/to/urls.txt -s | tee vuln-urls.txt
Im Gegensatz zum stillen Modus werden Fehlerdetails angezeigt, wenn ein Fehler mit dem -v Flag auftritt.
▶ crlfuzz -l /path/to/urls.txt -v
Um die aktuelle Version von CRLFuzz mit dem -V Flag anzuzeigen.
▶ crlfuzz -V
Sie können CRLFuzz als Bibliothek verwenden.
package main
import (
"fmt"
"github.com/dwisiswant0/crlfuzz/pkg/crlfuzz"
)
func main() {
target := "http://target"
method := "GET"
// Generates a potentially CRLF vulnerable URLs
for _, url := range crlfuzz.GenerateURL(target) {
// Scan against target
vuln, err := crlfuzz.Scan(url, method, "", []string{}, "")
if err != nil {
panic(err)
}
if vuln {
fmt.Printf("VULN! %s\n", url)
}
}
}
Wenn Sie immer noch verwirrt sind oder einen Fehler gefunden haben, öffnen Sie bitte ein Issue. Alle Fehlerberichte werden geschätzt, einige Funktionen wurden aufgrund von Zeitmangel noch nicht getestet.
CRLFuzz wird unter MIT veröffentlicht. Siehe LICENSE für weitere Details.
Aktuelle Version ist 1.4.0 und noch in der Entwicklung.