мой репорт:
CWE-201: Broken Access Control (обход прав доступа на стороне клиента) / Sensitive Information Leakage
cvss (Common Vulnerability Scoring System) v4.0 score: 5.5 / 10 - medium, ввиду надежной проверки jwt на бэкенде полноценный доступ к привелегиям администрации получить не выходит (не гарантирую что тоже самое хорошо работает для вебсокета, если там есть админский канал)
было обнаружено, что административная логика и компоненты панели управления (adminPage) включены в продакшн билд. это позволяет любому аутентифицированному пользователю получить доступ к интерфейсу управления платформой и изучить структуру внутренних апи-запросов (включая админские запросы)
лик административного модуля: весь код, отвечающий за управление пользователями, просмотр балансов и настроек ботов, доступен в основном js бандле
обход авторизации (client side bypass): фронтэнд доверяет локальному состоянию объекта window.app, что позволяет принудительно активировать скрытые элементы интерфейса без наличия соответствующих прав в jwt-токене.
раскрытие эндпоинтов (видоизменено):
/set-fees
/delete-ref-code
/set-referrer
/check-users
/userdetail?username=
/ban
/resetsettings
/force-stop-session
proof of concept:
атакующий может выполнить следующие действия в консоли браузера для доступа к панели администратора:
1. авторизоваться как обычный пользователь.
2. модифицировать глобальный объект состояния приложения:
window.app.authManager.isAdmin = true;
window.app.authManager.userRole = "admin";
window.app.authManager.permissions = ["*"];
подгрузить страницу с админкой:
window.app.adminPage.load();
импакт:
текущая реализация бэкенда корректно отклоняет запросы к эндпоинтам /admin/* с 403 форбиден, но данная уязвимость значительно снижает порог входа для проведения более сложных атак (bola/idor или перехват данных через вебсокеты), так как структура запросов и логика работы админ-панели полностью раскрыты.
рекомендации:
- воткнуть динамический импорт для административных компонентов, чтобы они загружались только пользователями с ролью admin
- удалить все упоминания административных эндпоинтов и методов из паблик бандлов
- убедиться что приватные данные не передаются в публичных каналах вебсокета и в отсутствии возможности получить доступ в приватные канал вебсокета (если они есть)
Post #706
685
whaley пишет написал еще репортик по уязвимости знакомым чувакам
- ❤ 3
- 🐳 2
- 🔥 1
- 🫡 1