3.5 KiB
Google CTF 2018 - 要玩个游戏吗?
从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)!
支持HackTricks的其他方式:
- 如果您想在HackTricks中看到您的公司广告或下载PDF格式的HackTricks,请查看订阅计划!
- 获取官方PEASS & HackTricks周边产品
- 探索PEASS家族,我们独家的NFTs收藏品
- 加入 💬 Discord群组 或 电报群组 或在Twitter上关注我们 🐦 @carlospolopm。
- 通过向HackTricks和HackTricks Cloud github仓库提交PR来分享您的黑客技巧。
在此下载APK:
我将上传APK到https://appetize.io/(免费账户)以查看APK的行为:
看起来您需要赢得1000000次才能获得flag。
按照Android应用渗透测试中的步骤,您可以反编译应用程序以获取smali代码,并使用jadx阅读Java代码。
阅读Java代码:
看起来打印flag的函数是 m().
Smali更改
第一次调用m()
让应用程序在变量 this.o != 1000000 时调用m(),为此,只需更改条件:
if-ne v0, v9, :cond_2
Google CTF 2018: Shall we play a game?
Task 1: Install the APK
Download the APK from the challenge page and install it on your Android device.
Task 2: Analyze the APK
Step 1: Decompile the APK
Use JADX or apktool to decompile the APK.
Step 2: Analyze the source code
Look for interesting parts in the source code, such as API endpoints, sensitive information handling, etc.
Task 3: Find the flag
Search for the flag within the APK or by analyzing the app's behavior.
Task 4: Submit the flag
Submit the flag to the CTF platform to earn points.
Happy hacking! 🚀
if-eq v0, v9, :cond_2
按照Android渗透测试的步骤重新编译并签署APK。然后,将其上传到https://appetize.io/,看看会发生什么:
看起来旗标未完全解密就被写入。可能应该调用m()函数1000000次。
另一种方法是不更改指令,而是更改比较指令:
另一种方法是将值设置为1,这样this.o将与1进行比较:
第四种方法是添加一条指令将v9(1000000)的值移动到v0 (this.o):
解决方案
当您第一次获胜时,使应用程序运行循环100000次。为此,您只需要创建**:goto_6循环,并使应用程序跳转到那里,如果this.o
**的值不是100000\:
您需要在物理设备内执行此操作,因为(我不知道为什么)在模拟设备中无法正常工作。