Райтап на задачу «Дуглас Муглис»

dikiyponos

Автор:

dikiyponos

31 октября 2026

4

31.10.2026
Дуглас Муглис
Категория:

Web

Задача «Дуглас Муглис»

vanderson

Автор:

vanderson

Первая кровь:
demonstrik
Сложность:
medium
Дата публикации:
28.12.2025
Решений:
116
Рейтинг:
4.6/5
Ссылка:
Решать

Перейдём на сайт и попробуем совершить оплату.

Оформление заказа и оплата

Откроем DevTools и попробуем ввести все данные и нажать «оплатить».

Передача данных по WebSocket

И видим некую передачу данных через WebSocket, немного необычно, что при оплате всегда шлётся некая метрика. Вспомним условие задачи: вероятно, на сайте бэкдор.

Рассмотрим исходный код страницы:

Подключение metrics.min.js в исходнике страницы

Откроем metrics.min.js, именно он и ответственен за отправку данных с помощью WebSocket.

Обфусцированный JavaScript-код метрик

Внутри находится обфусцированный, но читаемый код.

  1. Находим ключ, который превращается в SECRETKEY2025: [83,69,67,82,69,84,75,69,89,50,48,50,53].map(function(e){ return String.fromCharCode(e) }).join("")

  2. Перед отправкой есть подобие шифрования:

    for (r = 0; r < n.length; r++)
      o.push(String.fromCharCode(n.charCodeAt(r) ^ t.charCodeAt(r % t.length)));
    return btoa(unescape(encodeURIComponent(o.join(""))));

    То есть JSON → XOR с повторяющимся ключом SECRETKEY2025 → Base64.

  3. Данные отправляются на wss://duglas-muglis.t1.bug-makers.ru/ws/metrics.

  4. Скрипт собирает ["card","cc","cvv","cvc","expir","number","name","email"]

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

Скрипт расшифровки сообщений WebSocket

Флаг получен.

Если вы нашли опечатку или ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter

Также по теме:

Райтап на задачу «Бесконечный бензин»

/Разборы задач

Райтап на задачу «Бесконечный бензин»

Изучаем настройки АЗС BugOil и используем prototype pollution, чтобы обойти лимит выдачи топлива.
Прочитать

4

Райтап на задачу «Блекджек на раздевание»

/Разборы задач

Райтап на задачу «Блекджек на раздевание»

Находим SQL-инъекцию, изучаем бэкап и используем prototype pollution в JWT, чтобы обыграть бота.
Прочитать

5