WMPFDebugger icon indicating copy to clipboard operation
WMPFDebugger copied to clipboard

小程序跳转到二级页面后抓取不到任何网络请求

Open lee4seung opened this issue 7 months ago • 11 comments

以"北京首都国际机场"为例,进小程序首页是可以正常看到请求的,点到 我的-我的卡券之后,只能看到页面加载,但是后续的操作就看不到网络请求了,如果回退到首页再操作又是正常的。在手机上通过抓包软件是可以正常抓取我的卡券之后的网络请求包的,不清楚为何电脑端无法正常抓取?

如下是点了 我的卡券之后 只有页面请求,后续网络请求看不到 Image

首页的网络请求正常抓取 Image

lee4seung avatar Sep 27 '25 15:09 lee4seung

可能和 #8 有关,或许在目标页面网络请求的地方下断点来检查请求发送情况?

evi0s avatar Sep 27 '25 15:09 evi0s

看了楼上的情况,我的现象跟他是一样的,最后他也没解决,就是确认下这样如果是符合当前预期的就行,但是具体应该是加载新页面后感觉是哪里要特殊处理下没适配,但是我能力有限只能使用工具,希望后续大佬有空可以定位下原因~thx

lee4seung avatar Sep 27 '25 15:09 lee4seung

其他同类型工具也是这样的,小程序里的h5,webview,还没找到比较方便的调试途径。我这遇到这种场景是通过burp改h5的响应包,加点console.log,客户端用vconsole看变量。断点是没法断了。另外,每次需要重新改响应内容,需要重启微信或者终止wechatex的进程,否则要么缓存页面直接拦截不到请求,要么拦截了但是304重定向(但也可以改成200后改响应)。如果有人发现断h5的方法,麻烦at一下。

liding58 avatar Oct 09 '25 02:10 liding58

其他同类型工具也是这样的,小程序里的h5,webview,还没找到比较方便的调试途径。

理论上 webview 应该在一个独立的 frame 里面,如果 webview 控件被映射到独立的 iframe 的话, 就会在整个浏览器进程里,能被捕捉到(当然只是理论上哈,我瞎猜的)。有可以拿来测试的小程序吗,想看一眼

客户端用vconsole看变量

vconsole 应该是被直接注入到 page-frame 里面,共享渲染 frame 的上下文的,可以看看选择器能不能直接选到 vconsole

evi0s avatar Oct 09 '25 02:10 evi0s

Image Image

授权项目,小程序信息私聊师傅您看看。不过实际上其他的也是这样的,也可能和版本有关系,我这是16467。

liding58 avatar Oct 09 '25 04:10 liding58

补充一点,进入h5后有两个vconsole,得用新冒出来那个

Image

liding58 avatar Oct 09 '25 04:10 liding58

好吧,真有意思。发现腾讯文档小程序就是纯 webview 套壳,确实看不到任何信息。研究了下发现这玩意实现还很复杂,webview 里面跟外面都不是一个进程了,所以一定是看不到任何流量啥的,选择器也不可能选择到。

细节是这个:https://www.chromium.org/developers/design-documents/oop-iframes/

至于支持情况只能 pending 了,可能需要大量逆向工作。也欢迎师傅们来研究

evi0s avatar Oct 10 '25 04:10 evi0s

Image Image 授权项目,小程序信息私聊师傅您看看。不过实际上其他的也是这样的,也可能和版本有关系,我这是16467。

找到办法了,本质上还是浏览器独立 WebView 的调试,相关 workaround 可以参见 #13

详细办法找时间 update,下面的示例是腾讯文档小程序内嵌 WebView

Image Image

流量也可以正常抓取

Image

evi0s avatar Oct 28 '25 19:10 evi0s

The workaround is published in https://github.com/evi0s/WMPFDebugger/commit/9ae553c4a10997dfc969175e8bbfaebd093e0115 (EXTENSION.md), feel free to test it and let me know if you have any questions.

evi0s avatar Nov 03 '25 22:11 evi0s

@evi0s 大佬,每次进入一个详情页面都是webview, targetId每次都会变,怎么进入详情页面提前获取targetId呢,等进入后再附加targetId 都抓不到包了

chenyig001 avatar Nov 19 '25 08:11 chenyig001

@evi0s 大佬,每次进入一个详情页面都是webview, targetId每次都会变,怎么进入详情页面提前获取targetId呢,等进入后再附加targetId 都抓不到包了

有点困难啊,或许 Target 下面还有个 autoAttach 可能会有用,但是我这边测试经常 attach 不上

或者还有个办法是,webview 里面一般对生命周期不敏感,你可以 attach 进去之后直接 window.location.reload() 刷新一下去抓流量

evi0s avatar Nov 19 '25 15:11 evi0s