1. 看不见的“电线”在前两章我们关注的是App本身代码逻辑、内存数据。但在真实世界中App很少是孤岛。它需要和服务器“对话”来获取数据。渗透测试员的思维如果我能站在App和服务器中间偷听它们的对话Sniffing甚至篡改对话内容Tampering我就能发现更多漏洞。核心概念中间人攻击MITM​想象一下App小明要给服务器小红寄一封加密信HTTPS。正常情况下只有小红有钥匙。但在MITM攻击中攻击者你拦截了信件告诉小明“我是小红”同时告诉小红“我是小明”。这样所有的加密内容都会经过你的手解密。2. 基础准备搭建“窃听室”要进行窃听我们需要将手机的网络流量“引流”到我们的电脑上。2.1 工具组合Burp Suite渗透测试界的“瑞士军刀”用于拦截和修改HTTP/HTTPS流量。手机代理设置将手机的WiFi代理设置为电脑的IP地址通常是8080端口。2.2 安装证书关键步骤HTTPS之所以安全是因为App只信任权威机构CA颁发的证书。为了解密流量我们需要让手机信任我们的窃听工具Burp。在手机浏览器访问http://burp下载Burp证书。将证书重命名为.crt格式。在安卓设置中安装该证书用户证书。现状在 Android 7Nougat之前这招很管用。但在 Android 7系统不再信任用户安装的证书。这就引出了我们在第二章用 Frida 解决的问题SSL Pinning证书锁定。3. 实战一越权漏洞IDOR挖掘这是API渗透中最常见、奖金最高的漏洞之一。场景某社交App用户A的ID是1001用户B的ID是1002。App 请求服务器获取用户资料时发送的API请求如下GET /api/user/profile?user_id1001 HTTP/1.1 Host: api.target.com Cookie: sessionabc1233.1 发现漏洞使用 Burp Suite 拦截这个请求。将user_id1001修改为user_id1002。点击“发送”。结果服务器返回了用户B的完整资料手机号、邮箱、私密照片。漏洞原理服务器只验证了你登录了Cookie有效但没有验证“你登录的用户ID”是否等于“你请求查看的用户ID”。3.2 自动化扫描利用 Burp 的Intruder​ 模块我们可以自动遍历user_id从 1 到 10000瞬间窃取全站用户数据。4. 实战二短信轰炸与逻辑炸弹很多App有“发送验证码”功能。原始请求POST /api/send_sms HTTP/1.1 {phone: 13800138000, type: login}4.1 绕过频率限制开发者通常会在前端或后端限制“同一个手机号60秒内只能发一次”。绕过手法参数污染修改phone参数为13800138000,13800138001如果后端解析不当可能发给两个号。空格绕过phone: 13800138000 后端可能只校验纯数字带空格算新号码。遍历ID如果App是通过user_id发送短信直接遍历user_id就能给全站用户发垃圾短信短信轰炸。5. 实战三重放攻击Replay Attack在支付场景中这是致命的。场景用户购买商品App生成一条支付请求发给服务器。请求包POST /api/pay HTTP/1.1 {order_id: ORD123, amount: 100, sign: a1b2c3d4...}攻击复现拦截这个请求。不修改任何参数直接点击“Repeat”重放。再次点击“Repeat”。结果如果服务器没有做幂等性校验检查这个订单是否已经付过款用户可能会被扣费两次、三次……甚至一百次而只收到一份商品。6. 进阶非HTTP协议的渗透并非所有App都使用HTTP/HTTPS。很多IM即时通讯App、游戏App使用TCP/UDP​ 私有协议。6.1 流量分析工具Wireshark替代Burp。技巧虽然私有协议可能是二进制的乱码但你可以寻找规律。比如前4个字节代表长度后2个字节代表指令ID。6.2 实例篡改游戏坐标某AR游戏通过TCP发送位置信息[包头][X坐标: 100][Y坐标: 200][校验和]攻击使用 Frida Hook 发送函数或者直接在 Wireshark 拦截并修改数据包将坐标改为X: 99999, Y: 99999。结果游戏角色瞬间“瞬移”到地图外实现外挂功能。7. 防御方视角如何防住“中间人”作为开发者不能只靠HTTPS。证书锁定SSL Pinning在App代码里硬编码服务器的证书哈希值。即使手机安装了Burp证书App也会拒绝连接。注我们在第二章演示了如何绕过它但在没有Root的普通用户手机上它能防住90%的脚本小子。双向认证mTLS不仅服务器要有证书App客户端也要有证书。没有客户端证书连不上服务器。这让抓包变得极难。签名校验服务器端在接收关键参数如支付金额时必须验证签名。且签名密钥不能像第一章那样硬编码在代码里。下一章预告《第四章深入系统底层 —— Root提权与内核漏洞》当我们面对银行App或高防护系统时应用层手段Frida、Burp可能会失效。此时我们需要从系统层面入手获取Root权限甚至利用内核漏洞CVE来彻底接管设备。