Разделение HTTP-ответа
HTTP |
---|
![]() |
Методы запроса |
Поля заголовка |
Коды статуса ответа |
Методы безопасного контроля доступа |
Уязвимости безопасности |
Разделение HTTP-ответа — это форма веб-приложения уязвимости , возникающая из-за того, что приложение или его среда не могут должным образом очистить входные значения. Его можно использовать для выполнения атак с использованием межсайтовых сценариев , межпользовательской порчи, отравления веб-кэша и подобных эксплойтов .
Атака заключается в том, чтобы заставить сервер напечатать возврат каретки (CR, ASCII 0x0D ) перевод строки (LF, ASCII 0x0A ), за которым следует содержимое, предоставленное злоумышленником в разделе заголовка его ответа, обычно путем включения их в поля ввода, отправляемые приложению. Согласно стандарту HTTP (RFC 2616), заголовки разделяются одним CRLF, а заголовки ответа отделяются от его тела двумя. Таким образом, если не удалить CR и LF, злоумышленник может установить произвольные заголовки, получить контроль над телом или разбить ответ на два или более отдельных ответа — отсюда и название.
Профилактика
[ редактировать ]Общее решение — URL-кодирование строк перед включением в HTTP-заголовки, такие как Location или Set-Cookie .
Типичные примеры очистки включают приведение к целым числам или агрессивную замену регулярных выражений . Большинство современных серверных языков сценариев и сред выполнения, например PHP , начиная с версии 5.1.2. [1] и Node.js начиная с 4.6.0 (предыдущие версии поддерживали, но можно было обойти защиту, обнаруженную в 2016 году) [2] а также веб-фреймворки , такие как Django, начиная с версии 1.8.4. [3] поддерживать очистку HTTP-ответов от этого типа уязвимостей.
Ссылки
[ редактировать ]- ^ «PHP: PHP 5.1.2. Объявление о выпуске» . Группа PHP . Проверено 13 ноября 2014 г.
- ^ «CVE-2016-5325 | База данных уязвимостей Snyk» . Узнайте больше о Debian:9 с помощью базы данных уязвимостей Snyk с открытым исходным кодом . Проверено 16 января 2024 г.
- ^ «CVE-2015-5144 | База данных уязвимостей Snyk» . Узнайте больше о pip с помощью базы данных уязвимостей Snyk с открытым исходным кодом . Проверено 16 января 2024 г.
Внешние ссылки
[ редактировать ]- Разделяй и властвуй: разделение HTTP-ответов, атаки с отравлением веб-кэша и связанные темы. Амит Кляйн, 2004 г.
- Целевое веб-приложение уязвимо к внедрению HTTP-заголовка
- Разделение HTTP-ответов, Консорциум по безопасности веб-приложений
- Сканер внедрения XSS, заголовков, SQL и LDAP Wapiti с открытым исходным кодом
- LWN-статья
- CWE-113: не удалось очистить последовательности CRLF в заголовках HTTP («Разделение HTTP-ответа»).
- Атака с разделением HTTP-ответа – OWASP
- Внедрение CRLF — OWASP