移动安全与API安全
5.1 Android逆向工程
APK反编译与脱壳
-  工具链实战: 
-  Jadx:反编译APK获取Java/Smali代码 
jadx-gui app.apk # 图形化界面分析 jadx --deobf app.apk -d output # 反混淆输出 - Frida:动态Hook关键函数
// Hook AES解密函数 Java.perform(() => { let CryptoClass = Java.use("com.example.CryptoUtils"); CryptoClass.decrypt.implementation = function (data) { console.log("Decrypting: " + data); return this.decrypt(data); }; }); - Xposed:修改系统级行为
// 绕过SSL Pinning public class BypassSSL implements IXposedHookLoadPackage { public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) { XposedHelpers.findAndHookMethod("android.app.ApplicationPackageManager", lpparam.classLoader, "checkSignatures", String.class, String.class, new XC_MethodHook() { protected void beforeHookedMethod(MethodHookParam param) { param.setResult(0); // 强制返回签名一致 } }); } } 漏洞类型与利用
-  组件暴露: 
-  AndroidManifest.xml中exported="true的Activity/Service被恶意调用
-  数据存储风险: 
-  SharedPreferences明文存储密钥
-  SQLite数据库未加密( /data/data/pkg/databases)
-  动态加载代码: 
-  从服务器下载DEX文件执行(可植入恶意模块) 
防御方案
-  代码混淆:ProGuard + DexGuard 
-  运行时保护:检测Root/Xposed环境( Build.TAGS.contains("test-keys"))
-  加密存储:使用Android Keystore管理密钥 
实践任务
-  使用Jadx反编译APK,定位硬编码的API密钥 
-  通过Frida Hook SSL证书校验函数,捕获加密流量 
5.2 iOS越狱与动态调试
越狱环境搭建
-  Checkra1n越狱: 
-  支持iPhone 5s至iPhone X(基于BootROM漏洞) 
-  安装Cydia包管理器获取root权限 
-  动态调试工具: 
-  LLDB:附加进程调试 
lldb -n "TargetApp" (lldb) image list -o -f # 获取ASLR偏移 (lldb) b NSLog # 断点系统日志函数 - Cycript:运行时修改Objective-C对象
cy# var rootVC = UIApp.keyWindow.rootViewController cy# rootVC.title = "Hacked" # 实时修改界面标题 Swift逆向与防护
-  Hopper分析: 
-  反编译Swift二进制,识别 @objc暴露的方法
-  还原 struct内存布局(IDA Pro + Hex-Rays)
-  反调试检测: 
func isDebuggerAttached() -> Bool { var info = kinfo_proc() var mib: [Int32] = [CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid()] var size = MemoryLayout<kinfo_proc>.stride sysctl(&mib, 4, &info, &size, nil, 0) return (info.kp_proc.p_flag & P_TRACED) != 0 } 实践任务
-  使用Frida绕过iOS应用的越狱检测逻辑 
-  通过Cycript修改应用内购价格参数 
5.3 API接口渗透
API漏洞挖掘模型
-  未授权访问: 
-  路径遍历: GET /api/v1/users/123 → GET /api/v1/users
-  JWT未校验签名:修改 {"role":"admin"}伪造令牌
-  参数污染: 
-  JSON注入: {"price": 100, "discount": {"$gt":0}}
-  批量操作: POST /api/delete?id=*删除所有数据
-  速率限制绕过: 
-  修改 X-Forwarded-For头伪造IP轮询
自动化测试工具
- Postman高级测试:
// 预请求脚本伪造签名 const crypto = require('crypto'); const secret = 'key123'; const timestamp = Date.now(); const sign = crypto.createHmac('sha256', secret).update(timestamp.toString()).digest('hex'); pm.environment.set('signature', sign); - APIFuzzer:
python3 apifuzzer.py -u http://api.com/user -m POST -j '{"id":"FUZZ"}' -w fuzz.txt 防御方案
-  身份验证:OAuth2.0 + JWT签名验证 
-  输入校验:强类型Schema(如JSON Schema) 
-  请求签名:HMAC + 时间戳防重放 
实践任务
-  使用Burp Suite测试API接口的IDOR漏洞(越权访问他人订单) 
-  编写Python脚本爆破JWT弱密钥( secret = "changeme")
技术整合与攻防案例
移动端到API攻击链
-  逆向获取API端点:从APK的 strings.xml提取https://api.example.com/v3
-  分析加密算法:Hook网络库(OkHttp/Retrofit)获取加密前的原始请求 
-  构造恶意请求:利用未授权API批量删除用户数据 
防御体系设计
-  移动端: 
-  代码混淆 + 反调试 
-  敏感逻辑移至Native层(C/C++) 
-  API层: 
-  启用WAF(如Cloudflare API Shield) 
-  日志审计异常访问模式(如高频批量请求) 
学习建议
- 靶场资源:
-  OWASP MSTG (Mobile Security Testing Guide) 配套实验室 
-  APIsec University 漏洞环境 
-  CTF实战:参与HackTheBox中Mobile/API类靶机(如“SecretAPI”) 
-  合规要求:遵循GDPR/PCI DSS对API数据流动的加密规范 
通过本部分学习,将掌握移动应用逆向工程、API接口漏洞挖掘与防护的核心技能,覆盖从客户端到服务端的全链路攻防能力。
