小程序抓包异常问题排查报告
而Fiddler、Charles(俗称“茶壶”)等其他抓包软件可正常捕获该小程序的域名及流量,但将捕获的流量转发至Burp、Yakit(渗透测试工具)用于渗透测试时,仍出现手机端网络错误,且初期未查看小程序vConsole调试面板,直至排查后期才发现vConsole的Network面板中所有请求全部报红,响应信息显示“Your browser sent a request that this se
一、问题现象
使用Burp Suite(简称Burp)对目标钱庄小程序进行抓包时,无法正常捕获流量,手机端始终显示网络错误;而Fiddler、Charles(俗称“茶壶”)等其他抓包软件可正常捕获该小程序的域名及流量,但将捕获的流量转发至Burp、Yakit(渗透测试工具)用于渗透测试时,仍出现手机端网络错误,且初期未查看小程序vConsole调试面板,直至排查后期才发现vConsole的Network面板中所有请求全部报红,响应信息显示“Your browser sent a request that this server could not understand”,无法正常开展测试。
二、排查过程
-
初步怀疑:手机Root权限问题:最初排查时,推测抓包异常是由于本人使用的安卓设备(OPPO Reno z,安卓11)未Root导致。因已知安卓7及以上系统默认只信任系统证书,不信任用户证书,而抓包软件(Charles、Burp)的证书需安装在系统目录才能正常抓包,若未Root,证书仅能安装在用户目录,可能导致抓包失败。同时观察到其他同事(安卓、苹果设备)均未Root却能正常抓包,暂时保留该怀疑,进一步验证。
-
Root设备验证测试:启用本人已Root的红米4A(刷至安卓9)进行测试,通过Charles抓包后转发至Burp,可正常捕获小程序流量、开展渗透测试,但该设备配置老旧、运行卡顿,无法满足长期测试需求,因此放弃使用该设备。
-
非Root设备Root尝试:尝试对OPPO Reno z(安卓11)进行Root操作,用于替代卡顿的红米4A,但因该设备需申请官方深度测试权限,对应的申请APP无法安装,多种硬刷方法均失败,最终确定无法完成Root,排除Root权限为核心问题。
-
多抓包工具交叉验证:既然排除Root问题,便使用Fiddler、Charles两种抓包工具对OPPO Reno z进行测试,发现两种工具均能正常捕获钱庄小程序的域名及流量,说明设备本身、小程序网络通道无异常,问题集中在“抓包工具转发至渗透测试工具(Burp、Yakit)”的环节。
-
渗透测试工具替换验证:最初怀疑是Burp本身存在问题,将Charles捕获的流量转发至另一渗透测试工具Yakit,发现仍出现相同的错误提示(“Your browser sent a request that this server could not understand”),说明问题并非Burp专属,而是渗透测试工具的共性配置问题。
-
错误定位:小程序vConsole排查:为进一步明确错误原因,打开小程序的vConsole调试面板,查看Network模块,发现所有请求均爆红,响应信息均为上述错误提示,结合此前“普通抓包工具可抓、渗透工具不可抓”的现象,排除小程序本身的请求异常,推测是渗透工具与小程序服务端的通信协议不兼容。
-
渗透工具配置检查:重点检查Burp的配置,进入Burp Suite的“Network”→“TLS”设置,发现“Protocol”列表中“TLSv1.3”处于勾选状态;结合网络资料查询,此类错误常与HTTP协议版本、TLS协议版本不兼容相关,因此锁定TLSv1.3为可疑配置。

-
配置验证与问题复现:
-
取消Burp中“TLSv1.3”的勾选,仅保留TLSv1.2及以下协议版本,将Charles捕获的流量转发至Burp,小程序抓包恢复正常,可捕获完整请求和响应,渗透测试可正常开展。
-
重新勾选Burp中的“TLSv1.3”,问题立即复现,小程序请求再次爆红,出现相同的错误提示。
-
三、根因分析
目标钱庄小程序服务端不支持TLSv1.3协议,而Burp、Yakit等渗透测试工具默认勾选了TLSv1.3协议。当抓包工具(Charles、Fiddler)将捕获的小程序流量转发至这些渗透测试工具时,渗透测试工具会以TLSv1.3协议与小程序服务端进行握手,导致握手失败,服务端无法识别客户端发送的请求,从而返回“Your browser sent a request that this server could not understand”错误,无法正常抓包和开展渗透测试;其中Yakit工具因未找到TLS协议配置入口,暂无法解决该兼容问题。
补充说明:Fiddler、Charles等普通抓包工具可正常抓包,是因为其默认适配小程序服务端支持的TLS协议版本(TLSv1.2及以下),无需额外配置即可完成与服务端的正常通信,因此不会出现协议不兼容问题。
四、解决方案
-
针对Burp Suite:进入“Network”→“TLS”设置,取消勾选“TLSv1.3”协议,仅保留TLSv1.2及以下协议版本,保存配置后,即可正常接收抓包工具转发的流量,开展渗透测试。

-
针对Yakit工具:经排查,暂未找到该工具中TLS协议(网络协议)的相关配置入口,因此目前暂无针对Yakit工具的对应解决方案,暂不建议使用Yakit工具转发该小程序流量开展渗透测试。
-
若后续更换其他渗透测试工具,需优先检查其TLS协议版本配置,确保未启用TLSv1.3协议,避免出现相同的兼容问题。
五、验证结果
修改Burp的TLS协议配置(取消TLSv1.3勾选)后,小程序所有网络请求可正常通过抓包工具转发至Burp,响应状态码恢复正常,无任何错误提示;可完整捕获请求体、响应体,渗透测试工作可顺利开展。因Yakit工具未找到TLS协议配置入口,暂未验证其配置修改后的效果,暂不建议使用该工具处理该小程序相关渗透测试。
六、排查启发
本次问题排查耗时两天,核心启发在于:排查抓包及网络相关异常时,切勿局限于单一工具或单一环节,需多方位、多角度追踪问题根源,避免陷入思维误区。本次排查初期,我始终将注意力集中在Burp抓包失败、手机端显示网络错误这两个点上,反复排查Burp配置和手机权限/状态,却忽略了小程序本身的调试入口——vConsole。事实上,即便Burp无法正常捕获流量,vConsole的Network面板中仍有完整的请求记录,只是我直至排查后期才幡然醒悟,查看该面板后,才发现“Your browser sent a request that this server could not understand”的核心错误提示,进而锁定TLS协议不兼容的问题。这也提醒我,后续排查类似问题时,需兼顾抓包工具、终端设备、应用本身调试面板等多个维度,全面收集错误信息,才能更高效地定位问题、解决问题,避免浪费过多时间在单一排查方向上。
(注:文档部分内容可能由 AI 生成)
更多推荐



所有评论(0)