
1. 项目概述为什么要在真机上用Burp抓包在移动应用安全测试和逆向分析领域抓包是第一步也是最关键的一步。很多刚入门的朋友可能习惯在模拟器里操作觉得方便。但干了这么多年我越来越倾向于直接在真机上进行抓包测试。原因很简单真实环境才能暴露真实问题。模拟器里的网络环境、系统库、证书处理逻辑甚至APP自身的网络请求策略都可能和真机有微妙但关键的差异。你费半天劲在模拟器上配好了代理抓到了包结果一到用户手机上发现请求根本走不通或者证书不被信任那前面的工作就白费了。特别是当你需要测试微信小程序、或者一些对运行环境有强校验的APP时真机抓包几乎是唯一的选择。微信小程序的网络请求封装在微信客户端内部其证书校验逻辑和普通的浏览器或APP不同在模拟器上复现微信环境本身就非常困难。而Burp Suite作为行业标杆的Web漏洞扫描和代理工具其强大的拦截、修改、重放功能在移动端测试中同样不可或缺。把Burp架设在你的电脑上让手机流量经过它你就能像分析网站一样清晰地看到每一个API请求和响应发现潜在的安全漏洞。所以这篇教程的核心就是手把手带你完成从零开始在Windows或macOS电脑上配置Burp Suite并成功让Android和iOS真机的网络流量包括普通APP和微信小程序流经Burp进行抓包的全过程。我会把每一步的原理、可能遇到的坑以及我踩过之后总结的解决方案都讲清楚目标是让你看完就能动手动手就能成功。2. 环境准备与核心工具解析工欲善其事必先利其器。在开始抓包之前我们需要把环境和工具准备好。这个过程看似繁琐但每一步都关系到后续操作的成败。2.1 Burp Suite的安装与基础代理配置首先你需要一台电脑作为代理服务器。操作系统Windows或macOS均可Linux也行但考虑到图形化界面和驱动的通用性前两者更友好。Burp Suite有社区版免费和专业版收费对于抓包这个核心功能社区版完全够用。你可以从PortSwigger官网下载最新版本。安装完成后首次运行Burp它会让你选择临时项目还是永久项目这个随意不影响核心功能。关键步骤在于配置代理监听器。打开代理监听进入Proxy-Options标签页。你会看到一个Proxy Listeners列表。默认情况下Burp会监听127.0.0.1本地回环地址的8080端口。这个配置只能抓取本机浏览器的流量对手机无效。添加或编辑监听器我们需要让Burp监听电脑的局域网IP地址这样同一网络下的手机才能找到它。点击默认监听器右边的Edit或者直接点击Add。绑定地址这是最关键的一步。你不能只选Loopback only。需要选择All interfaces或者从下拉列表中选择你电脑在局域网中的具体IP地址如192.168.1.100。我个人的习惯是选All interfaces省事。端口可以沿用8080也可以改成其他不常用的端口比如8088、8888等只要不和系统已有服务冲突就行。证书保持默认即可Burp会使用它自生成的CA证书来对HTTPS流量进行解密。注意很多新手在这一步会忽略防火墙。Windows Defender防火墙或第三方安全软件可能会阻止Burp对外的监听。当你配置好监听器后如果手机连不上请务必检查防火墙设置确保对应端口如8080的入站规则是允许的。配置完成后Proxy Listeners列表中应该有一个状态为Running的监听器其地址是你电脑的局域网IP端口是你设置的端口。记下这个IP:端口组合例如192.168.1.100:8080下一步手机配置要用。2.2 电脑与手机的网络环境搭建要让手机流量走到电脑的Burp前提是它们必须在同一个局域网内。最常见也最稳定的方式就是使用同一个Wi-Fi路由器。将电脑和手机连接到同一个Wi-Fi确保你的电脑最好用有线连接更稳定和待测试的手机都连接到了同一个无线路由器下。获取电脑的局域网IP地址Windows在命令提示符cmd中输入ipconfig找到你正在使用的网络适配器通常是以太网或WLAN下面的IPv4 地址就是你的局域网IP。macOS/Linux在终端中输入ifconfig或ip addr找到对应的网卡查看inet地址。验证网络连通性在电脑上关闭防火墙或放行端口后可以在手机浏览器里尝试访问http://电脑IP:Burp端口。例如http://192.168.1.100:8080。如果能看到Burp Suite的欢迎页面一个写着“Burp Suite Community Edition”的简单页面说明网络通路是OK的。如果看不到请检查电脑防火墙、Burp监听器配置以及Wi-Fi连接。这里有个实操心得尽量避免使用电脑开启的“移动热点”功能让手机连接。虽然这样也能组成局域网但Windows或macOS自带的移动热点功能有时在网络转发和DNS处理上会有奇怪的问题导致代理不稳定或某些域名无法解析。使用一个独立的路由器是最稳妥的方案。3. Android真机抓包全流程详解Android系统相对开放抓包流程比较标准但不同版本和厂商定制系统仍有细节差异。我们分步拆解。3.1 配置手机代理这是让手机流量转向Burp的关键一步。进入手机的设置-WLAN或Wi-Fi。长按当前已连接的Wi-Fi网络选择修改网络或高级选项。将代理设置为手动。代理服务器主机名填写你电脑的局域网IP地址如192.168.1.100。代理服务器端口填写Burp中配置的端口如8080。保存设置。此时手机所有的HTTP流量非系统应用都会尝试发送到你电脑的Burp。你可以打开手机浏览器访问一个HTTP网站注意是http不是https看看Burp的Proxy-HTTP history里有没有捕获到请求。如果能抓到说明代理配置成功。3.2 安装Burp的CA证书以解密HTTPS现代APP和网站基本都使用HTTPS。如果只配置代理不安装证书Burp只能看到一堆加密的乱码。Burp作为中间人MitM需要对HTTPS连接进行解密这就需要手机信任Burp自己生成的CA证书。从Burp导出证书在电脑的Burp中打开浏览器确保浏览器代理已设置为Burp访问http://burpsuite或你电脑的IP端口地址http://电脑IP:端口。在页面右上角点击CA Certificate链接将证书文件通常名为cacert.der下载到电脑本地。将证书传输到手机你可以通过数据线、微信文件传输助手、QQ、或者局域网共享文件夹的方式把这个证书文件发送到手机上。建议放在手机存储的根目录或Download文件夹方便查找。在Android手机上安装证书Android 7.0 (Nougat) 及以下相对简单。进入设置-安全-从存储设备安装或类似选项找到你传输过来的.der或.cer文件点击安装。系统会要求你为证书命名如“Burp CA”并可能需要你设置锁屏密码如果之前没设过。Android 8.0 (Oreo) 及以上这是分水岭。由于网络安全配置的加强用户安装的CA证书默认不再被APP信任系统级信任和用户级信任分离。你需要多一步操作 a. 按照上述路径安装证书到“用户凭据”。 b. 安装后进入设置-安全-加密与凭据-用户凭据你应该能看到名为“Burp CA”的证书。但这还不够。 c. 为了让APP特别是目标测试APP信任这个证书你通常需要将APP的网络安全配置networkSecurityConfig进行修改或者将手机进行Root/刷入Magisk模块。对于测试人员更实用的方法是使用Android模拟器如夜神、雷电并安装老版本系统如Android 7.1或者使用已Root的真机。对于非Root手机可以尝试用VirtualXposed、太极等免Root框架结合JustTrustMe模块来绕过证书校验但这对于某些加固的APP可能失效。重要提示在Android高版本上即使安装了Burp证书抓取像“抖音”、“淘宝”这类大型APP的包依然可能失败因为它们使用了SSL Pinning证书绑定技术。对付SSL Pinning需要更高级的反编译和Hook技术这超出了基础抓包教程的范围但你需要知道这个瓶颈的存在。3.3 抓包实战与验证完成代理和证书配置后就可以开始抓包了。确保Burp的Proxy-Intercept是Intercept is on状态如果你想手动拦截修改请求或Intercept is off状态如果你只想记录历史流量。在手机上打开任意APP或者访问网页。回到电脑的Burp查看Proxy-HTTP history标签页。你应该能看到源源不断的HTTP/HTTPS请求记录。尝试抓取一个HTTPS请求比如APP内的一个API调用。如果请求详情是明文你可以看到JSON、XML等参数说明证书安装成功HTTPS解密正常。如果显示的是Client SSL handshake failed或一堆乱码说明证书未被APP信任需要按上述方法解决证书校验问题。一个针对微信小程序的特殊技巧微信小程序本质上运行在微信客户端内。抓小程序的包其实就是抓微信客户端的包。因此上述配置对微信同样有效。打开微信进入一个小程序进行操作然后在Burp的历史记录里筛选Host包含小程序相关域名的请求即可。需要注意的是微信自身也有较强的网络层保护在高版本Android上也可能遇到证书校验问题解决方法同上。4. iOS真机抓包全流程详解iOS系统以封闭和安全著称其抓包流程与Android有显著不同但逻辑清晰一旦配置成功非常稳定。4.1 配置iOS设备的代理这一步与Android类似。进入设置-无线局域网。点击当前连接的Wi-Fi右侧的i信息图标。滑动到最底部找到配置代理选择手动。服务器填写电脑的局域网IP地址。端口填写Burp的监听端口。点击右上角存储。4.2 在iOS上安装Burp的CA证书这是iOS抓包的核心难点也是必须精确操作的一步。导出并传输证书同样从Burp的CA Certificate页面下载证书文件。但iOS要求证书必须是.cer格式或.pem格式。Burp默认下载的是.der但iOS也支持。将证书文件发送到iPhone上可以通过邮件附件发送给自己然后在iPhone的邮件App中点击下载或者使用AirDrop隔空投送也可以上传到iCloud Drive或任何你在iPhone上能访问的网盘。安装描述文件在iPhone上找到证书文件并点击它。系统会弹出提示告诉你“此网站正尝试下载一个配置描述文件。您要允许吗”点击允许。在设置中完成安装下载完成后打开设置应用你应该能在顶部看到已下载描述文件的提示点击进入。或者直接进入设置-通用-VPN与设备管理在“已下载的描述文件”部分找到它。点击这个描述文件然后点击右上角的安装。可能会要求你输入锁屏密码。启用完全信任这是最关键且最容易遗漏的一步。安装完描述文件后证书并没有被完全信任。你需要进入设置-通用-关于本机-证书信任设置。在这个列表里找到你刚刚安装的名为“PortSwigger CA”或类似名称的根证书将其开关打开变为绿色。系统会有一个严重警告提示你信任此证书的风险确认即可。只有完成了“证书信任设置”里的启用Burp的CA证书才能解密iOS系统中APP的HTTPS流量。很多人在iOS上抓包失败问题都出在这一步。4.3 iOS抓包特性与注意事项系统级代理iOS的代理设置是系统级的意味着所有网络请求包括Safari、App Store以及绝大多数第三方APP都会走这个代理比Android更统一。App Transport Security (ATS)iOS的ATS特性要求APP必须使用安全的HTTPS连接。这反而简化了我们的工作因为几乎所有流量都是HTTPS只要证书信任了就能解密。SSL Pinning和Android一样一些安全意识强的iOS APP如银行类、大型社交APP也会使用SSL Pinning。在非越狱的iOS设备上绕过SSL Pinning极其困难通常需要越狱后使用工具如SSL Kill Switch 2等。对于常规测试可以优先选择未启用证书绑定的APP进行练习。抓包验证配置完成后打开iPhone的Safari浏览器访问任意HTTPS网站如https://www.example.com。在Burp的HTTP history中你应该能看到清晰的请求和响应而不是SSL错误。如果能抓到说明配置成功。针对微信小程序的iOS抓包流程完全一致。配置好代理和证书后打开微信并使用小程序流量就会出现在Burp中。由于iOS系统的网络栈相对统一成功率往往比Android高。5. 微信小程序抓包专项突破微信小程序因其运行环境的特殊性抓包时需要一些额外的关注点。5.1 小程序网络请求的特点微信小程序的前端逻辑运行在微信的JavaScript引擎中网络请求是通过微信客户端发起的。这意味着请求头会带有微信特有的Header如Referer: https://servicewechat.com/...、User-Agent包含MicroMessenger等。域名白名单小程序开发时需要在后台配置服务器域名白名单。只有白名单内的域名才能发起网络请求。这有时会影响测试因为你无法让小程序直接请求你搭建的测试服务器除非你修改了小程序代码或能控制其服务器域名配置通常只有开发者能做到。证书校验微信客户端本身会进行严格的证书校验。在Android高版本上如果未正确处理用户证书会导致小程序内所有HTTPS请求失败。在iOS上只要按照前述步骤完成了“完全信任”通常没有问题。5.2 抓包策略与问题排查筛选流量在Burp的Proxy-HTTP history中使用过滤器Filter功能可以按域名筛选。小程序的请求域名通常与其业务相关观察Host头即可找到。处理证书错误如果在Android上抓小程序包遇到TLS handshake failure根本原因还是Burp的CA证书未被微信信任。解决方案回归到3.2节尝试使用低版本Android系统、Root后修改系统证书、或使用免Root框架配合绕过证书校验的模块。注意WebSocket一些实时性要求高的小程序会使用WebSocket。Burp默认可能无法很好地解析和显示WebSocket流量。你需要进入Proxy-Options-Intercept WebSocket Messages勾选相关选项并在WebSockets history标签页中查看。模拟器与真机选择对于小程序测试真机远优于模拟器。微信官方对模拟器的支持有限很多小程序功能在模拟器上无法正常运行或网络行为异常。6. 常见问题、高级技巧与安全须知即使按照教程一步步操作你也可能会遇到各种“坑”。这里我总结了一些最常见的问题和进阶技巧。6.1 抓包失败常见问题排查表问题现象可能原因解决方案手机无法访问互联网电脑代理设置错误电脑防火墙阻止Burp未运行。1. 检查手机代理的IP和端口是否正确。2. 暂时关闭电脑防火墙或添加入站规则。3. 确认Burp的Proxy Listener处于Running状态。Burp能看到HTTP请求但HTTPS请求全是乱码或SSL错误CA证书未在手机上安装或未被信任。1.Android确认证书已安装至“用户凭据”并尝试解决高版本限制Root/低版本模拟器。2.iOS确认在“设置-通用-关于本机-证书信任设置”中启用了该根证书的完全信任。特定APP如银行、支付宝无网络流量APP使用了SSL Pinning证书绑定。需要逆向分析APP使用Frida、Xposed等工具Hook掉证书校验逻辑。这属于进阶内容需单独学习。微信/小程序内网络错误微信客户端自身的证书校验严格。Android同“HTTPS请求乱码”解决方案。iOS确保证书完全信任。可尝试重启微信。抓包延迟高或请求丢失网络不稳定Burp或电脑性能不足。1. 确保电脑和手机连接同一5GHz Wi-Fi或电脑使用有线连接。2. 在Burp的Project options-Misc中可调整Streaming responses等选项或升级电脑配置。手机设置代理后电脑Burp无任何请求代理信息填写错误手机网络未使用Wi-Fi如使用了4G/5G。1. 仔细核对IP和端口。2. 确保手机当前使用的是设置了代理的那个Wi-Fi而不是移动数据。6.2 提升效率的Burp实用技巧范围设置Target Scope在Target-Scope中可以添加目标域名或IP范围。然后在Proxy-Options-Intercept Client Requests中勾选“And URL Is in target scope”。这样Burp只会拦截你关心的目标流量避免被无关的APP更新、广告请求刷屏。手机端证书安装捷径除了下载文件传输还有一个更快捷的方法在手机浏览器已设置代理中直接访问http://电脑IP:端口然后点击页面上的CA Certificate链接。iOS设备会直接引导你安装描述文件Android设备会下载证书文件然后你手动去设置里安装。使用Burp的移动端辅助工具Burp Suite提供了Burp Collaborator和Mobile Assistant等扩展可以帮助检测盲注、SSRF等漏洞在移动端测试中非常有用值得探索。6.3 法律与道德安全须知最后也是最重要的一点必须强调安全测试的合法性。仅用于授权测试本文所述技术仅适用于你拥有合法测试权限的环境例如对自己开发的APP进行安全自检。参与厂商授权的众测或漏洞奖励计划。在完全隔离的实验室环境中进行学习研究。禁止用于非法目的严禁对未授权的任何网站、APP、网络服务进行抓包、扫描、攻击等操作。这不仅是违法行为也可能对他人系统造成损害并带来严重的法律后果。保护隐私数据在测试过程中可能会接触到一些数据。即使是授权测试也应对这些数据严格保密测试完成后及时清理。抓包是安全分析的起点是一把钥匙。希望这篇超详细的教程能帮你顺利打开移动端安全测试的大门。在实际操作中遇到的具体问题往往需要结合具体情况分析多搜索、多尝试、多思考经验就是这样积累起来的。