手机HTTPS抓包实战:Burp Suite中间人代理配置与证书安装详解

发布时间:2026/7/3 20:53:21
手机HTTPS抓包实战:Burp Suite中间人代理配置与证书安装详解 1. 项目概述为什么需要抓取手机HTTPS请求在移动应用开发、安全测试或者日常的逆向分析工作中我们常常需要知道一个手机App究竟在后台发送和接收了哪些数据。比如你想分析某个App的API接口调用逻辑、排查网络请求失败的原因或者进行安全审计检查是否存在敏感信息明文传输。然而现代App几乎全部使用HTTPS协议进行通信这层加密保护了数据传输的安全但也像一堵墙挡住了我们直接查看数据包内容的视线。Burp Suite作为Web安全测试领域的“瑞士军刀”其核心的代理功能恰好是穿透这堵墙的利器。它通过在客户端你的手机和目标服务器之间充当“中间人”Man-in-the-Middle, MITM对HTTPS流量进行解密和重新加密从而让我们能够清晰地看到明文的请求和响应。这个过程就是我们常说的“抓包”。很多人觉得在电脑上抓浏览器的包已经够用了但移动端的环境更为复杂。App可能使用证书绑定Certificate Pinning、非标准端口或自定义的加密协议这些都会增加抓包的难度。因此一套详细、可靠且图文并茂的手机HTTPS抓包教程对于移动端开发者、安全研究员乃至对技术好奇的爱好者来说都是一份极具价值的实操指南。它能帮你搭建起从手机到Burp Suite的完整数据通道让你真正“看见”App的网络行为。2. 环境准备与核心原理剖析在开始动手之前我们需要把环境和原理搞清楚。盲目操作很容易卡在某个环节不知道问题出在哪里。2.1 所需工具清单你需要准备以下几样东西Burp Suite社区版Community Edition即可完成基础的抓包功能。建议从官网下载确保版本较新以兼容更多TLS协议。一台电脑作为运行Burp Suite和代理服务器的主机。Windows、macOS或Linux均可。一部智能手机Android或iOS设备。本文会分别说明两者的配置差异但核心思路一致。稳定的网络环境最关键的一点确保你的手机和电脑连接在同一个局域网Wi-Fi下。这是整个抓包流程能够成功的基础。你可以让电脑和手机都连接同一个家庭或办公室的Wi-Fi路由器。2.2 中间人MITM代理原理简述为什么Burp Suite能解密HTTPS这并非破解了加密算法而是巧妙地利用了PKI公钥基础设施体系中的一个环节。正常HTTPS流程当你用手机访问https://example.com时手机会向服务器请求其证书并验证该证书是否由受信任的证书颁发机构CA签发。验证通过后双方会基于该证书协商出一个会话密钥用于加密后续通信。这个过程中浏览器/系统会严格校验证书的合法性和域名匹配。引入Burp Suite代理我们将手机的代理设置为指向运行Burp Suite的电脑。此时手机发出的所有HTTP/HTTPS请求都会先到达Burp Suite。证书“调包”当手机首次通过Burp Suite访问一个HTTPS网站时Burp Suite会动态生成一个针对该域名的证书并用它自己的CA证书进行签发然后将这个“伪造”的证书返回给手机。信任是关键如果手机的系统不信任Burp Suite的CA证书它会弹出安全警告拒绝连接。因此我们必须手动将Burp Suite的CA证书安装到手机的“受信任的根证书”存储区。一旦完成这一步手机就会像信任其他正规CA如DigiCert、Let‘s Encrypt一样信任Burp Suite签发的所有证书。解密与转发手机信任了Burp Suite的CA证书后Burp Suite就能成功“冒充”目标服务器与手机建立HTTPS连接并解密其请求。同时Burp Suite又以客户端的身份与真正的目标服务器建立另一个HTTPS连接将解密后的请求转发过去并将服务器的响应带回重新加密后返回给手机。整个过程Burp Suite扮演了一个双向的、被双方都“信任”的中间人从而实现了流量的拦截、查看和修改。注意此方法仅用于对自己拥有或有权测试的应用、网站进行安全评估和学习。未经授权对他人的网络流量进行拦截和分析是非法行为。3. 电脑端Burp Suite配置详解这是搭建代理服务器的第一步配置不正确手机根本无法将流量发送过来。3.1 启动与代理监听设置启动Burp Suite首次启动会让你选择临时项目或加载已有项目选择“Temporary project”即可然后点击“Start Burp”。进入代理监听设置点击顶部菜单栏的Proxy-Options标签页。这里管理着Burp Suite的监听器Listener。添加或编辑监听器默认会有一个监听127.0.0.1:8080的条目。这个地址只能接收本机localhost的流量。为了让手机能访问到我们需要将其绑定到电脑的局域网IP地址。点击默认条目进行编辑或者直接点击Add新建一个。在Binding标签页下Bind to port设置一个端口通常用8080。确保这个端口没有被其他程序占用。Bind to address这是关键选择Specific address然后在下拉菜单中选择你电脑在局域网中的IP地址如192.168.1.105。绝对不要选择Loopback only或127.0.0.1。点击OK保存。如何查看电脑的局域网IPWindows在命令提示符cmd输入ipconfig找到“无线局域网适配器 WLAN”或“以太网适配器”下的IPv4 地址。macOS/Linux在终端输入ifconfigmacOS也可用ipconfig getifaddr en0获取Wi-Fi IP找到inet后面的地址。开启拦截可选在Proxy-Intercept标签页确保Intercept is on按钮是关闭状态显示为Intercept is off。对于初次抓包建议先关闭拦截让流量先正常通过我们主要在HTTP history中查看记录。开启拦截会导致每个请求都暂停适合精细调试。3.2 导出CA证书要让手机信任Burp必须获取其CA证书文件。用电脑浏览器已设置代理为Burp访问http://burpsuite或http://你的电脑IP:8080例如http://192.168.1.105:8080。页面右上角会有一个“CA Certificate”的链接点击它下载证书文件通常名为cacert.der。这个.der格式证书需要根据手机系统进行转换或直接安装。为了方便我们通常将其转换为.cer或.pem格式。你可以直接重命名文件后缀为.cer或者使用OpenSSL命令转换openssl x509 -inform DER -in cacert.der -out cacert.pem。实操心得有时直接访问burpsuite域名可能失败最可靠的方法是使用电脑的IP地址端口来访问证书下载页面。确保你的电脑防火墙允许了8080端口的入站连接否则手机可能连不上代理。4. 手机端代理与证书安装这是将手机流量导入Burp Suite的关键步骤Android和iOS略有不同。4.1 配置手机Wi-Fi代理进入手机的Wi-Fi 设置。长按或点击当前已连接的Wi-Fi网络名称选择“修改网络”或“高级选项”。找到代理设置将其从“无”改为“手动”。填写代理信息代理服务器主机名填写你电脑的局域网IP地址如192.168.1.105。代理服务器端口填写你在Burp Suite中设置的端口如8080。绕过代理或对以下地址不使用代理这个框通常留空。如果你只想抓特定App的包可以在这里填入它们的域名但初学者建议先留空抓取所有流量以便观察。保存设置。配置完成后手机所有的HTTP/HTTPS流量除了在“绕过代理”列表中指定的都会先发送到你电脑的Burp Suite。4.2 安装并信任Burp Suite CA证书仅仅设置代理还不够必须让手机系统信任Burp Suite的CA证书否则HTTPS网站会打不开或报错。对于Android设备以原生Android/类原生系统为例传输证书文件将之前导出的cacert.der或转换后的cacert.cer文件发送到手机。可以通过数据线、邮件、网盘或局域网共享。安装证书在手机的文件管理器中找到该证书文件点击安装。系统会要求你为证书命名如“Burp CA”并可能需要你输入锁屏密码。关键步骤将证书移至“系统信任的凭据”进入手机设置 - 安全 - 加密与凭据 - 安装证书 - CA证书。如果安装时没有直接提示安装为CA证书你可能需要进入设置 - 安全 - 高级 - 加密与凭据 - 受信任的凭据 - 用户标签页下查看。在某些深度定制的UI如MIUI、EMUI中路径可能为设置 - 更多设置 - 系统安全 - 加密与凭据 - 安装证书 - CA证书。重要确保证书被安装在“系统”或“用户”的CA证书存储区而不是“VPN和应用”或其他位置。对于iOS设备传输证书文件将证书文件通过邮件发送到iPhone或在电脑上用Safari打开一个托管该证书的简单HTTP页面例如用Python启动一个临时HTTP服务器python3 -m http.server 8000然后在iPhone的Safari中访问http://电脑IP:8000/cacert.cer。安装描述文件在Safari中下载.cer文件后系统会提示“已下载描述文件”。进入设置 - 通用 - VPN与设备管理你会看到“已下载的描述文件”点击它并选择“安装”。完全信任证书安装后这还不够。你必须手动启用对它的完全信任。进入设置 - 通用 - 关于本机 - 证书信任设置。在“针对根证书启用完全信任”列表下找到你刚刚安装的“PortSwigger CA”或你命名的证书将其开关打开。这一步是iOS抓包最常被忽略的关键不开启完全信任大多数App的HTTPS流量依然无法解密。常见问题与排查Android App仍然抓不到包可能是App使用了证书绑定Certificate Pinning。它会校验服务器证书是否与预设的证书匹配不信任用户安装的CA。解决此问题需要更高阶的操作如使用Xposed框架、Frida工具或修改App的APK文件这超出了基础教程范围。iOS系统提示“不受信任的证书”请务必检查“证书信任设置”是否已开启完全信任。证书安装后部分网站/app仍无法访问尝试清除手机浏览器和App的缓存数据。对于Android还可以尝试在Wi-Fi代理设置中将“代理自动配置”PAC选项清空。5. 实战抓包与流量分析环境配置妥当后我们就可以开始捕获和分析流量了。5.1 开始捕获流量确保Burp Suite的代理监听器正在运行Proxy-Options对应监听器前的复选框已勾选。在手机上打开任何一款使用网络的应用比如浏览器访问一个网站或者打开一个新闻类App。切换到Burp Suite的Proxy-HTTP history标签页。你应该能看到一条条HTTP/HTTPS请求记录开始出现。如果HTTP history一片空白请按以下顺序排查检查代理配置确认手机Wi-Fi代理的IP和端口完全正确。检查网络连通性在手机的浏览器中访问http://电脑IP:8080看是否能打开Burp Suite的证书下载页面。如果不能说明网络或代理配置有问题。检查防火墙确保电脑的防火墙允许8080端口的入站连接。关闭并重新打开手机Wi-Fi有时需要重新连接Wi-Fi以应用代理设置。5.2 分析HTTPS请求与响应点击HTTP history中的任意一条HTTPS请求下方会显示详细的请求Request和响应Response内容。Raw查看原始的HTTP报文包括请求行、请求头、请求体。Params自动解析出的URL参数和POST表单参数查看非常方便。Headers以更清晰的视图展示请求头和响应头。Hex以十六进制查看原始数据。对于HTTPS请求你会看到协议Protocol显示为HTTPS并且Host是目标域名。在Request部分你可以清晰地看到明文的Cookie、Authorization头、POST提交的JSON数据等。在Response部分你可以看到服务器返回的JSON、HTML或其他数据。实操技巧过滤流量在HTTP history右上角的筛选器Filter非常强大。你可以按域名、文件类型如^js$、^css$、状态码、搜索关键词等进行过滤快速找到你关心的请求。重放请求Repeater右键点击任何一个请求选择Send to Repeater。然后在Repeater标签页中你可以修改这个请求的任何部分如参数、请求头并反复发送观察服务器返回的不同响应。这是测试API接口、进行漏洞探测的利器。拦截与修改打开Proxy-Intercept的开关接下来的请求会被暂停在Burp Suite中。你可以查看并修改其内容例如修改商品价格、增加参数然后点击Forward放行或者Drop丢弃。这让你能动态地测试应用的业务逻辑。5.3 处理证书绑定Pinning的App越来越多的App特别是金融、社交类应用会使用证书绑定来防止中间人攻击。当你配置好一切后发现目标App无法联网或闪退而其他App正常很可能就是遇到了证书绑定。应对策略需要Root/越狱环境Android (Rooted)使用Magisk模块例如MagiskTrustUserCerts模块可以强制系统将用户安装的证书视为系统证书这对绕过某些绑定有效。使用Xposed模块如JustTrustMe、SSLUnpinning它们能Hook App的证书验证逻辑使其接受任何证书。使用Frida脚本这是更动态和灵活的方式。你需要编写或使用现成的Frida脚本在App运行时注入绕过其证书检查逻辑。这需要一定的逆向工程知识。iOS (Jailbroken)安装越狱插件如SSL Kill Switch 2它可以全局禁用证书验证。使用Frida同样可以通过Frida在iOS上注入脚本来绕过绑定。重要提醒绕过证书绑定通常需要对设备进行Root或越狱这会使设备失去官方保修并可能带来安全风险。且这些操作仅适用于你拥有完全控制权的设备用于安全研究和学习目的。6. 高级配置与问题深度排查基础抓包掌握后一些高级配置和疑难杂症的处理能让你更得心应手。6.1 Burp Suite代理高级设置在Proxy-Options-Proxy Listeners- 编辑你的监听器 -Request handling标签页支持不可见代理Invisible勾选此选项可以让Burp Suite作为一个透明代理处理所有到达该端口的流量即使客户端没有显式配置代理。在某些特殊场景下有用。重定向到主机/重定向到端口可以将所有接收到的请求自动重定向到另一个主机或端口。常用于将流量从一个环境转发到另一个测试环境。在SSL标签页生成每个主机的SSL证书默认已启用。这确保了Burp为每个不同的域名生成独立的证书。使用自定义服务器证书如果你需要Burp Suite使用一个特定的证书例如用于测试客户端证书认证可以在这里配置。6.2 常见问题速查与解决方案下表汇总了抓包过程中最常见的问题及其排查思路问题现象可能原因排查步骤与解决方案HTTP history无任何记录1. 手机代理未设置或设置错误。2. 电脑防火墙阻止了端口。3. Burp监听器未绑定到正确IP。1. 复查手机Wi-Fi代理的IP和端口。2. 在手机浏览器访问http://电脑IP:8080测试连通性。3. 关闭电脑防火墙或添加8080端口入站规则。4. 检查Burp监听器绑定地址是否为电脑局域网IP。HTTPS网站打不开/报证书错误1. Burp CA证书未安装或未受信任。2. iOS未开启“完全信任”。3. App使用了证书绑定。1. 重新下载并安装证书确认安装在“受信任的根证书”区。2.iOS用户必查设置 - 通用 - 关于本机 - 证书信任设置。3. 尝试用系统浏览器访问一个普通HTTPS网站如百度如果浏览器能打开但App不能则很可能是证书绑定。只能抓到HTTP抓不到HTTPSBurp CA证书未正确安装或不被信任。同上。重点检查证书安装位置和信任状态。可以尝试在手机浏览器中访问一个HTTPS网站看Burp Suite能否解密。手机无法上网1. 代理设置错误导致所有流量被错误转发。2. Burp Suite未运行或崩溃。3. 电脑网络断开。1. 暂时关闭手机Wi-Fi代理确认网络本身正常。2. 确认Burp Suite正在运行且监听器正常。3. 检查电脑网络连接。某些App请求抓不到1. 该App使用了非HTTP协议如WebSocket、gRPC、自定义TCP。2. 使用了证书绑定且绕过失败。3. 在代理设置中“绕过代理”列表包含了该App的域名。1. Burp Suite默认只拦截HTTP/HTTPS。对于其他协议需要额外配置或使用其他工具如Wireshark。2. 尝试更彻底的证书绑定绕过方案。3. 检查手机Wi-Fi代理设置中的“绕过代理”列表。请求响应内容乱码响应体可能被压缩如gzip。在Burp Suite的Proxy-Options-Response Modification中取消勾选“解压压缩内容”相关的选项。或者Burp通常会自动解压乱码可能是其他编码问题可尝试在Inspector标签页切换编码查看。6.3 移动端抓包的特殊考量Android 7.0 的网络安全配置从Android 7.0开始App默认不信任用户安装的CA证书除非App显式配置。这就是为什么很多教程会提到需要将Burp证书导入到系统证书目录需要Root。对于非Root设备可以尝试修改App的AndroidManifest.xml或使用虚拟环境如VirtualXposed来绕过这一限制但过程较为复杂。iOS的ATS限制Apple的App Transport Security要求App使用安全的HTTPS连接。但这通常不影响抓包只要证书被信任即可。主要难点仍在于证书绑定。使用模拟器如果在物理手机上操作不便可以考虑使用Android模拟器如Genymotion Android Studio AVD或iOS模拟器。在模拟器上安装证书通常更简单且可以方便地做快照和重置。只需将模拟器的代理设置为宿主机的IP通常是10.0.2.2对于标准AVD即可。整个抓包环境的搭建就像搭建一座连接手机和数据分析工具之间的桥梁。桥墩代理设置要稳桥面证书信任要牢才能让数据流平稳通过。过程中遇到的每一个错误提示都是通往更深入理解的路标。多尝试、多搜索、多思考你会逐渐从只能看数据进阶到能修改数据、测试逻辑最终利用这些技能解决实际开发和安全研究中的问题。