CSRF не отправляет правильный cookie (Тест Damn Vulnerable Web App)

Вопрос или проблема

Я работаю над лабораторией CSRF в DVWA с низкими настройками безопасности. DVWA работает на localhost:4280. Атрибут cookie SameSite не установлен (на Lax или Strict), и, следовательно, запросы между сайтами должны быть возможны.

На http://localhost:80/ файл index.html содержит этот фрагмент:

<img src="" onerror="fetch('http://localhost:4280/vulnerabilities/csrf/?password_new=test&password_conf=test&Change=Change', { method: 'GET', credentials: 'include' });" hidden>

Cookies не передаются автоматически между сайтами, поэтому учетные данные включаются в том виде, в котором они есть. Это должно позволить запросу пройти к серверу DVWA (даже если мы не можем прочитать ответ из-за CORS).

Попытка смены пароля не удалась, и инструменты разработчика Firefox указывают на причину; cookie отправляется, но имеет другой PHPSESSID и уровень безопасности.

В чем может быть проблема?

Я вошел в систему DVWA; оба ‘сайта’ открыты на разных вкладках в Firefox.

Ответ или решение

Проблема CSRF Не Отправляет Правильные Куки: Анализ и Решения

Введение

Кросс-сайтовая подделка запросов (CSRF) — это одна из распространенных уязвимостей веб-приложений, которая позволяет злоумышленникам выполнять нежелательные действия от имени пользователя. В данном контексте вы испытываете уязвимость CSRF в рамках проекта Damn Vulnerable Web Application (DVWA) с установленным уровнем безопасности на "низкий". Рассмотрим более подробно, почему у вас возникают проблемы с отправкой корректных кук и как это можно исправить.

Описание Проблемы

Вы работаете с DVWA, которое развернуто на localhost:4280. Также у вас есть HTML-страница, размещенная на http://localhost:80/, которая включает в себя код, использующий метод fetch для отправки GET-запроса. Это вызывает подделку запроса, однако появление ошибки, указывающей на то, что куки были отправлены, но с другим идентификатором сессии PHP (PHPSESSID), говорит о том, что существуют проблемы с передачей кук между двумя доменами.

Причины Проблемы

  1. Разные Источники: Несмотря на то, что вы открываете оба сайта в одном и том же браузере, они работают на разных портах. Это делает их различными источниками: localhost:4280 и localhost:80 считаются разными источниками, и браузер применяет политику безопасности, запрещающую автоматическую передачу кук.

  2. Атрибут SameSite: Установка атрибута SameSite на куках (например, SameSite=None) может разрешать их использование в кросс-доменных запросах. Хотя вы указали, что атрибут SameSite не установлен, важно подтвердить это поведение в браузере.

  3. CORS Политика: Запрос не может быть выполнен, если не настроена политика кросс-доменных ресурсов (CORS). Поскольку куки не отправляются должным образом, это также может быть связано с тем, что сервер DVWA не разрешает запросы с другого источника.

Возможные Решения

  1. Использование Одного Порта: Чтобы избежать проблем с различными источниками, попробуйте развернуть и DVWA, и тестовую страницу на одном и том же порту. Это может быть достигнуто через использование одного локального сервера, который управляет обоими маршрутизаторами.

  2. Настройка CORS: Убедитесь, что сервер DVWA настроен на разрешение кросс-доменных запросов. Это включает настройку заголовков Access-Control-Allow-Origin, а также возможность приемлемых методов для запросов.

  3. Проверьте Атрибуты Куки: Убедитесь, что атрибут SameSite куков не установлен на Lax или Strict. Если куки не имеют атрибута, это может быть проблемой. Попробуйте вручную установить правильные атрибуты для кук во время их создания, чтобы разрешить использование в кросс-доменных запросах.

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

Заключение

Проблема с отправкой куков в условиях CSRF атаки в DVWA может быть вызвана различными факторами, включая разницу в источниках и недостаточную настройку политики CORS. Подходя к проблеме с разных сторон и следуя предложенным решениям, вы сможете устранить возникшие недоразумения, что поможет в успешном прохождении практического тестирования по безопасности. Помните, что безопасность веб-приложений — это не только о том, чтобы устранить уязвимости, но и о том, чтобы понимать их принципы работы.

SEO Оптимизация

Это объяснение содержит ключевые слова и фразы, такие как "уязвимость CSRF", "Damn Vulnerable Web Application", "настройка CORS", "SameSite куки", что делает данный текст полезным и легко обнаружимым для поиска информации по проблеме.

Оцените материал
Добавить комментарий

Капча загружается...