Авторские курсы Михаила Тарасова

Скрытые endpoints в мобильном API

Скрытые endpoints в мобильном API

Мобильные аппки — это как школьники на дефконе: шумные, открытые, и вечно забывают, что всё, что они гонят на backend — прозрачное как Wireshark. Разрабы думают: «да кто ж полезет в apk с PlayMarket». Ага, конечно. Каждый второй багхантер первым делом лезет туда за скрытыми endpoints.

Точка входа
Что вижу: кастомный мобильный клиент общается с api.mobilecorp.com, половину вызовов фронтенд даже не делает. Ну и их «секретный» /v2/internal/*.
Как поймал: mitmproxy + бургер в руку. Ловлю трафик: фронт просит /feed, а клиент тихо под капотом шлёт /admin/config и /beta/features.
Чем пахнет: жирный IDOR (уровень 7/10) + инфоляпы, иногда до RCE доезжают.
Че почем
Эксплойт:

Ответ: json с флагом "admin_dashboard": true. Не UI‑фича, а твой билетик в секретный функционал.
Обход защиты: банально подменяешь X-App-Version: 1.0.11-beta, которую APK жёстко вшивает, — и API радостно отдаёт эндпоинт для «только QA».
Доказательство: кидаешь curl с любым юзерским токеном → видишь «adminEmail: ceo@company.com». Это не Easter Egg, это подарок судьбы.

Советы:
Три вектора добивания:
• Попробуй fuzz по словарю /v2/internal/wordlist.txt — там часто живёт /debug, /config, /test_payment.
• Если в apk заметил BuildConfig.API_URL_STAGING — радуйся. Стаджик часто вообще без auth.
• Заюзай jadx и strings — разработчики всегда забывают выпилить «/payment/refundAll».

План атаки:
1. Снимаем трафик мобилы через mitmproxy и сохраняем HAR.
2. Гоним словарь найденных URL через ffuf:

3. Валидируем каждый ответ руками. Одна дырка из «staging» или «beta» — и ты бог KPI на багбаунти.
Вангую баги вендоров
• Эти «секретные» методы без rate-limit. Ставь --repeat 1000 и смотри, как падает сервер.
• JWT токен? Урони его в jwt_tool, проверь режим alg: none. Да, в 2025 это всё ещё встречается.
• Любимый прикол: мобильный клиент знает /api/exportData.csv. Пользуйся, пока не закрыли.

Мои курсы