移动互联网(APP)安全积分争夺赛初赛writeup
字数 1459 2025-08-30 06:50:28

移动互联网(APP)安全积分争夺赛初赛Writeup解析

1. babyapk题目解析

题目考点

  • 安卓逆向
  • XOR异或加密

解题思路

  1. 分析Android代码和native库(反编译so文件)
  2. 逆向推导出正确的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存在的非合规权限申请:

  1. READ_PHONE_STATE

    • MainActivitycheckAndRequestPermissions()方法中直接请求
    • 未明确说明使用目的
    • 未提供替代方案(Android 10+限制该权限的访问)
  2. ACCESS_FINE_LOCATION

    • TwilightManager中通过getLastKnownLocation()方法动态请求
    • 当定位权限未授予时会回退到硬编码时间(hardcoded sunrise/sunset values
    • 说明定位功能非核心功能但仍请求精确定位权限(Android 12+要求前台服务精确位置权限需单独声明)
  3. POST_NOTIFICATIONS

    • checkSelfPermission()方法中检测到该权限的特殊处理(Build.VERSION.SDK_INT < 33的兼容性判断)
    • 未遵循Android 13的通知权限运行时请求规范

FLAG

READ_PHONE_STATE, ACCESS_FINE_LOCATION

3. Goodluck题目解析

题目考点

  • MD5哈希破解

解题思路

  1. 识别出给定的字符串是MD5哈希值
  2. 直接使用MD5解密工具或在线服务进行破解

FLAG

Flag{r9d3jv1}

4. Ezenc题目解析

题目考点

  • 傅里叶变换

解题思路

  1. 分析题目主要使用了傅里叶变换
  2. 注意最终答案可能有误差,需要进行筛选

FLAG

flag{th3_df7_S0_3asy!}

5. 偷天换日题目解析

题目考点

  • 动态解密
  • RC4加密

解题思路

  1. 发现是动态解密cc.data为dex然后加载
  2. 使用了RC4加密
  3. 将cc.data解密后用jadx分析
  4. 进行Base58解密

FLAG

flag{j#n$j@m^,*1}

6. Harmony题目解析

题目考点

  • Abc反编译
  • MD5哈希

解题思路

  1. 使用abc decompile工具进行逆向分析
  2. 从资源中获取hash值
  3. 与用户输入进行对比
  4. 通过cmd5反查得到"goodgood"
  5. 输入后获取flag

FLAG

Flag{ee51e080d1db85f9927fe87aa92267bb}

7. 这个木马在干啥题目解析

题目考点

  • Native层分析
  • AES加密

解题思路

  1. 编写脚本解密native层中的字符串
  2. 分析发现主要采用了AES加密和Base编码
  3. 进行解密操作

8. IOSAPP题目解析

题目考点

  • iOS应用分析

解题思路

  1. 简单分析后只需进行-1操作即可获取flag

FLAG

flag{you_looking_for_me}

总结

本比赛涵盖了移动应用安全的多个方面,包括:

  1. 安卓逆向分析
  2. 加密算法破解(XOR、RC4、AES、MD5)
  3. 隐私合规检测
  4. 动态解密技术
  5. iOS应用分析

每个题目都针对不同的安全技术点,参赛者需要掌握多种安全分析技能才能全面解决这些问题。

移动互联网(APP)安全积分争夺赛初赛Writeup解析 1. babyapk题目解析 题目考点 安卓逆向 XOR异或加密 解题思路 分析Android代码和native库(反编译so文件) 逆向推导出正确的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应用分析 每个题目都针对不同的安全技术点,参赛者需要掌握多种安全分析技能才能全面解决这些问题。