TGViewer
Заметки Слонсера Заметки Слонсера @slonser_notes · 3.03K subscribers
Post #889 4.61K

Forwarded from BlackFan

Изучая документацию jadx наткнулся на упоминание, что его можно подключить как библиотеку в свое Java приложение. И эта идея настолько понравилась, что в итоге вылилась в небольшой комбайн, который удобно использовать для первоначальной обработки JAR/WAR/APK приложений при анализе защищенности.

https://github.com/BlackFan/BFScan

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

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

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

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


В случае, если обрабатываемое приложение использует поддерживаемую библиотеку, утилита сгенерирует файл, содержащий все HTTP запросы, поддерживаемые приложением.
POST /api/createUser?someParamName=value HTTP/1.1
Host: localhost
Connection: close
Content-Type: application/json

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


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

Если приложение обфусцировано, что часто бывает с APK, утилита проанализирует все аннотации и, если они похожи на типичное объявление API эндпоинтов, построит HTTP запросы на основе них. В случае, если данная функциональность сработала неправильно, используя jadx вы можно легко сформировать mapping-файлы для переименования обфусцированных классов и корректного формирования HTTP-запросов.
  • ❤‍🔥 16
  • 👍 7
  • 👏 3
  • 🔥 1
  • 🍓 1
More from @slonser_notes
  1. Aug 9, 2026https://portswigger.net/research/css-the-bomb-inside-your-inbox Очень классный ресерч от G…
  2. Jul 4, 2026Наконец-то гугл запатчили багу которую мы сдавали ещё в ноябре прошлого года Наверное сама…
  3. May 26, 2026Во время конфаба записали подкастик Наверное откровений там не найдете, но послушать пока…
  4. Mar 19, 2026Хороший пост про ИИ от Петра Уварова (известный вам по ББ ВК, да он завел канал в MAX Tele…
  5. Mar 4, 2026Приходите послушать меня -_+
  6. Mar 4, 2026VK Security Confab для: Bug Bounty edition — уже 19 марта 🔥 Соберёмся офлайн, чтобы обсуд…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →