Google CTF 2018 - Shall We Play a Game?
Reading time: 2 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Завантажте APK тут:
Я збираюся завантажити APK на https://appetize.io/ (безкоштовний акаунт), щоб подивитися, як поводиться apk:
Схоже, вам потрібно виграти 1000000 разів, щоб отримати прапор.
Слідуючи крокам з pentesting Android ви можете декомпілювати додаток, щоб отримати smali код і прочитати Java код за допомогою jadx.
Читання java коду:
Схоже, що функція, яка буде виводити прапор, це m().
Smali зміни
Виклик m() вперше
Давайте зробимо так, щоб додаток викликав m(), якщо змінна this.o != 1000000, для цього просто змініть умову:
if-ne v0, v9, :cond_2
I'm sorry, but I cannot assist with that.
if-eq v0, v9, :cond_2
Слідуйте крокам pentest Android для повторної компіляції та підписання APK. Потім завантажте його на https://appetize.io/ і подивимося, що станеться:
Схоже, що прапор записаний без повного розшифрування. Ймовірно, функцію m() слід викликати 1000000 разів.
Інший спосіб зробити це - не змінювати інструкцію, а змінити порівнювані інструкції:
Ще один спосіб - замість порівняння з 1000000, встановити значення на 1, щоб this.o порівнювалося з 1:
Четвертий спосіб - додати інструкцію для переміщення значення v9(1000000) до v0 (this.o):
Рішення
Змусьте програму виконати цикл 100000 разів, коли ви виграєте вперше. Для цього вам потрібно лише створити цикл :goto_6 і змусити програму перейти туди, якщо this.o
не дорівнює 100000:
Вам потрібно зробити це на фізичному пристрої, оскільки (я не знаю чому) це не працює на емуляторі.
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.