TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
purple shift

20 Mar 2025, 16:23

Открыть в Telegram Поделиться Пожаловаться

В анализе безопасности мобильных и веб-приложений одной из первых задач является сбор информации об API-эндпоинтах и о формате HTTP-запросов для взаимодействия с ними.

В случае с веб-приложениями можно найти доступную OpenAPI-спецификацию или извлечь данные о запросах из JavaScript-файлов. Однако для мобильных приложений эта задача усложняется: HTTP-запросы могут формироваться из множества внутренних классов, а сам код часто бывает обфусцирован.

Наш эксперт Сергей Бобров написал на основе jadx-декомпилятора утилиту BFScan, которая помогает решать такие задачи при анализе JAR/WAR/APK приложений. Скачать эту тулзу можно здесь:
https://github.com/klsecservices/BFScan

Утилита BFScan формирует сырые HTTP-запросы и OpenAPI-спецификацию по конфиг-файлам и аннотациям классов и методов. При этом поддерживаются как клиентские библиотеки (например, Retrofit), используемые в APK для взаимодействия с бэкендом, так и серверные технологии, такие как Spring-аннотации. Это облегчает тестирование API в тех случаях, когда тело HTTP-запроса необходимо сформировать из множества вложенных классов.

Дополнительно BFScan анализирует строковые константы в Java-классах и ресурсах приложения для поиска строк, похожих на URL, пути или захардкоженные секреты.

Пример работы утилиты с классом, использующим Spring-аннотации:

@RestController
@RequestMapping("/api")
public class UserController {

@PostMapping("createUser")
public String create(@RequestParam Optional someParamName, @RequestBody User user) {
return "response";
}

В результате утилита формирует такой запрос:
POST /api/createUser?someParamName=value HTTP/1.1
Host: localhost
Connection: close
Content-Type: application/json

{
"name": "name",
"age": 1
}

Утилиту BFScan удобно использовать как для анализа клиентских мобильных приложений, так и в случае, если вы получили скомпилированный JAR/WAR от серверного приложения, для поиска в нём захардкоженных секретов или дальнейшего анализа API-эндпоинтов, которые обрабатываются в приложении.

А если приложение обфусцировано, то используя jadx, можно легко сформировать mapping-файлы для переименования обфусцированных классов и корректного формирования HTTP-запросов.

1.5k 0 26 31
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot