Добро пожаловать на BlackSAMP - ФОРУМ

  • Приватные и секретные разделы доступны только зарегистрированным пользователям.

    Вся важная информация в нашем ТГ: t.me/gtablack

    На данном форуме запрещено публиковать контент нарушающий Российское законодательство, за это последует блокировка ФА.

Уязвимость CRLF Injection — подмена HTTP-ответов и XSS

Количество просмотров: 29

IlyaMarkinV

Редактор
Редактор
Регистрация
13 Июн 2025
Сообщения
26
Реакции
1
Баллы
3
Что такое CRLF Injection?
CRLF (Carriage Return + Line Feed) Injection — это уязвимость, позволяющая злоумышленнику вставлять управляющие символы (%0D%0A) в HTTP-запросы, чтобы модифицировать заголовки ответа или тело страницы.

Как работает уязвимость?
Веб-приложение некорректно обрабатывает пользовательский ввод, что позволяет добавить в ответ сервера произвольные заголовки или контент.

Пример уязвимого кода (PHP):
Код:
<?php  
$user_input = $_GET['param'];  
header("X-User-Data: " . $user_input);  
?>

Атакующий может отправить запрос:
Код:
https://example.com/?param=test%0D%0ALocation:%20https://evil.com%0D%0A%0D%0A

И сервер отправит ответ:
Код:
HTTP/1.1 200 OK  
X-User-Data: test  
Location: https://evil.com  

(пустая строка)

Это приведет к перенаправлению на вредоносный сайт.

Чем опасна эта уязвимость?
Подмена HTTP-ответов (например, добавление Set-Cookie или Location)
XSS через заголовки (если ответ выводится без экранирования)
Обход CSP (внедрение Content-Security-Policy с ослабленными настройками)
Кеш-отравление (вставка вредоносных заголовков Cache-Control)

Как обнаружить?
1. Ищите параметры, влияющие на заголовки (?redirect=, ?lang=, ?session_id=).
2. Пробуйте вставлять %0D%0A и смотрите, разбивается ли ответ.
3. Проверяйте, можно ли добавить произвольные заголовки.

Методы защиты
• Фильтруйте \r (%0D) и \n (%0A) в пользовательском вводе.
• Используйте стандартные функции для кодирования (urlencode(), htmlspecialchars()).
• Запрещайте управляющие символы в заголовках.

Примеры из реальной жизни (CVE)
• CVE-2021-29472 — CRLF Injection в Next.js
• CVE-2019-9740 — Уязвимость в Python urllib
• CVE-2018-1002105 — Подобная атака в Kubernetes

⚠ Используйте эти знания только в образовательных целях и в рамках ответственного разглашения!
 
Сверху Снизу