
Uma ferramenta rápida para escanear vulnerabilidade CRLF escrita em Go
Uma ferramenta rápida para escanear vulnerabilidade CRLF escrita em Go
A instalação é fácil. Você pode baixar um binário pré-construído da página de releases, descompactar e executar! ou com
▶ curl -sSfL https://git.io/crlfuzz | sh -s -- -b /usr/local/bin
Se você tem o compilador go1.13+ instalado e configurado:
▶ GO111MODULE=on go install github.com/dwisiswant0/crlfuzz/cmd/crlfuzz@latest
Para atualizar a ferramenta, você pode usar a flag -u com o comando go get.
▶ git clone https://github.com/dwisiswant0/crlfuzz
▶ cd crlfuzz/cmd/crlfuzz
▶ go build .
▶ mv crlfuzz /usr/local/bin
Simplesmente, CRLFuzz pode ser executado com:
▶ crlfuzz -u "http://target"
▶ crlfuzz -h
Isso exibirá a ajuda para a ferramenta. Aqui estão todas as opções que ela suporta.
Você pode definir um alvo de 3 formas:
▶ crlfuzz -u "http://target"
▶ crlfuzz -l /path/to/urls.txt
Caso queira encadear com outras ferramentas.
▶ subfinder -d target -silent | httpx -silent | crlfuzz
Por padrão, CRLFuzz faz requisições com o método GET. Se você quiser alterá-lo, pode usar a flag -X.
▶ crlfuzz -u "http://target" -X "GET"
Você também pode salvar os resultados do fuzzing em um arquivo com a flag -o.
▶ crlfuzz -l /path/to/urls.txt -o /path/to/results.txt
Se você quiser enviar uma requisição com dados usando POST, DELETE. PATCH ou outros métodos, basta usar a flag -d.
▶ crlfuzz -u "http://target" -X "POST" -d "data=body"
Talvez você queira usar cabeçalhos personalizados para adicionar cookies ou outras partes do cabeçalho.
▶ crlfuzz -u "http://target" -H "Cookie: ..." -H "User-Agent: ..."
Usando um proxy, a string do proxy pode ser especificada com um prefixo protocol:// para especificar protocolos de proxy alternativos.
▶ crlfuzz -u "http://target" -x http://127.0.0.1:8080
Concorrência é o número de fuzzings ao mesmo tempo. O valor padrão fornecido pelo CRLFuzz é 25, você pode alterá-lo usando a flag -c.
▶ crlfuzz -l /path/to/urls.txt -c 50
Se você ativar este modo silencioso com a flag -s, verá apenas alvos vulneráveis.
▶ crlfuzz -l /path/to/urls.txt -s | tee vuln-urls.txt
Ao contrário do modo silencioso, ele exibirá detalhes do erro se houver um erro com a flag -v.
▶ crlfuzz -l /path/to/urls.txt -v
Para exibir a versão atual do CRLFuzz com a flag -V.
▶ crlfuzz -V
Você pode usar CRLFuzz como uma biblioteca.
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 você ainda está confuso ou encontrou um bug, por favor abra uma issue. Todos os relatos de bugs são apreciados, alguns recursos ainda não foram testados devido à falta de tempo livre.
CRLFuzz lançado sob MIT. Veja LICENSE para mais detalhes.
A versão atual é 1.4.0 e ainda em desenvolvimento.
| Flag | Descrição |
|---|
| -u, --url | Define uma única URL para fuzz |
| -l, --list | Faz fuzz em URLs dentro de um arquivo |
| -X, --method | Especifica o método de requisição a usar (padrão: GET) |
| -o, --output | Arquivo para salvar resultados |
| -d, --data | Define dados da requisição |
| -H, --header | Passa cabeçalho personalizado para o alvo |
| -x, --proxy | Usa um proxy especificado para fuzz |
| -c, --concurrent | Define o nível de concorrência (padrão: 25) |
| -s, --silent | Modo silencioso |
| -v, --verbose | Modo detalhado (verbose) |
| -V, --version | Mostra a versão atual do CRLFuzz |
| -h, --help | Exibe a ajuda |