tgoop.com/codeby_sec/9284
Create:
Last Update:
Last Update:
CRLFuzz: автоматическое обнаружение CRLF-уязвимостей
В мире веб-безопасности CRLF-инъекции (Carriage Return Line Feed) остаются одной из опасных, но часто упускаемых из виду уязвимостей. Они могут привести к межсайтовой подделке запросов (XSS), отравлению кеша и HTTP-спуфингу.
CRLF-инъекция возникает, когда злоумышленник внедряет в HTTP-заголовки символы
\r\n (CRLF), что позволяет: - Добавлять вредоносные заголовки (`X-Forwarded-Host`,
Location и др.)- Разделять ответ сервера и внедрять произвольный контент
- Проводить атаки, такие как: HTTP Response Splitting или Session Fixation
http://example.com/search?q=test%0d%0aSet-Cookie:malicious=payloadЕсли сервер некорректно обрабатывает ввод, в ответе может появиться заголовок:
HTTP/1.1 200 OK
Set-Cookie: malicious=payload
⁃ Работает из командной строки
⁃ Проверяет множество URL за секунды
⁃ Поддерживает кастомные payloads и прокси
⁃ Можно интегрировать в CI/CD или скрипты
sudo apt install crlfuzz
Проверка
crlfuzz -h
crlfuzz -u "https://example.com/search?q=test"
Если уязвимость есть, CRLFuzz покажет успешную инъекцию
crlfuzz -l targets.txt -o vulnerable.txt
Где:
-
targets.txt — файл с URL-
vulnerable.txt — файл с результатамиcrlfuzz -u "https://example.com" -x http://127.0.0.1:8080
Допустим, мы тестируем сайт
https://vulnerable.site: crlfuzz -u "https://vulnerable.site/search?query=fuzz"
Если сервер уязвим, вывод может быть таким:
[VULN] https://vulnerable.site/search?query=%0d%0aX-Injected:Header
- Кодируйте пользовательский ввод перед вставкой в заголовки
- Используйте безопасные API (например,
encodeURIComponent в JS)- Валидируйте входные данные на наличие
\r\n- Проводите регулярные тесты с CRLFuzz

