
Быстрый инструмент для сканирования уязвимости CRLF, написанный на Go
Быстрый инструмент для сканирования уязвимости CRLF, написанный на Go
Установка проста. Вы можете скачать готовый двоичный файл со страницы релизов, распаковать и запустить! Или с помощью
▶ curl -sSfL https://git.io/crlfuzz | sh -s -- -b /usr/local/bin
Если у вас установлен и настроен компилятор go1.13+:
▶ GO111MODULE=on go install github.com/dwisiswant0/crlfuzz/cmd/crlfuzz@latest
Чтобы обновить инструмент, вы можете использовать флаг -u с командой go get.
▶ git clone https://github.com/dwisiswant0/crlfuzz
▶ cd crlfuzz/cmd/crlfuzz
▶ go build .
▶ mv crlfuzz /usr/local/bin
Проще говоря, CRLFuzz можно запустить с помощью:
▶ crlfuzz -u "http://target"
▶ crlfuzz -h
Это отобразит справку по инструменту. Вот все поддерживаемые параметры.
Вы можете указать цель тремя способами:
▶ crlfuzz -u "http://target"
▶ crlfuzz -l /path/to/urls.txt
На случай, если вы хотите объединить с другими инструментами.
▶ subfinder -d target -silent | httpx -silent | crlfuzz
По умолчанию CRLFuzz отправляет запросы методом GET.
Если вы хотите изменить его, используйте флаг -X.
▶ crlfuzz -u "http://target" -X "GET"
Вы также можете сохранить результаты фаззинга в файл с помощью флага -o.
▶ crlfuzz -l /path/to/urls.txt -o /path/to/results.txt
Если вы хотите отправить запрос с данными с помощью POST, DELETE, PATCH или других методов, просто используйте флаг -d.
▶ crlfuzz -u "http://target" -X "POST" -d "data=body"
Возможно, вы захотите использовать пользовательские заголовки для добавления cookie или других частей заголовка.
▶ crlfuzz -u "http://target" -H "Cookie: ..." -H "User-Agent: ..."
При использовании прокси строка прокси может быть указана с префиксом protocol:// для выбора альтернативного протокола прокси.
▶ crlfuzz -u "http://target" -x http://127.0.0.1:8080
Параллелизм — это количество одновременных фаззингов. Значение по умолчанию, предоставляемое CRLFuzz, — 25, вы можете изменить его с помощью флага -c.
▶ crlfuzz -l /path/to/urls.txt -c 50
Если вы активируете тихий режим с помощью флага -s, вы увидите только уязвимые цели.
▶ crlfuzz -l /path/to/urls.txt -s | tee vuln-urls.txt
В отличие от тихого режима, с флагом -v будут отображаться подробности ошибок, если возникнет ошибка.
▶ crlfuzz -l /path/to/urls.txt -v
Чтобы отобразить текущую версию CRLFuzz, используйте флаг -V.
▶ crlfuzz -V
Вы можете использовать CRLFuzz как библиотеку.
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)
}
}
}
Если вы всё ещё запутались или нашли ошибку, пожалуйста, откройте issue. Все сообщения об ошибках приветствуются, некоторые функции ещё не были протестированы из-за нехватки свободного времени.
CRLFuzz выпущен под лицензией MIT. Смотрите LICENSE для получения дополнительной информации.
Текущая версия — 1.4.0 и всё ещё в разработке.
| Флаг | Описание |
|---|
| -u, --url | Указать одиночный URL для фаззинга |
| -l, --list | Фаззинг URL из файла |
| -X, --method | Указать метод запроса (по умолчанию: GET) |
| -o, --output | Файл для сохранения результатов |
| -d, --data | Определить данные запроса |
| -H, --header | Передать пользовательский заголовок цели |
| -x, --proxy | Использовать указанный прокси для фаззинга |
| -c, --concurrent | Установить уровень параллелизма (по умолчанию: 25) |
| -s, --silent | Тихий режим |
| -v, --verbose | Подробный режим |
| -V, --version | Показать текущую версию CRLFuzz |
| -h, --help | Показать справку |