1. 项目概述为什么真机抓包是移动开发的必修课在移动应用开发、安全测试甚至是日常的故障排查中我们常常会遇到一个核心问题手机上的App到底在和服务器聊些什么无论是想分析一个App的API接口设计还是排查某个网络请求失败的原因亦或是进行安全审计直接查看设备上收发的网络数据包都是最直接有效的手段。这就是“真机抓包”的价值所在。它让你能像在电脑上用浏览器开发者工具一样清晰地透视移动应用的网络活动。然而真机抓包尤其是iOS和Android双平台远比在桌面端配置一个代理要复杂。不同的操作系统有着迥异的网络栈和安全机制。Android的证书安装相对友好但高版本系统对非系统证书的限制越来越严格iOS则以其封闭性著称从系统信任到App自身的证书绑定SSL Pinning每一步都可能成为拦路虎。很多开发者或安全研究员在初次尝试时常常卡在“为什么我的手机装了证书还是抓不到HTTPS包”这个问题上。因此一个系统性的、覆盖主流场景的实战指南就显得尤为重要。本文将围绕使用业界标杆工具Burp Suite为你拆解在iOS和Android真机上实现完整抓包的每一个步骤、每一个坑点以及背后的原理。无论你是移动开发工程师、安全测试人员还是对技术充满好奇的爱好者这份攻略都将帮助你搭建起这条通往移动应用网络层内部的“观测通道”。2. 核心原理与前置知识理解代理与HTTPS解密在开始动手之前花几分钟理解背后的原理能让你在遇到问题时更快地定位根源而不是盲目地尝试。真机抓包的核心技术点就两个代理Proxy和HTTPS中间人Man-in-the-Middle MITM。2.1 代理模式流量如何被引导你的手机App在发起网络请求时默认会直接通过运营商的网络连接到目标服务器。抓包工具如Burp Suite需要扮演一个“中间人”的角色。为此你需要在手机上配置一个网络代理告诉手机“请把所有发往互联网的流量先送到我电脑上的某个端口比如8080。”这个过程本身并不复杂就像你告诉快递员把包裹先送到小区驿站再由驿站分发。但这里有个关键只有配置了代理的Wi-Fi网络下的流量才会被转发。使用移动数据4G/5G时代理设置通常不生效。这也是为什么抓包第一步总是让手机和电脑处于同一个局域网Wi-Fi下的原因。2.2 HTTPS解密信任的博弈配置了代理你或许能抓到一些HTTP请求但现代App几乎全部使用HTTPS。HTTPS在客户端你的手机App和服务器之间建立了一个加密的隧道保障传输安全。Burp Suite作为“中间人”想要看到明文数据就必须介入这个加密过程。其工作原理可以简化理解为“两头骗”当手机App尝试连接https://api.example.com时请求首先被发到了Burp Suite。Burp Suite 会以自己的名义向真实的api.example.com发起HTTPS连接并获取到该网站的真实证书。接着Burp Suite 会动态生成一张伪造的证书证书的签发者是“Burp Suite CA”但证书的主体Common Name等信息会模仿成api.example.com然后将这张伪造的证书发给手机App。手机App收到这张伪造证书后会进行验证。验证的关键在于它是否信任签发这张证书的根证书颁发机构CA即“Burp Suite CA”。如果手机的系统或App信任了“Burp Suite CA”这个根证书那么它就会接受这张伪造证书并基于它和Burp Suite建立加密连接。至此Burp Suite就成功地在手机App和真实服务器之间建立了两个独立的HTTPS连接一个是手机到Burp解密状态一个是Burp到服务器加密状态。Burp Suite因此可以查看、修改手机App发出的明文请求以及服务器返回的明文响应。核心要点能否成功抓取HTTPS包90%取决于能否让手机系统或目标App信任Burp Suite生成的根证书。这是所有后续操作的基础。3. 环境准备与Burp Suite基础配置工欲善其事必先利其器。在折腾手机之前我们先要把电脑端的Burp Suite配置妥当。3.1 Burp Suite安装与代理设置首先从PortSwigger官网下载Burp Suite Community免费版或Professional版。安装并启动后我们需要确认并配置代理监听。打开代理监听进入Proxy-Options标签页。你会看到一个默认的监听器Listener通常监听127.0.0.1:8080。确保其状态为Running。这个监听器就是等待手机流量过来的“驿站”。关键调整绑定所有接口。默认的127.0.0.1只接受本机发出的流量。为了让同一局域网下的手机能访问到你需要编辑这个监听器将Bind to address从Loopback only改为All interfaces或选择你电脑在局域网中的具体IP地址如192.168.1.100。这样Burp才能接收到来自其他设备你的手机的请求。关闭拦截Intercept对于初次配置建议先到Proxy-Intercept标签页点击Intercept is on按钮将其变为Intercept is off。拦截模式会暂停每一个经过的请求等待你手动放行在配置阶段容易造成干扰。3.2 导出Burp根证书CA Certificate这是让手机建立信任的关键文件。在Burp Suite中进入Proxy-Options-Import / export CA certificate。选择Certificate in DER format格式导出保存为cacert.der。这是二进制格式通用性较好。你也可以同时导出Certificate in PEM format格式保存为cacert.pem。某些场景下可能需要。请妥善保存这个证书文件稍后我们需要将其安装到手机上。3.3 获取电脑的局域网IP地址手机需要知道把流量发送到电脑的哪个地址。在命令行中执行Windows:ipconfig 查看“无线局域网适配器 WLAN”或“以太网适配器”下的IPv4 地址。macOS/Linux:ifconfig或ip addr 找到连接Wi-Fi的网卡如en0,wlan0下的inet地址。记下这个IP例如192.168.1.100和Burp的代理端口默认8080。至此电脑端的准备工作完成。4. Android真机抓包全流程详解Android系统相对开放流程较为标准但随着版本升级也出现了新的挑战。4.1 基础配置代理与证书安装连接同一Wi-Fi并配置代理确保手机和电脑连接同一个无线网络。进入手机的Wi-Fi设置长按当前连接的网络选择“修改网络”或“高级选项”。将代理设置为“手动”。主机名填写你电脑的局域网IP如192.168.1.100。端口填写Burp的监听端口如8080。保存。安装Burp根证书在手机浏览器中访问http://burp这是Burp Suite提供的一个便捷地址点击CA Certificate下载证书文件。或者将之前导出的cacert.der文件通过数据线、微信文件传输等方式发送到手机。进入手机设置-安全或隐私与安全 -加密与凭据-安装证书-CA证书。系统会警告你风险确认安装。找到你下载或传输的证书文件如果是.der文件系统通常能识别为其命名如“Burp CA”后完成安装。初步测试此时用手机浏览器访问一个HTTP网站如http://neverssl.com你应该能在Burp Suite的Proxy-HTTP history中看到请求记录。尝试访问一个HTTPS网站如https://www.baidu.com如果也能看到明文请求和响应恭喜你基础配置成功了4.2 应对Android高版本7.0的用户证书限制从Android 7.0 (Nougat) 开始系统引入了一项重要的安全变更App默认不再信任用户安装的CA证书只信任系统预置的证书。这意味着即使你安装了Burp的CA证书很多App尤其是targetSdkVersion 24的依然会拒绝与之建立连接导致HTTPS流量抓取失败。解决方案主要有两种方案一将Burp CA证书安装为系统证书需Root这是最彻底的解决方案但需要手机已获取Root权限。原理是将证书文件放入系统证书目录/system/etc/security/cacerts/并设置正确的权限。将导出的cacert.der文件重命名为特定的哈希值文件名。可以通过OpenSSL命令生成openssl x509 -inform DER -in cacert.der -subject_hash_old -noout。假设输出是9a5ba575则重命名文件为9a5ba575.0。使用ADB或Root文件管理器将该文件推送到/system/etc/security/cacerts/。修改文件权限为644(rw-r--r--)。重启手机。之后Burp CA证书将被所有App视为系统可信证书。方案二修改App的网络安全配置需可调试的App包如果你有目标App的调试版本debug APK或可以重新打包可以通过修改其网络安全配置文件来让它信任用户证书。在App的res/xml目录下创建network_security_config.xml文件。?xml version1.0 encodingutf-8? network-security-config base-config cleartextTrafficPermittedtrue trust-anchors certificates srcsystem / certificates srcuser / !-- 关键信任用户证书 -- /trust-anchors /base-config /network-security-config在AndroidManifest.xml的application标签中添加android:networkSecurityConfigxml/network_security_config。重新编译并安装App。这个App就会信任你安装的Burp CA证书了。对于无法Root也无法修改的App抓包会变得非常困难这体现了现代系统对安全性的强化。4.3 抓包实战与技巧配置成功后你就可以开始抓包了。打开目标App进行操作所有网络请求都会出现在Burp的History中。过滤请求在Proxy-HTTP history中可以使用顶部的过滤器Filter快速定位到目标主机的请求避免被其他无关流量干扰。重放与修改右键点击任意请求选择Send to Repeater你可以在Repeater标签页中随意修改请求参数、头信息并重复发送用于测试接口的不同响应这是安全测试和调试的利器。手机端证书问题排查如果遇到HTTPS连接错误可以尝试在手机浏览器再次访问http://burp并重新下载安装证书。有时证书可能未正确激活。5. iOS真机抓包全流程详解iOS系统以其严格的管理著称抓包流程与Android有显著不同核心挑战在于证书的安装与信任。5.1 基础配置代理、证书安装与完全信任连接Wi-Fi与配置代理确保iPhone和电脑在同一Wi-Fi下。进入设置-无线局域网点击当前连接的Wi-Fi右侧的i信息图标。下拉到最底部找到配置代理选择手动。服务器填写电脑的局域网IP。端口填写Burp的监听端口。存储。安装并完全信任Burp根证书这是iOS抓包最关键也最容易出错的一步。在iPhone的Safari浏览器中访问http://burp点击CA Certificate下载描述文件。系统会提示“已下载描述文件”。进入设置-通用-VPN与设备管理或描述文件你会看到名为“PortSwigger CA”的描述文件点击它然后选择安装。输入锁屏密码完成安装。至关重要的一步安装描述文件只是将证书放入了系统但默认处于“未信任”状态。你必须手动开启信任。进入设置-通用-关于本机-证书信任设置。在“针对根证书启用完全信任”列表中找到刚刚安装的“PortSwigger CA”证书将其开关打开。系统会再次发出严重警告确认启用。核心避坑点90%的iOS抓包失败表现为Safari可以抓但App不行都是因为漏掉了“证书信任设置”这一步。仅仅安装描述文件是远远不够的。初步测试打开Safari访问一个HTTPS网站如https://www.apple.com。如果能在Burp中看到明文流量说明系统级代理和证书信任已成功。5.2 突破App的额外防护SSL Pinning即使完成了上述所有步骤你可能仍然无法抓取某些App如银行类、社交类主流App的流量。这通常是因为这些App采用了SSL Pinning证书绑定技术。SSL Pinning原理App在编译时就将它信任的服务器的证书或公钥哈希值“硬编码”在程序内部。当建立HTTPS连接时App不仅会验证证书链是否被系统信任还会比对服务器返回的证书是否与内置的“锚点”一致。由于Burp提供的证书是伪造的与内置锚点不匹配App会直接拒绝连接。应对SSL Pinning的方案 这类方案通常需要越狱Jailbreak的iOS设备并配合一些高级工具。越狱环境在越狱设备上你可以使用Cydia等商店安装插件从根本上绕过系统的安全限制。使用Frida等动态插桩工具Frida是一个强大的动态代码插桩框架。你可以编写或使用现成的Frida脚本在App运行时Hook掉其证书验证的逻辑例如HookNSURLSession或AFNetworking的验证方法使其总是返回“验证成功”。这需要一定的逆向工程知识。使用Objection等集成工具Objection是基于Frida的运行时移动探索工具包它提供了简单的命令来禁用SSL Pinning例如ios sslpinning disable对于支持常见框架如TrustKit、AFNetworking的App非常有效。重要提示绕过SSL Pinning通常用于授权的安全测试和研究。对非自己拥有或未获得授权的App使用此类技术可能违反法律和服务条款。5.3 iOS抓包实战心得系统证书缓存有时在修改代理或证书后iOS可能仍有缓存。如果遇到奇怪的问题尝试彻底关闭目标App上滑杀掉甚至重启手机。抓取Safari浏览器流量这是测试证书是否生效的最佳方式。如果Safari的HTTPS流量可抓证明代理和证书信任配置正确。使用专用测试设备由于需要安装描述文件和信任企业级证书建议使用一台专门的测试iPhone进行抓包避免对日常使用的主机造成任何潜在的安全或隐私影响。6. 进阶技巧与场景化实战掌握了基础抓包后一些进阶技巧能让你事半功倍应对更复杂的场景。6.1 精准过滤与流量定位Burp Suite的History里可能充斥着大量无关请求如广告SDK、统计上报、图片资源。使用过滤器能让你聚焦目标。按域名过滤在Filter栏输入域名关键字例如api.target.com。按文件类型过滤你可以使用正则表达式例如^.*\.(js|css|png|jpg|gif)$来过滤掉静态资源专注于API请求通常是JSON或XML格式。结合搜索使用Search功能在全历史记录中搜索特定的关键词、Cookie值或响应内容这对于寻找敏感信息泄露非常有用。6.2 拦截与修改请求/响应Intercept在Proxy-Intercept打开拦截开关后Burp会暂停每一个匹配规则的请求或响应。修改请求在请求发送到服务器前你可以修改任何参数。例如将商品数量从1改为9999测试服务端是否做了校验或者修改身份认证的Token测试权限控制是否失效。修改响应在服务器响应返回给客户端前你可以修改响应内容。例如将一个“支付失败”的响应改为“支付成功”测试客户端如何处理异常状态。这在安全测试中常用于逻辑漏洞的验证。设置拦截范围通过Proxy-Options-Intercept Client Requests下的Edit可以精细控制拦截哪些请求如特定域名、特定文件类型避免被海量请求淹没。6.3 使用Repeater进行接口测试与模糊测试Repeater是Burp Suite中最常用的模块之一它允许你对单个请求进行手动、反复的测试。从History或拦截窗口中右键点击请求选择Send to Repeater。在Repeater标签页中你可以自由修改URL、方法、请求头、参数体。点击Send右侧会立即显示服务器的响应。实战应用参数遍历修改某个ID参数观察响应变化寻找越权漏洞。SQL注入/XXS探测在参数中插入常见的Payload观察响应是否有数据库错误或脚本执行痕迹。边界值测试输入超长字符串、负数、特殊字符等测试服务端的健壮性。6.4 使用Intruder进行自动化攻击对于需要批量测试的场景如爆破密码、遍历目录、检测IDOR不安全的直接对象引用Intruder模块是自动化利器。将请求发送到Intruder。在Positions标签页标记你想要进行爆破或替换的变量位置使用Add §。在Payloads标签页配置你的攻击字典可以是数字序列、单词列表等。开始攻击Burp会自动用字典中的每一项替换标记位置并发送请求最后将所有响应结果汇总方便你分析。例如你可以用一份常用密码字典对登录接口进行自动化密码尝试仅限对你有测试权限的系统。7. 常见问题排查与避坑指南真机抓包的路上坑点无数这里汇总了最常见的问题及其解决方案。7.1 通用问题问题现象可能原因排查步骤与解决方案手机无法上网/App显示无网络1. 电脑防火墙阻止了Burp端口。2. 电脑与手机不在同一局域网。3. Burp代理监听器未运行或绑定地址错误。1. 临时关闭电脑防火墙或为Burp端口8080添加入站规则。2. 确认手机和电脑连接的是同一个Wi-Fi。3. 检查BurpProxy-Options中监听器状态是否为Running并确认绑定地址为All interfaces或正确的IP。能抓到HTTP包但HTTPS包显示Tunnel to/SSL错误1. 手机未安装或未信任Burp CA证书。2. 目标App使用了SSL Pinning。3. (Android高版本) App不信任用户证书。1.重点检查iOS需在“证书信任设置”中启用完全信任Android需确认证书已成功安装为CA证书。2. 尝试用手机浏览器访问一个HTTPS网站测试若成功则证书没问题问题在App自身防护。3. 对于Android高版本尝试使用低版本模拟器、Root后安装系统证书、或修改App网络配置。Burp History中看不到任何流量1. 手机代理配置未保存或错误。2. 某些App无视系统代理设置。1. 重新检查手机Wi-Fi中的代理配置IP和端口是否正确。2. 尝试用手机浏览器访问http://burp看能否打开Burp的证书下载页面以此验证代理通路。3. 对于无视代理的App可能需要更复杂的手段如设置透明网关或使用VPN模式抓包需额外工具如PosternBurp。7.2 平台特定问题Android特有“无法连接到代理服务器”检查电脑防火墙并确保电脑的无线网卡IP不是有线网卡IP被正确设置为代理地址。证书安装后仍报“网络错误”在Android 9.0上即使安装了用户证书App也可能默认不信任。尝试在App的网络和安全设置中寻找“信任用户证书”的选项极少有或使用方案一Root和方案二修改App。iOS特有描述文件安装失败/显示“未签名”尝试换用Safari浏览器从http://burp下载确保网络通畅。有时需要重启手机后再试。安装证书后Safari可以抓包但某个App不行这几乎可以断定是该App使用了SSL Pinning。你需要使用越狱设备配合Frida/Objection等工具进行绕过。iOS 14 的“本地网络”权限某些App在访问局域网设备即你的电脑代理时会触发系统的“本地网络”权限弹窗。如果拒绝可能导致该App的流量无法到达Burp。需要在设置-隐私-本地网络中为对应App开启权限。7.3 高阶避坑技巧使用模拟器作为备选方案在物理机遇到难以解决的问题时Android模拟器如官方模拟器、Genymotion和iOS模拟器Xcode自带是很好的替代品。它们在证书安装和网络配置上通常更简单且易于重置。尤其对于Android高版本证书问题在模拟器上安装系统证书相对容易。准备专用测试环境抓包特别是安全测试可能会产生大量测试流量或触发服务端告警。务必在获得授权的测试环境如Staging环境、沙箱环境中进行切勿在生产环境直接操作。善用Burp的Project文件Burp允许你将当前会话包括配置、历史记录、修改过的请求等保存为一个项目文件.burp。在开始一个复杂的测试任务前新建一个项目并定期保存可以防止意外丢失工作进度也便于后续复盘和报告撰写。流量过大导致Burp卡顿长时间抓包或操作高频App时History中可能积累数十万条记录导致Burp界面卡顿。定期清理历史记录Proxy-HTTP history- 右键Delete或者使用过滤器从一开始就排除无关流量能有效提升体验。真机抓包是一项融合了网络知识、系统理解和工具使用的综合技能。从最初的连接配置到突破层层安全限制每一步都需要耐心和清晰的思路。希望这份从原理到实战、从基础到进阶的全攻略能成为你手中一把可靠的钥匙帮你打开移动应用网络世界的大门无论是为了开发调试、性能优化还是安全研究都能得心应手。记住理解原理永远是解决复杂问题的第一步而动手实践和耐心排查则是通往成功的必经之路。
移动开发真机抓包实战:Burp Suite配置与HTTPS解密全解析
发布时间:2026/7/6 18:04:49
1. 项目概述为什么真机抓包是移动开发的必修课在移动应用开发、安全测试甚至是日常的故障排查中我们常常会遇到一个核心问题手机上的App到底在和服务器聊些什么无论是想分析一个App的API接口设计还是排查某个网络请求失败的原因亦或是进行安全审计直接查看设备上收发的网络数据包都是最直接有效的手段。这就是“真机抓包”的价值所在。它让你能像在电脑上用浏览器开发者工具一样清晰地透视移动应用的网络活动。然而真机抓包尤其是iOS和Android双平台远比在桌面端配置一个代理要复杂。不同的操作系统有着迥异的网络栈和安全机制。Android的证书安装相对友好但高版本系统对非系统证书的限制越来越严格iOS则以其封闭性著称从系统信任到App自身的证书绑定SSL Pinning每一步都可能成为拦路虎。很多开发者或安全研究员在初次尝试时常常卡在“为什么我的手机装了证书还是抓不到HTTPS包”这个问题上。因此一个系统性的、覆盖主流场景的实战指南就显得尤为重要。本文将围绕使用业界标杆工具Burp Suite为你拆解在iOS和Android真机上实现完整抓包的每一个步骤、每一个坑点以及背后的原理。无论你是移动开发工程师、安全测试人员还是对技术充满好奇的爱好者这份攻略都将帮助你搭建起这条通往移动应用网络层内部的“观测通道”。2. 核心原理与前置知识理解代理与HTTPS解密在开始动手之前花几分钟理解背后的原理能让你在遇到问题时更快地定位根源而不是盲目地尝试。真机抓包的核心技术点就两个代理Proxy和HTTPS中间人Man-in-the-Middle MITM。2.1 代理模式流量如何被引导你的手机App在发起网络请求时默认会直接通过运营商的网络连接到目标服务器。抓包工具如Burp Suite需要扮演一个“中间人”的角色。为此你需要在手机上配置一个网络代理告诉手机“请把所有发往互联网的流量先送到我电脑上的某个端口比如8080。”这个过程本身并不复杂就像你告诉快递员把包裹先送到小区驿站再由驿站分发。但这里有个关键只有配置了代理的Wi-Fi网络下的流量才会被转发。使用移动数据4G/5G时代理设置通常不生效。这也是为什么抓包第一步总是让手机和电脑处于同一个局域网Wi-Fi下的原因。2.2 HTTPS解密信任的博弈配置了代理你或许能抓到一些HTTP请求但现代App几乎全部使用HTTPS。HTTPS在客户端你的手机App和服务器之间建立了一个加密的隧道保障传输安全。Burp Suite作为“中间人”想要看到明文数据就必须介入这个加密过程。其工作原理可以简化理解为“两头骗”当手机App尝试连接https://api.example.com时请求首先被发到了Burp Suite。Burp Suite 会以自己的名义向真实的api.example.com发起HTTPS连接并获取到该网站的真实证书。接着Burp Suite 会动态生成一张伪造的证书证书的签发者是“Burp Suite CA”但证书的主体Common Name等信息会模仿成api.example.com然后将这张伪造的证书发给手机App。手机App收到这张伪造证书后会进行验证。验证的关键在于它是否信任签发这张证书的根证书颁发机构CA即“Burp Suite CA”。如果手机的系统或App信任了“Burp Suite CA”这个根证书那么它就会接受这张伪造证书并基于它和Burp Suite建立加密连接。至此Burp Suite就成功地在手机App和真实服务器之间建立了两个独立的HTTPS连接一个是手机到Burp解密状态一个是Burp到服务器加密状态。Burp Suite因此可以查看、修改手机App发出的明文请求以及服务器返回的明文响应。核心要点能否成功抓取HTTPS包90%取决于能否让手机系统或目标App信任Burp Suite生成的根证书。这是所有后续操作的基础。3. 环境准备与Burp Suite基础配置工欲善其事必先利其器。在折腾手机之前我们先要把电脑端的Burp Suite配置妥当。3.1 Burp Suite安装与代理设置首先从PortSwigger官网下载Burp Suite Community免费版或Professional版。安装并启动后我们需要确认并配置代理监听。打开代理监听进入Proxy-Options标签页。你会看到一个默认的监听器Listener通常监听127.0.0.1:8080。确保其状态为Running。这个监听器就是等待手机流量过来的“驿站”。关键调整绑定所有接口。默认的127.0.0.1只接受本机发出的流量。为了让同一局域网下的手机能访问到你需要编辑这个监听器将Bind to address从Loopback only改为All interfaces或选择你电脑在局域网中的具体IP地址如192.168.1.100。这样Burp才能接收到来自其他设备你的手机的请求。关闭拦截Intercept对于初次配置建议先到Proxy-Intercept标签页点击Intercept is on按钮将其变为Intercept is off。拦截模式会暂停每一个经过的请求等待你手动放行在配置阶段容易造成干扰。3.2 导出Burp根证书CA Certificate这是让手机建立信任的关键文件。在Burp Suite中进入Proxy-Options-Import / export CA certificate。选择Certificate in DER format格式导出保存为cacert.der。这是二进制格式通用性较好。你也可以同时导出Certificate in PEM format格式保存为cacert.pem。某些场景下可能需要。请妥善保存这个证书文件稍后我们需要将其安装到手机上。3.3 获取电脑的局域网IP地址手机需要知道把流量发送到电脑的哪个地址。在命令行中执行Windows:ipconfig 查看“无线局域网适配器 WLAN”或“以太网适配器”下的IPv4 地址。macOS/Linux:ifconfig或ip addr 找到连接Wi-Fi的网卡如en0,wlan0下的inet地址。记下这个IP例如192.168.1.100和Burp的代理端口默认8080。至此电脑端的准备工作完成。4. Android真机抓包全流程详解Android系统相对开放流程较为标准但随着版本升级也出现了新的挑战。4.1 基础配置代理与证书安装连接同一Wi-Fi并配置代理确保手机和电脑连接同一个无线网络。进入手机的Wi-Fi设置长按当前连接的网络选择“修改网络”或“高级选项”。将代理设置为“手动”。主机名填写你电脑的局域网IP如192.168.1.100。端口填写Burp的监听端口如8080。保存。安装Burp根证书在手机浏览器中访问http://burp这是Burp Suite提供的一个便捷地址点击CA Certificate下载证书文件。或者将之前导出的cacert.der文件通过数据线、微信文件传输等方式发送到手机。进入手机设置-安全或隐私与安全 -加密与凭据-安装证书-CA证书。系统会警告你风险确认安装。找到你下载或传输的证书文件如果是.der文件系统通常能识别为其命名如“Burp CA”后完成安装。初步测试此时用手机浏览器访问一个HTTP网站如http://neverssl.com你应该能在Burp Suite的Proxy-HTTP history中看到请求记录。尝试访问一个HTTPS网站如https://www.baidu.com如果也能看到明文请求和响应恭喜你基础配置成功了4.2 应对Android高版本7.0的用户证书限制从Android 7.0 (Nougat) 开始系统引入了一项重要的安全变更App默认不再信任用户安装的CA证书只信任系统预置的证书。这意味着即使你安装了Burp的CA证书很多App尤其是targetSdkVersion 24的依然会拒绝与之建立连接导致HTTPS流量抓取失败。解决方案主要有两种方案一将Burp CA证书安装为系统证书需Root这是最彻底的解决方案但需要手机已获取Root权限。原理是将证书文件放入系统证书目录/system/etc/security/cacerts/并设置正确的权限。将导出的cacert.der文件重命名为特定的哈希值文件名。可以通过OpenSSL命令生成openssl x509 -inform DER -in cacert.der -subject_hash_old -noout。假设输出是9a5ba575则重命名文件为9a5ba575.0。使用ADB或Root文件管理器将该文件推送到/system/etc/security/cacerts/。修改文件权限为644(rw-r--r--)。重启手机。之后Burp CA证书将被所有App视为系统可信证书。方案二修改App的网络安全配置需可调试的App包如果你有目标App的调试版本debug APK或可以重新打包可以通过修改其网络安全配置文件来让它信任用户证书。在App的res/xml目录下创建network_security_config.xml文件。?xml version1.0 encodingutf-8? network-security-config base-config cleartextTrafficPermittedtrue trust-anchors certificates srcsystem / certificates srcuser / !-- 关键信任用户证书 -- /trust-anchors /base-config /network-security-config在AndroidManifest.xml的application标签中添加android:networkSecurityConfigxml/network_security_config。重新编译并安装App。这个App就会信任你安装的Burp CA证书了。对于无法Root也无法修改的App抓包会变得非常困难这体现了现代系统对安全性的强化。4.3 抓包实战与技巧配置成功后你就可以开始抓包了。打开目标App进行操作所有网络请求都会出现在Burp的History中。过滤请求在Proxy-HTTP history中可以使用顶部的过滤器Filter快速定位到目标主机的请求避免被其他无关流量干扰。重放与修改右键点击任意请求选择Send to Repeater你可以在Repeater标签页中随意修改请求参数、头信息并重复发送用于测试接口的不同响应这是安全测试和调试的利器。手机端证书问题排查如果遇到HTTPS连接错误可以尝试在手机浏览器再次访问http://burp并重新下载安装证书。有时证书可能未正确激活。5. iOS真机抓包全流程详解iOS系统以其严格的管理著称抓包流程与Android有显著不同核心挑战在于证书的安装与信任。5.1 基础配置代理、证书安装与完全信任连接Wi-Fi与配置代理确保iPhone和电脑在同一Wi-Fi下。进入设置-无线局域网点击当前连接的Wi-Fi右侧的i信息图标。下拉到最底部找到配置代理选择手动。服务器填写电脑的局域网IP。端口填写Burp的监听端口。存储。安装并完全信任Burp根证书这是iOS抓包最关键也最容易出错的一步。在iPhone的Safari浏览器中访问http://burp点击CA Certificate下载描述文件。系统会提示“已下载描述文件”。进入设置-通用-VPN与设备管理或描述文件你会看到名为“PortSwigger CA”的描述文件点击它然后选择安装。输入锁屏密码完成安装。至关重要的一步安装描述文件只是将证书放入了系统但默认处于“未信任”状态。你必须手动开启信任。进入设置-通用-关于本机-证书信任设置。在“针对根证书启用完全信任”列表中找到刚刚安装的“PortSwigger CA”证书将其开关打开。系统会再次发出严重警告确认启用。核心避坑点90%的iOS抓包失败表现为Safari可以抓但App不行都是因为漏掉了“证书信任设置”这一步。仅仅安装描述文件是远远不够的。初步测试打开Safari访问一个HTTPS网站如https://www.apple.com。如果能在Burp中看到明文流量说明系统级代理和证书信任已成功。5.2 突破App的额外防护SSL Pinning即使完成了上述所有步骤你可能仍然无法抓取某些App如银行类、社交类主流App的流量。这通常是因为这些App采用了SSL Pinning证书绑定技术。SSL Pinning原理App在编译时就将它信任的服务器的证书或公钥哈希值“硬编码”在程序内部。当建立HTTPS连接时App不仅会验证证书链是否被系统信任还会比对服务器返回的证书是否与内置的“锚点”一致。由于Burp提供的证书是伪造的与内置锚点不匹配App会直接拒绝连接。应对SSL Pinning的方案 这类方案通常需要越狱Jailbreak的iOS设备并配合一些高级工具。越狱环境在越狱设备上你可以使用Cydia等商店安装插件从根本上绕过系统的安全限制。使用Frida等动态插桩工具Frida是一个强大的动态代码插桩框架。你可以编写或使用现成的Frida脚本在App运行时Hook掉其证书验证的逻辑例如HookNSURLSession或AFNetworking的验证方法使其总是返回“验证成功”。这需要一定的逆向工程知识。使用Objection等集成工具Objection是基于Frida的运行时移动探索工具包它提供了简单的命令来禁用SSL Pinning例如ios sslpinning disable对于支持常见框架如TrustKit、AFNetworking的App非常有效。重要提示绕过SSL Pinning通常用于授权的安全测试和研究。对非自己拥有或未获得授权的App使用此类技术可能违反法律和服务条款。5.3 iOS抓包实战心得系统证书缓存有时在修改代理或证书后iOS可能仍有缓存。如果遇到奇怪的问题尝试彻底关闭目标App上滑杀掉甚至重启手机。抓取Safari浏览器流量这是测试证书是否生效的最佳方式。如果Safari的HTTPS流量可抓证明代理和证书信任配置正确。使用专用测试设备由于需要安装描述文件和信任企业级证书建议使用一台专门的测试iPhone进行抓包避免对日常使用的主机造成任何潜在的安全或隐私影响。6. 进阶技巧与场景化实战掌握了基础抓包后一些进阶技巧能让你事半功倍应对更复杂的场景。6.1 精准过滤与流量定位Burp Suite的History里可能充斥着大量无关请求如广告SDK、统计上报、图片资源。使用过滤器能让你聚焦目标。按域名过滤在Filter栏输入域名关键字例如api.target.com。按文件类型过滤你可以使用正则表达式例如^.*\.(js|css|png|jpg|gif)$来过滤掉静态资源专注于API请求通常是JSON或XML格式。结合搜索使用Search功能在全历史记录中搜索特定的关键词、Cookie值或响应内容这对于寻找敏感信息泄露非常有用。6.2 拦截与修改请求/响应Intercept在Proxy-Intercept打开拦截开关后Burp会暂停每一个匹配规则的请求或响应。修改请求在请求发送到服务器前你可以修改任何参数。例如将商品数量从1改为9999测试服务端是否做了校验或者修改身份认证的Token测试权限控制是否失效。修改响应在服务器响应返回给客户端前你可以修改响应内容。例如将一个“支付失败”的响应改为“支付成功”测试客户端如何处理异常状态。这在安全测试中常用于逻辑漏洞的验证。设置拦截范围通过Proxy-Options-Intercept Client Requests下的Edit可以精细控制拦截哪些请求如特定域名、特定文件类型避免被海量请求淹没。6.3 使用Repeater进行接口测试与模糊测试Repeater是Burp Suite中最常用的模块之一它允许你对单个请求进行手动、反复的测试。从History或拦截窗口中右键点击请求选择Send to Repeater。在Repeater标签页中你可以自由修改URL、方法、请求头、参数体。点击Send右侧会立即显示服务器的响应。实战应用参数遍历修改某个ID参数观察响应变化寻找越权漏洞。SQL注入/XXS探测在参数中插入常见的Payload观察响应是否有数据库错误或脚本执行痕迹。边界值测试输入超长字符串、负数、特殊字符等测试服务端的健壮性。6.4 使用Intruder进行自动化攻击对于需要批量测试的场景如爆破密码、遍历目录、检测IDOR不安全的直接对象引用Intruder模块是自动化利器。将请求发送到Intruder。在Positions标签页标记你想要进行爆破或替换的变量位置使用Add §。在Payloads标签页配置你的攻击字典可以是数字序列、单词列表等。开始攻击Burp会自动用字典中的每一项替换标记位置并发送请求最后将所有响应结果汇总方便你分析。例如你可以用一份常用密码字典对登录接口进行自动化密码尝试仅限对你有测试权限的系统。7. 常见问题排查与避坑指南真机抓包的路上坑点无数这里汇总了最常见的问题及其解决方案。7.1 通用问题问题现象可能原因排查步骤与解决方案手机无法上网/App显示无网络1. 电脑防火墙阻止了Burp端口。2. 电脑与手机不在同一局域网。3. Burp代理监听器未运行或绑定地址错误。1. 临时关闭电脑防火墙或为Burp端口8080添加入站规则。2. 确认手机和电脑连接的是同一个Wi-Fi。3. 检查BurpProxy-Options中监听器状态是否为Running并确认绑定地址为All interfaces或正确的IP。能抓到HTTP包但HTTPS包显示Tunnel to/SSL错误1. 手机未安装或未信任Burp CA证书。2. 目标App使用了SSL Pinning。3. (Android高版本) App不信任用户证书。1.重点检查iOS需在“证书信任设置”中启用完全信任Android需确认证书已成功安装为CA证书。2. 尝试用手机浏览器访问一个HTTPS网站测试若成功则证书没问题问题在App自身防护。3. 对于Android高版本尝试使用低版本模拟器、Root后安装系统证书、或修改App网络配置。Burp History中看不到任何流量1. 手机代理配置未保存或错误。2. 某些App无视系统代理设置。1. 重新检查手机Wi-Fi中的代理配置IP和端口是否正确。2. 尝试用手机浏览器访问http://burp看能否打开Burp的证书下载页面以此验证代理通路。3. 对于无视代理的App可能需要更复杂的手段如设置透明网关或使用VPN模式抓包需额外工具如PosternBurp。7.2 平台特定问题Android特有“无法连接到代理服务器”检查电脑防火墙并确保电脑的无线网卡IP不是有线网卡IP被正确设置为代理地址。证书安装后仍报“网络错误”在Android 9.0上即使安装了用户证书App也可能默认不信任。尝试在App的网络和安全设置中寻找“信任用户证书”的选项极少有或使用方案一Root和方案二修改App。iOS特有描述文件安装失败/显示“未签名”尝试换用Safari浏览器从http://burp下载确保网络通畅。有时需要重启手机后再试。安装证书后Safari可以抓包但某个App不行这几乎可以断定是该App使用了SSL Pinning。你需要使用越狱设备配合Frida/Objection等工具进行绕过。iOS 14 的“本地网络”权限某些App在访问局域网设备即你的电脑代理时会触发系统的“本地网络”权限弹窗。如果拒绝可能导致该App的流量无法到达Burp。需要在设置-隐私-本地网络中为对应App开启权限。7.3 高阶避坑技巧使用模拟器作为备选方案在物理机遇到难以解决的问题时Android模拟器如官方模拟器、Genymotion和iOS模拟器Xcode自带是很好的替代品。它们在证书安装和网络配置上通常更简单且易于重置。尤其对于Android高版本证书问题在模拟器上安装系统证书相对容易。准备专用测试环境抓包特别是安全测试可能会产生大量测试流量或触发服务端告警。务必在获得授权的测试环境如Staging环境、沙箱环境中进行切勿在生产环境直接操作。善用Burp的Project文件Burp允许你将当前会话包括配置、历史记录、修改过的请求等保存为一个项目文件.burp。在开始一个复杂的测试任务前新建一个项目并定期保存可以防止意外丢失工作进度也便于后续复盘和报告撰写。流量过大导致Burp卡顿长时间抓包或操作高频App时History中可能积累数十万条记录导致Burp界面卡顿。定期清理历史记录Proxy-HTTP history- 右键Delete或者使用过滤器从一开始就排除无关流量能有效提升体验。真机抓包是一项融合了网络知识、系统理解和工具使用的综合技能。从最初的连接配置到突破层层安全限制每一步都需要耐心和清晰的思路。希望这份从原理到实战、从基础到进阶的全攻略能成为你手中一把可靠的钥匙帮你打开移动应用网络世界的大门无论是为了开发调试、性能优化还是安全研究都能得心应手。记住理解原理永远是解决复杂问题的第一步而动手实践和耐心排查则是通往成功的必经之路。