
Uno strumento veloce per scansionare la vulnerabilità CRLF scritto in Go.
Un veloce strumento per scansionare la vulnerabilità CRLF scritto in Go
L'installazione è semplice. Puoi scaricare un binario precompilato dalla pagina delle release, decomprimerlo ed eseguirlo! Oppure con
▶ curl -sSfL https://git.io/crlfuzz | sh -s -- -b /usr/local/bin
Se hai il compilatore go1.13+ installato e configurato:
▶ GO111MODULE=on go install github.com/dwisiswant0/crlfuzz/cmd/crlfuzz@latest
Per aggiornare lo strumento, puoi usare il flag -u con il comando go get.
▶ git clone https://github.com/dwisiswant0/crlfuzz
▶ cd crlfuzz/cmd/crlfuzz
▶ go build .
▶ mv crlfuzz /usr/local/bin
Semplicemente, CRLFuzz può essere eseguito con:
▶ crlfuzz -u "http://target"
▶ crlfuzz -h
Questo mostrerà l'aiuto per lo strumento. Ecco tutte le opzioni supportate.
| Flag | Descrizione |
|---|---|
| -u, --url | Definisce un singolo URL da fuzzare |
| -l, --list | Fuzza URL presenti in un file |
| -X, --method | Specifica il metodo di richiesta da usare (default: GET) |
| -o, --output | File per salvare i risultati |
| -d, --data | Definisce i dati della richiesta |
| -H, --header | Passa header personalizzato al target |
| -x, --proxy | Usa il proxy specificato per fuzzare |
| -c, --concurrent | Imposta il livello di concorrenza (default: 25) |
| -s, --silent | Modalità silenziosa |
| -v, --verbose | Modalità verbosa |
| -V, --version | Mostra la versione corrente di CRLFuzz |
| -h, --help | Mostra il suo aiuto |
Puoi definire un target in 3 modi:
▶ crlfuzz -u "http://target"
▶ crlfuzz -l /path/to/urls.txt
Nel caso in cui tu voglia concatenare con altri strumenti.
▶ subfinder -d target -silent | httpx -silent | crlfuzz
Per impostazione predefinita, CRLFuzz effettua richieste con il metodo GET.
Se vuoi cambiarlo, puoi usare il flag -X.
▶ crlfuzz -u "http://target" -X "GET"
Puoi anche salvare i risultati del fuzzing in un file con il flag -o.
▶ crlfuzz -l /path/to/urls.txt -o /path/to/results.txt
Se vuoi inviare una richiesta con dati usando POST, DELETE, PATCH o altri metodi, ti basta usare il flag -d.
▶ crlfuzz -u "http://target" -X "POST" -d "data=body"
Potresti voler usare header personalizzati per aggiungere cookie o altre parti di header.
▶ crlfuzz -u "http://target" -H "Cookie: ..." -H "User-Agent: ..."
Usando un proxy, la stringa del proxy può essere specificata con un prefisso protocol:// per specificare protocolli proxy alternativi.
▶ crlfuzz -u "http://target" -x http://127.0.0.1:8080
La concorrenza è il numero di fuzzing contemporanei. Il valore predefinito fornito da CRLFuzz è 25, puoi cambiarlo usando il flag -c.
▶ crlfuzz -l /path/to/urls.txt -c 50
Se attivi questa modalità silenziosa con il flag -s, vedrai solo i target vulnerabili.
▶ crlfuzz -l /path/to/urls.txt -s | tee vuln-urls.txt
A differenza della modalità silenziosa, mostrerà i dettagli degli errori se c'è un errore con il flag -v.
▶ crlfuzz -l /path/to/urls.txt -v
Per mostrare la versione corrente di CRLFuzz con il flag -V.
▶ crlfuzz -V
Puoi usare CRLFuzz come libreria.
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)
}
}
}
Se sei ancora confuso o hai trovato un bug, per favore apri una segnalazione. Tutte le segnalazioni di bug sono apprezzate, alcune funzionalità non sono state ancora testate a causa della mancanza di tempo libero.
CRLFuzz rilasciato sotto MIT. Vedi LICENSE per maggiori dettagli.
La versione corrente è la 1.4.0 ed è ancora in sviluppo.