CRLF-инъекция
Что такое CRLF-инъекция?
CRLF-инъекцияАтака, внедряющая символы возврата каретки и перевода строки в HTTP-заголовки, журналы и другие текстовые протоколы для подделки новых строк.
CRLF-инъекция эксплуатирует особое значение последовательности CR (0x0D) и LF (0x0A), которая разделяет строки во многих текстовых протоколах. Когда приложение без проверки помещает пользовательский ввод в HTTP-заголовки ответа, журналы, команды SMTP или LDAP-запросы, атакующий может вставить пару CRLF и дополнительные данные, чтобы подделать заголовки, разделить ответ, скрыть журналы или подсунуть команды. В вебе наиболее опасная разновидность — HTTP response splitting: она позволяет отравить общий кеш, установить произвольные cookie или внедрить XSS в тело контролируемого ответа. Защита — отказ принимать CR/LF в полях, попадающих в заголовки, использование высокоуровневых API с экранированием и строгие кодировщики журналов.
● Примеры
- 01
Set-Cookie: id=foo%0d%0aSet-Cookie: admin=true — добавляет второй cookie через CRLF.
- 02
Location: /redir%0d%0aContent-Length:0%0d%0a%0d%0a<html>... — разделение HTTP-ответа.
● Частые вопросы
Что такое CRLF-инъекция?
Атака, внедряющая символы возврата каретки и перевода строки в HTTP-заголовки, журналы и другие текстовые протоколы для подделки новых строк. Относится к категории Атаки и угрозы в кибербезопасности.
Что означает CRLF-инъекция?
Атака, внедряющая символы возврата каретки и перевода строки в HTTP-заголовки, журналы и другие текстовые протоколы для подделки новых строк.
Как работает CRLF-инъекция?
CRLF-инъекция эксплуатирует особое значение последовательности CR (0x0D) и LF (0x0A), которая разделяет строки во многих текстовых протоколах. Когда приложение без проверки помещает пользовательский ввод в HTTP-заголовки ответа, журналы, команды SMTP или LDAP-запросы, атакующий может вставить пару CRLF и дополнительные данные, чтобы подделать заголовки, разделить ответ, скрыть журналы или подсунуть команды. В вебе наиболее опасная разновидность — HTTP response splitting: она позволяет отравить общий кеш, установить произвольные cookie или внедрить XSS в тело контролируемого ответа. Защита — отказ принимать CR/LF в полях, попадающих в заголовки, использование высокоуровневых API с экранированием и строгие кодировщики журналов.
Как защититься от CRLF-инъекция?
Защита от CRLF-инъекция обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия CRLF-инъекция?
Распространённые альтернативные названия: Инъекция возврата каретки и перевода строки, Инъекция в журналы.
● Связанные термины
- vulnerabilities№ 495
Расщепление HTTP-ответа
Уязвимость инъекции, при которой недоверенные символы CR/LF во входе пользователя заставляют сервер выдавать дополнительные подконтрольные злоумышленнику HTTP-ответы.
- vulnerabilities№ 139
Отравление кеша
Атака, при которой в общий кеш записывается вредоносный ответ, и последующие пользователи получают контент, контролируемый атакующим.
- attacks№ 240
Межсайтовый скриптинг (XSS)
Веб-уязвимость, позволяющая злоумышленнику внедрять вредоносные скрипты на страницы, просматриваемые другими пользователями, и выполнять их в браузере жертвы под источником сайта.
- attacks№ 202
Внедрение команд
Атака, при которой пользовательский ввод без фильтрации передаётся в системный шелл, и приложение выполняет команды, заданные злоумышленником.
- appsec№ 538
Валидация ввода
Серверная проверка того, что каждый недоверенный ввод соответствует ожидаемому типу, длине, диапазону, формату и набору значений до его обработки приложением.
- attacks№ 759
Открытый редирект
Уязвимость, при которой приложение перенаправляет пользователя на URL из параметра запроса без проверки, что позволяет проводить фишинг и сбор учётных данных.