移动互联网(APP)安全积分争夺赛初赛writeup
字数 1459 2025-08-30 06:50:28
移动互联网(APP)安全积分争夺赛初赛Writeup解析
1. babyapk题目解析
题目考点
- 安卓逆向
- XOR异或加密
解题思路
- 分析Android代码和native库(反编译so文件)
- 逆向推导出正确的flag
解题脚本
c = [119, 9, 40, 44, 106, 84, 113, 124, 34, 93, 122, 121, 119, 4, 120, 124, 36, 7, 127, 42, 117, 6, 112, 41, 32, 4, 112, 47, 119, 81, 123, 47, 33, 81, 40, 120, 114, 24]
key = [0x11, 0x65, 0x49, 0x4B]
flag = []
for i in range(len(c)):
flag.append(c[i] ^ key[i % 4])
print(''.join([chr(x) for x in flag]))
FLAG
flag{1873832fa175b6adc9b1a9df42d04a3c}
2. Privacy Master(1)题目解析
题目考点
- 隐私合规
解题思路
根据Android 13/API 33的隐私合规要求,分析APP存在的非合规权限申请:
-
READ_PHONE_STATE:
- 在
MainActivity的checkAndRequestPermissions()方法中直接请求 - 未明确说明使用目的
- 未提供替代方案(Android 10+限制该权限的访问)
- 在
-
ACCESS_FINE_LOCATION:
- 在
TwilightManager中通过getLastKnownLocation()方法动态请求 - 当定位权限未授予时会回退到硬编码时间(
hardcoded sunrise/sunset values) - 说明定位功能非核心功能但仍请求精确定位权限(Android 12+要求前台服务精确位置权限需单独声明)
- 在
-
POST_NOTIFICATIONS:
- 在
checkSelfPermission()方法中检测到该权限的特殊处理(Build.VERSION.SDK_INT < 33的兼容性判断) - 未遵循Android 13的通知权限运行时请求规范
- 在
FLAG
READ_PHONE_STATE, ACCESS_FINE_LOCATION
3. Goodluck题目解析
题目考点
- MD5哈希破解
解题思路
- 识别出给定的字符串是MD5哈希值
- 直接使用MD5解密工具或在线服务进行破解
FLAG
Flag{r9d3jv1}
4. Ezenc题目解析
题目考点
- 傅里叶变换
解题思路
- 分析题目主要使用了傅里叶变换
- 注意最终答案可能有误差,需要进行筛选
FLAG
flag{th3_df7_S0_3asy!}
5. 偷天换日题目解析
题目考点
- 动态解密
- RC4加密
解题思路
- 发现是动态解密cc.data为dex然后加载
- 使用了RC4加密
- 将cc.data解密后用jadx分析
- 进行Base58解密
FLAG
flag{j#n$j@m^,*1}
6. Harmony题目解析
题目考点
- Abc反编译
- MD5哈希
解题思路
- 使用abc decompile工具进行逆向分析
- 从资源中获取hash值
- 与用户输入进行对比
- 通过cmd5反查得到"goodgood"
- 输入后获取flag
FLAG
Flag{ee51e080d1db85f9927fe87aa92267bb}
7. 这个木马在干啥题目解析
题目考点
- Native层分析
- AES加密
解题思路
- 编写脚本解密native层中的字符串
- 分析发现主要采用了AES加密和Base编码
- 进行解密操作
8. IOSAPP题目解析
题目考点
- iOS应用分析
解题思路
- 简单分析后只需进行-1操作即可获取flag
FLAG
flag{you_looking_for_me}
总结
本比赛涵盖了移动应用安全的多个方面,包括:
- 安卓逆向分析
- 加密算法破解(XOR、RC4、AES、MD5)
- 隐私合规检测
- 动态解密技术
- iOS应用分析
每个题目都针对不同的安全技术点,参赛者需要掌握多种安全分析技能才能全面解决这些问题。