移动端安全测试:Burp Suite代理配置与HTTPS抓包实战指南
1. 项目概述为什么要在手机上配置Burp Suite代理作为一名长期与Web应用安全打交道的从业者我几乎每天都会和Burp Suite打交道。它早已不是简单的“抓包工具”而是渗透测试工程师和安全研究员的“瑞士军刀”。但很多朋友尤其是刚入门的小伙伴常常会遇到一个瓶颈测试目标是一个手机App或者一个只能在移动端访问的H5页面PC浏览器上的Burp抓包就无能为力了。这时候将Burp Suite的代理配置到手机上实现移动端流量拦截就成了必须掌握的技能。简单来说这个操作的核心目的就是让手机的所有网络请求HTTP/HTTPS都先经过你电脑上运行的Burp Suite再由Burp转发到真正的目标服务器。这样一来你就能在Burp中看到、分析、甚至篡改手机App发出的每一个请求和服务器返回的每一个响应。这对于进行移动应用安全测试、API接口调试、数据流分析、甚至是学习某个App的交互逻辑都至关重要。这个过程听起来有点“中间人攻击”的味道实际上原理也类似。你需要完成几个关键步骤在Burp中开启代理监听、获取你电脑在局域网内的IP地址、在手机上配置Wi-Fi代理指向这个IP和端口、最后也是最关键的一步——在手机上安装并信任Burp的CA证书以解密HTTPS流量。接下来我会把这看似简单的几步拆解成每一个可能踩坑的细节并结合我这些年趟过的雷带你从零到一搞定手机抓包。2. 环境准备与核心原理拆解2.1 基础环境搭建你的“作战平台”工欲善其事必先利其器。在开始配置之前确保你的“作战平台”是稳固的。1. 电脑端Burp Suite运行环境Burp Suite版本社区版Community或专业版Professional均可。社区版功能对于基础的抓包和手动测试完全足够。我建议直接从PortSwigger官网下载最新版这是最安全、最稳定的渠道。操作系统Windows、macOS或Linux均可。Burp是Java应用跨平台性很好。但需要注意不同系统下网络配置的细节如防火墙略有不同。网络环境最关键的一点你的电脑和手机必须连接到同一个局域网Wi-Fi下。通常就是连接同一个路由器发出的Wi-Fi信号。这是数据包能够从手机路由到电脑物理层面的基础。2. 手机端被测试设备操作系统Android或iOS。两者配置代理的入口不同安装证书的流程差异更大后面会详细说明。网络连接到与电脑相同的Wi-Fi。注意有些公司或公共网络如机场、酒店Wi-Fi可能禁止客户端之间互访或强制使用网页认证这种网络环境通常无法成功配置代理。最稳妥的环境是在家用路由器下或者用电脑开一个“移动热点”让手机连接但需注意部分电脑开热点时其网络适配器可能处于NAT模式导致手机无法访问电脑IP此时需要调整热点设置或使用第三方工具创建更开放的热点。2.2 核心原理流量是如何“拐弯”的理解原理能让你在出问题时快速定位。整个过程可以抽象为以下几步监听与转发Burp SuiteBurp Suite启动后会在你电脑的某个网络接口如192.168.1.100的某个端口默认8080上开启一个代理服务器。它像是一个尽职的“邮局分拣员”守在这个地址。指令下达手机Wi-Fi设置你在手机的Wi-Fi设置中手动指定了代理服务器地址为192.168.1.100:8080。这相当于告诉手机“以后所有发往互联网的‘信件’网络请求不要直接投递先全部送到这个‘分拣员’这里。”流量拦截Burp Suite手机App产生的HTTP/HTTPS请求被系统根据代理设置发送到了你电脑的8080端口。Burp Suite成功接收到这些“信件”。解密与窥探HTTPS场景对于HTTPS请求Burp需要扮演“可信的中间人”。它会动态生成一个证书与目标服务器建立TLS连接同时用自己生成的另一个证书与手机建立TLS连接。为了让手机信任这个“中间人”你必须将Burp的根证书CA Certificate安装到手机的系统信任证书库中。否则手机检测到证书不可信会直接断开连接你看到的将是满屏的HTTPS握手失败。记录与放行Burp SuiteBurp将拦截到的请求明文已解密的HTTPS请求显示在Proxy - Intercept或HTTP history标签页中。你可以查看、修改。当你选择“Forward”时Burp会将请求或修改后的请求发送给真正的目标服务器并将服务器的响应同样拦截下来返回给手机。为什么是Wi-Fi代理而不是USB代理USB代理如ADB配合adb reverse通常用于调试开发中的App需要开启USB调试且配置更复杂。Wi-Fi代理是通用性最强、对App侵入性最小的方法几乎适用于任何已安装的App。3. 详细配置步骤与实操要点下面我们进入实战环节。我会以Windows/macOS电脑 Android/iOS手机的组合为例分步讲解。3.1 第一步配置Burp Suite代理监听启动Burp Suite如果是首次启动选择Temporary project和Use Burp defaults即可。进入Proxy - Options标签页。找到Proxy Listeners部分。这里应该已经有一个默认的监听器监听127.0.0.1:8080。127.0.0.1是环回地址只接受本机连接手机是无法访问的。选中这条记录点击Edit。在弹出的对话框中将Bind to address从Loopback only改为All interfaces或者直接选择你电脑在局域网中的IP地址例如192.168.1.100。这一步是关键意味着Burp开始监听所有网络接口上的8080端口允许来自局域网内其他设备如你的手机的连接。点击OK保存。你可以看到监听地址变成了192.168.1.100:8080。确保Running复选框是勾选状态。实操心得有时候即使改了All interfaces手机依然连不上。这可能是因为电脑的防火墙Windows Defender Firewall或macOS防火墙阻止了入站连接。你需要手动在防火墙中为java.exe或burpsuite.jar添加一条允许规则放行8080端口的TCP入站连接。这是非常常见的一个坑。3.2 第二步获取电脑的局域网IP地址Windows打开命令提示符CMD输入ipconfig找到你正在使用的网络适配器通常是“无线局域网适配器 WLAN”下面的IPv4 地址就是你的局域网IP例如192.168.1.100。macOS/Linux打开终端输入ifconfig(macOS/Linux) 或ip addr(Linux)找到对应的网络接口如en0,wlan0查看inet后面的地址。记下这个IP和Burp的监听端口默认8080格式为IP:端口例如192.168.1.100:8080。3.3 第三步在手机上配置Wi-Fi代理Android 手机进入设置 - WLAN长按当前已连接的Wi-Fi网络名称。选择修改网络或高级选项。将IP设置从“DHCP”改为静态有些手机不需要改直接往下找代理设置。注意改为静态后你需要手动填写IP地址、网关等容易出错。更通用的方法是在DHCP模式下直接找到代理设置。找到代理选项选择手动。代理服务器主机名填写你电脑的IP如192.168.1.100。代理服务器端口填写Burp的监听端口如8080。保存设置。iOS 手机进入设置 - 无线局域网点击当前连接的Wi-Fi名称右边的ⓘ信息图标。滑动到最底部找到配置代理。选择手动。在服务器栏填写电脑IP端口栏填写8080。点击右上角存储。配置完成后理论上手机的所有HTTP流量都会经过Burp。你可以打开手机浏览器访问一个HTTP网站如http://neverssl.com在Burp的Proxy - HTTP history中应该能看到请求记录。3.4 第四步安装Burp的CA证书解密HTTPS的关键这是最重要也最容易失败的一步。没有证书你只能抓到HTTP流量和一堆HTTPS的CONNECT隧道建立请求看不到具体内容。1. 从Burp导出证书在电脑浏览器中访问http://burpsuite或http://电脑IP:端口例如http://192.168.1.100:8080。这是Burp内置的一个证书下载页面。点击CA Certificate按钮下载cacert.der证书文件。2. 将证书传输到手机可以通过数据线、微信/QQ文件传输、邮件附件、网盘等多种方式把这个证书文件发送到手机上。记住它在手机上的存放路径。3. 在手机上安装并信任证书Android (以较新版本为例)进入设置 - 安全与隐私 - 更多安全设置 - 加密与凭据。选择安装证书-CA证书。系统会警告点击仍然安装。从手机存储中找到你刚才传输的cacert.der文件选择它。为证书命名如“Burp CA”点击确定安装。安装成功后你可以在信任的凭据 - 用户中看到它。注意Android高版本重大变化从Android 7.0 (API 24) 开始系统不再信任用户安装的CA证书来验证目标API级别24的应用的HTTPS连接。这意味着即使你安装了证书很多新版App的HTTPS流量依然无法解密。解决方法有两种① 将Burp证书安装到系统证书区需要Root权限② 修改App的AndroidManifest.xml并重打包针对特定App测试。对于普通抓包和学习可以优先测试目标API级别较低的老App或者使用Android模拟器如夜神、雷电它们通常提供了更方便的证书安装方式。iOS用手机浏览器访问你刚才在电脑上访问的同一个地址http://电脑IP:8080例如http://192.168.1.100:8080。点击CA CertificateiOS会自动提示你下载一个描述文件。进入设置 - 已下载的描述文件点击安装。安装完成后进入设置 - 通用 - 关于本机 - 证书信任设置。找到你刚刚安装的名为 “PortSwigger CA” 或类似名称的证书打开其完全信任的开关。4. 验证HTTPS抓包在手机上访问https://www.baidu.com回到Burp的HTTP history如果能看到清晰的GET /请求和返回的HTML内容而不是一个CONNECT隧道说明HTTPS解密成功。4. 进阶配置与疑难排查4.1 抓取特定App的流量有时候即使配置正确某些App的流量也抓不到。可能的原因和解决方案App使用了证书绑定SSL Pinning这是最常遇到的“硬骨头”。App在代码里写死了只信任自己的特定证书无视系统信任的CA。现象是Burp能收到连接请求但立即断开App提示网络错误。应对方法需要绕过证书绑定。对于Android可以使用Xposed框架JustTrustMe模块或者使用Frida等动态插桩工具Hook掉证书验证逻辑。对于iOS可能需要越狱后使用SSL Kill Switch等工具。这属于移动安全测试的进阶内容需要一定的逆向工程基础。App使用了非标准端口或协议Burp默认主要处理HTTP/HTTPS。如果App使用WebSocket、纯TCP Socket或自定义协议需要在Burp的Proxy - Options - Proxy Listeners - Edit - Request handling中勾选Support invisible proxying (enable only if needed)并可能需要在Project options - TLS中配置SSL到非标准端口的传递。Android高版本限制如前所述针对API24的App用户证书无效。除了Root后安装到系统还可以考虑使用低版本Android模拟器或者使用像“VirtualXposed”这样的免Root框架来运行目标App。4.2 常见问题速查表问题现象可能原因排查步骤与解决方案手机无法上网代理配置错误Burp未运行电脑防火墙阻止1. 检查IP和端口是否正确。2. 确认Burp监听器正在运行且绑定到正确IP。3. 暂时关闭电脑防火墙测试。Burp中看不到任何请求手机代理未生效流量未走代理1. 确认手机Wi-Fi代理已保存并启用。2. 尝试关闭手机Wi-Fi再重新打开。3. 在手机浏览器访问http://burp看是否能打开Burp证书页面。只能抓到HTTPHTTPS全是CONNECT手机未安装/未信任Burp CA证书1. 确认证书已正确安装到手机。2. iOS需在“证书信任设置”中开启完全信任。3. Android高版本需考虑系统证书或低API目标。某些App提示“网络错误”或“证书错误”App使用了SSL Pinning尝试使用绕过证书绑定的工具如JustTrustMe。注意对银行、支付类App进行此操作可能违反用户协议。电脑IP地址发生变化路由器DHCP租期到期重新ipconfig获取新IP并更新手机上的代理配置。建议在路由器中为电脑设置静态IP分配DHCP保留。iOS安装证书时提示“描述文件下载失败”网络问题或Burp代理未正确拦截1. 确保手机能通过代理访问http://电脑IP:8080。2. 尝试用Safari浏览器访问。4.3 提升抓包效率的技巧范围设置Target Scope在Burp的Target - Scope中添加你只关心的域名或IP范围。然后在Proxy - Options - Intercept Client Requests中勾选And URL Is in target scope。这样Burp只会拦截你设定范围内的流量避免被无关的App更新、广告请求刷屏。关闭拦截Intercept默认情况下Proxy的Intercept是开启的每个请求都会暂停等待你操作。对于初期配置测试可以将其设为Intercept is off让流量直接通过并记录在HTTP history中配置完成后再开启拦截进行具体测试。使用历史记录过滤HTTP history页面右上角有强大的过滤器Filter可以根据域名、状态码、请求方法、文件类型等快速定位你关心的请求。手机端辅助工具对于Android可以安装Packet Capture这类App它可以在手机内部创建一个VPN通道来捕获所有流量有时可以作为Burp的补充或替代用于快速确认手机是否真的有网络流量发出。5. 安全与合规须知最后也是最重要的一点技术是把双刃剑。仅用于授权测试务必只在你自己拥有完全控制权的设备、或已获得明确书面授权的测试目标上使用Burp Suite进行抓包和分析。未经授权对他人的网络、应用进行拦截和攻击是违法行为。尊重隐私抓取到的数据包可能包含敏感信息。请妥善处理这些数据不要泄露或用于非法用途。理解风险在个人手机上安装外部CA证书存在一定安全风险因为它理论上允许任何使用该证书的中间人解密你的HTTPS流量。测试完成后建议及时在手机设置中删除已安装的Burp CA证书。整个配置过程从原理理解到实操排错是安全测试工程师的入门必修课。它看似繁琐但每一步都有其必然性。多配置几次把每个环节的“为什么”都搞清楚以后无论遇到什么奇怪的网络环境或应用你都能快速找到突破口。我最开始的时候也在防火墙和证书安装上卡了好几个小时但现在这套流程已经肌肉记忆五分钟就能搭好环境。希望这份详细的指南能帮你少走些弯路。