
1. 项目概述为什么需要专门捕获APP与小程序的数据包在移动互联网时代应用APP和小程序已经成为我们获取服务、进行交互的主要入口。作为一名安全测试工程师或是对技术原理充满好奇的开发者你是否曾好奇过当你点击手机屏幕上的一个按钮时背后究竟发生了多少次网络通信这些通信里又携带了哪些关键信息比如登录时的账号密码是以何种形式传输的一个看似简单的查询请求其API接口的设计是否存在逻辑漏洞要回答这些问题最直接有效的方法就是“抓包”——捕获并分析应用与服务器之间的网络数据包。在众多抓包工具中Burp Suite无疑是Web安全测试领域的“瑞士军刀”。然而很多初学者在尝试用它来抓取手机APP或微信小程序的数据包时往往会遇到各种阻碍数据包根本抓不到、看到的全是乱码、或者SSL证书问题导致连接中断。这并非Burp Suite不好用而是移动端抓包的环境配置和思路与传统的浏览器抓包有所不同。移动应用为了安全和性能通常会采用更严格的网络策略比如证书绑定Certificate Pinning、非标准端口、或使用自定义的二进制协议。因此一份针对移动端特别是APP和小程序的、详尽的Burp Suite实战指南显得尤为重要。本指南将不仅仅告诉你“怎么点”更会深入解释“为什么这么做”以及当常规方法失效时你该如何思考和应对。无论你是想进行安全审计、逆向分析API接口、调试自己的应用还是单纯想学习网络协议这篇指南都将为你提供从环境搭建到实战分析的一站式解决方案。2. 核心环境配置与代理设置成功抓包的第一步是建立一个稳定的数据流转通道让手机的所有网络流量都经过你安装了Burp Suite的电脑。这就像在手机通往互联网的道路上设立了一个检查站所有进出的“车辆”数据包都需要在这里接受检查和记录。2.1 Burp Suite代理服务端配置首先我们需要在电脑上启动并配置Burp Suite让它扮演好“检查站”的角色。启动与监听打开Burp Suite社区版或专业版均可进入Proxy-Options标签页。这里会有一个默认的代理监听器Proxy Listener通常监听本机127.0.0.1的8080端口。这个监听器是为浏览器准备的。对于手机抓包我们需要确保它监听的是电脑的局域网IP地址这样手机才能找到它。关键配置点绑定地址Bind to address将监听地址从Loopback only改为All interfaces或直接指定你电脑的局域网IP如192.168.1.100。这是最关键的一步它允许网络中的其他设备你的手机连接到这个代理。端口Port8080是默认端口如果冲突可以改为其他端口如8888。记住这个端口号手机端会用到。证书处理为了解密HTTPS流量Burp Suite会动态生成证书。稍后我们需要在手机上安装这个证书。在Proxy-Options的最下方你可以导出CA证书CA Certificate保存为cacert.der文件后续方便安装。注意务必关闭电脑的防火墙或者为Burp Suite使用的端口如8080添加入站规则否则手机无法连接到代理。2.2 移动设备客户端代理配置接下来我们需要告诉手机“请把你的所有网络请求都发送到那台电脑的8080端口去。”连接同一网络确保你的手机和运行Burp Suite的电脑连接在同一个Wi-Fi网络下。这是它们能够通信的前提。配置手机代理iOS进入设置-无线局域网- 点击当前连接的Wi-Fi右侧的i图标 - 滑动到最下方找到配置代理- 选择手动。在服务器栏填入电脑的局域网IP地址在端口栏填入Burp Suite的监听端口如8080。Android进入设置-WLAN- 长按当前连接的Wi-Fi网络 - 选择修改网络- 展开高级选项- 将代理设置为手动。同样填入电脑的IP和代理端口。配置完成后你可以在手机上用浏览器访问http://burp这个特殊地址。如果配置正确浏览器会显示“Burp Suite Community Edition”的欢迎页面这证明代理通道已经打通。2.3 安装Burp Suite CA证书仅仅建立代理还不够对于加密的HTTPS流量我们需要在手机上安装Burp Suite的CA证书让它成为手机信任的“证书颁发机构”这样Burp Suite才能对加密流量进行解密和重新加密即中间人攻击原理。下载证书在手机浏览器中访问http://burp/cert。这是一个Burp Suite提供的便捷下载链接。点击下载证书文件通常为cacert.der。安装证书iOS下载后系统会提示“已下载描述文件”。进入设置-通用-VPN与设备管理你会看到“已下载的描述文件”点击它并选择安装。安装后还需要进入设置-通用-关于本机-证书信任设置找到刚刚安装的“PortSwigger CA”证书并完全信任它。这一步至关重要否则iOS系统仍会拒绝不信任CA签发的证书导致HTTPS连接失败。Android不同版本路径略有差异。通常下载后进入设置-安全或更多安全设置 -加密与凭据-安装证书-CA证书然后找到下载的证书文件进行安装。Android 7.0及以上版本对证书信任有更严格限制用户安装的CA证书默认不信任用于安全连接即APP这为后续抓包带来了挑战我们会在“进阶绕过”章节详细讨论。完成以上三步基础抓包环境就搭建好了。此时打开手机上的浏览器访问一个HTTPS网站如https://example.com然后在Burp Suite的Proxy-Intercept标签页确保Intercept is on你应该能看到捕获到的明文HTTP/HTTPS请求。如果看到的是CONNECT隧道请求或乱码请检查证书是否安装并完全信任。3. 实战抓包针对APP与小程序的特有挑战当基础环境配置妥当后你就可以开始尝试抓取目标APP或小程序的数据包了。但很快你会发现事情并非总是一帆风顺。3.1 抓取普通APP流量对于大多数未做特殊安全加固的APP配置好代理和证书后其HTTP/HTTPS流量就能被Burp Suite正常捕获。你可以打开目标APP进行登录、浏览、提交等操作同时在Burp Suite的HTTP history标签页中观察所有流经的请求和响应。实操要点过滤与搜索APP的流量可能非常庞杂包含了许多图片、字体、统计SDK等无关请求。善用Filter功能通过域名、关键词、文件类型等进行过滤快速定位到核心的API请求。关注关键操作重点捕获登录、注册、修改信息、支付、提交订单等涉及敏感操作和业务逻辑的请求。分析请求结构查看请求的URL、方法GET/POST/PUT/DELETE、头部Headers和主体Body。特别注意Authorization、Cookie、Token等认证字段以及Content-Type如application/json,application/x-www-form-urlencoded。3.2 抓取微信小程序流量微信小程序的抓包原理与APP类似但其运行在微信这个“超级APP”的沙箱环境中有几点需要特别注意代理生效微信的网络请求默认会遵循系统的代理设置。因此配置好手机全局代理后打开小程序进行操作流量理论上应该能经过Burp。域名校验小程序后台配置了合法的请求域名白名单。如果你尝试在Burp中修改请求指向其他域名小程序会报错“不在以下 request 合法域名列表中”。但这不影响你捕获和分析它向合法域名发送的原始请求。证书问题这是最常见的障碍。微信对证书的校验非常严格。即使你在系统层面安装了Burp的CA证书微信也可能因其自身的证书链校验而拒绝连接表现为小程序一直加载或提示网络错误。解决方案Android可以尝试将Burp的CA证书安装到系统根证书目录。这通常需要手机已获取Root权限。将cacert.der证书转换为PEM格式openssl x509 -inform DER -in cacert.der -out cacert.pem然后重命名为系统特定的哈希名如c8750f0d.0并放入/system/etc/security/cacerts/目录修改权限为644。这样Burp证书就被系统完全信任微信也会认可。iOS在未越狱的情况下绕过微信的证书绑定非常困难。一种可行的思路是使用第三方工具如SSL Kill Switch 2需越狱或通过动态调试工具如Frida来Hook掉证书验证的逻辑。但这已属于移动安全逆向的进阶范畴。实操心得对于大多数安全测试和调试场景如果目标小程序不是强对抗型可以优先尝试在Android模拟器如夜神、雷电上进行抓包。模拟器通常更容易获取Root权限方便安装系统证书。此外微信开发者工具本身也提供了网络请求调试面板对于自己开发的小程序调试而言这是最直接的工具。3.3 处理无法抓包的情况当你发现APP或小程序的流量没有出现在Burp中时可以按照以下思路排查检查代理连通性手机浏览器访问http://burp是否正常如果不通检查电脑IP、端口、防火墙。检查HTTPS解密访问一个简单的HTTPS网站如https://example.com能否在Burp中看到明文如果不能检查手机证书安装与信任状态尤其是iOS的“完全信任”。APP使用非HTTP协议有些APP可能使用WebSocket、gRPC、或自定义的TCP/UDP协议。Burp Suite对WebSocket有较好支持需专业版但对其他二进制协议可能需要用到Wireshark等更底层的抓包工具。证书绑定Certificate Pinning这是最专业的防御手段。APP将合法的服务器证书或公钥硬编码在代码中或通过其他方式校验拒绝任何其他CA包括Burp签发的证书。此时系统安装Burp证书也无济于事。代理检测APP在启动时会检测是否设置了系统代理或VPN如果发现则拒绝发送网络请求或切换到其他通信方式。4. 进阶技巧绕过证书绑定与代理检测面对证书绑定和代理检测这些“硬骨头”我们需要更高级的工具和方法。4.1 使用Android模拟器与Xposed/JustTrustMe对于Android平台一个高效的组合方案是Android模拟器 Root权限 系统证书安装 禁用证书绑定的Xposed模块。环境搭建安装夜神、雷电等Android模拟器并在模拟器设置中开启Root权限。安装系统CA证书如前所述将Burp的CA证书放入模拟器的系统证书目录。这步完成后大多数HTTPS流量应该可以解密。对抗证书绑定对于仍然无法解密的APP通常表现为“网络错误”或“证书验证失败”很可能是使用了证书绑定。我们可以使用Xposed框架及其模块来绕过。在已Root的模拟器中安装Xposed框架或EdXposed、LSPosed。安装SSLUnpinning或JustTrustMe这类Xposed模块。它们的工作原理是Hook住APP用于证书验证的关键函数如checkServerTrusted使其直接返回“验证成功”从而绕过绑定检查。对抗代理检测有些APP会通过System.getProperty(“http.proxyHost”)等方式检测代理。同样可以使用ProxyDroid这类工具或Xposed模块如HideMyApplist配合特定规则来隐藏代理设置或者使用VPN模式转发的工具如Packet Capture来间接抓包。4.2 使用Frida进行动态注入Frida是一个强大的动态代码插桩工具它可以在APP运行时注入自己的脚本修改其逻辑。对于证书绑定和代理检测我们可以编写或使用现成的Frida脚本来实现绕过。基本原理通过Frida Hook住证书验证相关的类和方法如Android的TrustManager、OkHttp的CertificatePinner、iOS的NSURLSession等让它们直接返回成功或者替换掉原有的证书校验逻辑。操作步骤在电脑上安装Frida和frida-tools。在手机上安装frida-server需要Root或越狱。编写或下载针对证书绑定的Frida脚本例如一个通用的脚本会尝试Hook数十个常见的验证方法。在电脑上运行命令frida -U -f com.target.app -l bypass_ssl_pinning.js启动APP并注入脚本。这种方法比Xposed更灵活无需修改系统框架但需要对移动端开发和逆向有一定了解。4.3 使用低版本系统或定制ROM有时最简单的方法是最有效的。一些较新的安全特性如Android 7.0的用户证书限制在旧版本系统中不存在。如果测试条件允许可以尝试在Android 6.0或更低版本的设备或模拟器上进行测试这样用户安装的CA证书默认对所有应用生效能解决大部分证书问题。5. 数据包分析、重放与漏洞挖掘成功捕获数据包只是第一步从海量数据中提炼出有价值的信息并发现潜在的安全问题才是核心目标。5.1 初筛与定位关键请求Burp Suite的Target-Site map和Proxy-HTTP history会记录所有流量。你需要按域名/路径排序快速找到目标主域名下的所有请求。关注状态码4xx客户端错误和5xx服务器错误的请求可能隐藏着边界条件漏洞。关注数据量请求体或响应体特别大或特别小的可能值得深入查看。使用搜索功能搜索“password”、“token”、“idcard”、“mobile”等关键词快速定位敏感信息传输点。5.2 深度分析请求与响应选中一个关键请求如用户登录在Proxy-HTTP history中右键选择Send to Repeater。Repeater模块允许你手动修改并重新发送请求是测试漏洞的利器。分析维度请求行检查URL中是否存在参数如/user/delete?id123思考ID是否可遍历。请求头分析Cookie、Token的生成和刷新机制。User-Agent是否可以伪造X-Forwarded-For等IP头是否可信请求体JSON格式查看键值对的结构。尝试修改数值类型如数字改字符串、正数改负数、超出范围、或注入特殊字符。表单格式同样测试参数是否可篡改。二进制/多部分上传文件功能点测试绕过文件类型检查改Content-Type、加文件头、双扩展名等。响应关注状态码、响应时间、返回的数据内容。错误信息是否过于详细泄露路径、SQL语句返回的数据是否包含了本不该给当前用户的信息如他人资料5.3 常见漏洞测试实战利用Burp Suite的Repeater和Intruder用于自动化爆破和模糊测试可以对发现的可疑点进行深入测试。越权漏洞水平越权在修改个人资料、查看订单的请求中尝试将请求中的用户ID参数如user_id10001修改为其他用户的ID如user_id10002看是否能操作或查看他人数据。垂直越权普通用户登录后捕获一个管理员功能的请求通常URL或参数有特征尝试用普通用户的身份去重放该请求看是否能执行管理员操作。业务逻辑漏洞重复提交在支付、领取优惠券等关键业务环节拦截成功请求连续重放多次看是否会造成多次扣款或重复发放。条件竞争使用Intruder的Sniper或Pitchfork模式以多线程同时发送数十个相同的请求如抢购商品观察业务处理结果。参数篡改在商品购买请求中尝试修改价格参数price100-price0.01、数量参数quantity1-quantity-1或总价参数观察后端校验是否完整。输入验证漏洞SQL注入在任何接收用户输入的参数后尝试添加、、or 11--等 payload观察响应是否有数据库报错信息或结果异常。XSS在搜索框、留言板等会回显到页面的地方提交 然后查看响应或后续页面是否弹窗。命令/代码注入在可能调用系统命令的功能点如IP查询、文件上传尝试拼接; whoami、| dir、$(id)等命令。信息泄露检查JS文件、API接口响应、错误页面中是否包含内部IP、邮箱、数据库字段名、API密钥、云存储路径等敏感信息。5.4 使用Intruder进行自动化测试对于需要批量测试的场景如爆破验证码、遍历ID、模糊测试参数Intruder模块必不可少。定位变量将请求发送到Intruder在Positions标签页清除所有自动标记然后手动选择你想攻击的参数值点击Add §将其标记为变量如username§admin§。选择攻击类型Sniper一个变量一个字典逐个替换测试。适用于测试单个参数。Battering ram多个变量使用相同的字典同时替换。适用于测试用户名和密码相同的情况。Pitchfork多个变量使用不同的字典一一对应进行测试。适用于测试用户名和密码字典分离的情况。Cluster bomb多个变量使用不同的字典进行笛卡尔积组合测试。适用于暴力破解登录。配置Payload在Payloads标签页为每个变量设置Payload集合可以是简单列表、数字范围、字典文件等。开始攻击与结果分析点击Start attackBurp会发起大量请求。你需要根据响应长度、状态码、返回内容等信息人工筛选出异常的响应。例如在爆破目录时响应长度与其他明显不同的可能就是存在的目录或文件。6. 疑难排查与实战经验分享即使按照指南操作实践中仍会遇到各种“坑”。这里分享一些常见问题的排查思路和实战经验。6.1 常见问题速查表问题现象可能原因排查与解决方案手机无法访问http://burp1. 电脑防火墙未放行端口。2. 电脑与手机不在同一局域网。3. Burp代理监听地址错误。1. 关闭防火墙或添加端口规则。2. 确认手机和电脑连接同一Wi-Fi。3. 检查BurpProxy Listeners绑定到All interfaces或正确IP。HTTPS网站显示连接错误/证书警告1. 手机未安装Burp CA证书。2. 证书已安装但未完全信任iOS。3. APP使用了证书绑定。1. 重新访问http://burp/cert下载安装。2.iOS务必在证书信任设置中启用完全信任。3. 尝试使用模拟器系统证书Xposed/JustTrustMe或使用Frida脚本绕过。微信小程序无法加载/白屏1. 微信检测到代理并拒绝连接。2. 小程序自身证书绑定严格。1. 尝试在Wi-Fi设置中配置代理而非使用全局代理APP。2.最佳实践在已Root的Android模拟器中将Burp证书安装为系统证书成功率最高。Burp能看到CONNECT请求但无后续HTTP流量这是HTTPS隧道建立请求说明代理通畅。无后续流量是因为1. 客户端APP没有信任Burp的CA证书。2. 客户端使用了证书绑定。同上重点解决证书信任问题。数据包响应是乱码/加密1. 使用了自定义的二进制协议或加密。2. 响应体被Gzip等压缩。1. 尝试在Burp的Proxy-Options-Response Modification中启用 “解压压缩内容”。2. 对于自定义加密需要逆向APP分析其加解密算法这超出了抓包范畴。Intruder攻击速度很慢默认情况下Burp的Intruder是单线程的。在Intruder-Options中调整Number of threads线程数和Throttle请求间隔以提升速度。注意不要对生产环境造成DoS攻击。6.2 实战心得与技巧环境隔离专门准备一台测试手机或模拟器用于安装各种测试工具Xposed、Frida等避免影响日常使用的主手机。分步验证遇到抓包失败遵循“网络连通性 - 代理设置 - 证书安装 - 应用层对抗”的顺序一步步排查不要一开始就想着用最复杂的方法。善用过滤器与注释在Burp的HTTP history中对重要的请求右键添加注释Add comment并利用Filter中的Show only commented items功能快速回顾关键流量。对比分析在进行漏洞测试时准备两个Burp窗口或标签页一个用于发送正常请求一个用于发送恶意Payload对比两者的响应差异能更快发现异常。注意法律与授权所有抓包和测试行为必须在你有明确授权的范围内进行。只测试自己拥有或获得书面授权测试的应用、网站。未经授权的测试可能违反《计算机信息网络国际联网安全保护管理办法》等相关法律法规。数据包保存在测试过程中定期将Site map或HTTP history中的内容保存为Burp项目文件.burp或导出为XML/HTML报告便于后续分析和报告撰写。抓包本身是一项基础技能但其背后蕴含的是对网络协议、应用交互、安全边界的深刻理解。从成功捕获第一个数据包到能够系统性地分析业务逻辑、挖掘潜在漏洞这中间需要大量的实践和思考。希望这份指南能成为你移动端安全测试之旅的一块坚实垫脚石。记住工具是死的思路是活的遇到问题多搜索、多实验、多总结你的经验库就会越来越丰富。