以该网站 https://newwf.wfkids.net/#/ 为例,这是在渗透测试中经常会碰到的页面。
在项目上,有时需要对特定站点进行测试,但该站点只能通过微信内置浏览器打开,无法在常规浏览器中直接访问。
通过 Burp Suite 或 Reqable 抓包分析,发现请求数据已被加密,需要打断点进行逆向分析。为了方便调试,以下提供了几种可行的解决方案。
注意:如果仅需捕获网络流量,使用 Reqable、Proxifier 做全局代理,或使用 Yakit 开启系统代理即可。

图1:微信内置浏览器典型的访问限制提示
User-Agent 修改绕过
这是一种比较常见的绕过方式,核心思路是模拟微信内置浏览器的 UA(User-Agent)。
方法一:浏览器自定义设备
- 打开浏览器开发者工具(F12),点击“切换设备仿真”图标(或使用
Ctrl+Shift+M 快捷键)。
- 在设备选择栏中,点击“编辑...”。

图2:Chrome DevTools 中的设备仿真界面

图3:可选择的预设设备型号列表
- 点击“添加自定义设备”,按如下配置(以下任选一个 UA 字符串即可)。你也可以通过 Reqable 等抓包工具,直接抓取真实微信环境的 UA 头。
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090a1b) XWEB/9129
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 NetType/WIFI MicroMessenger/7.0.20.1781(0x6700143B) WindowsWechat(0x6309071d) XWEB/8461 Flue

图4:添加自定义设备并配置微信UA
- 在设备尺寸下拉菜单中,选择刚才配置好的
weixin,然后刷新页面。

图5:在设备栏中选择自定义的微信设备
方法二:使用浏览器插件
安装如 “User-Agent Switcher and Manager” 这类插件更为便捷。在插件中预设或添加上述微信 UA 字符串,应用后刷新页面即可。

图6:在插件中设置微信用户代理

图7:应用微信UA后页面可正常访问
使用微信开发者工具
微信官方提供的开发者工具是调试微信生态网页的另一条路径。
公众号网页调试
- 登录微信开发者工具。
- 选择“公众号网页”项目类型。
- 将目标网址直接粘贴到地址栏中打开。

图8:微信开发者工具中的“公众号网页”调试入口
基础使用方法
对于渗透测试而言,掌握基本用法即可。微信开发者工具常用于小程序反编译,可以直接使用游客模式:创建或导入项目,然后即可进行代码审计和分析。

图9:使用游客模式进入微信开发者工具

图10:创建新项目界面,可使用测试AppID

图11:微信开发者工具的主界面,包含编辑器、调试器和模拟器
通过远程调试连接真机
这种方法本质上是利用 Chrome DevTools Protocol (CDP) 进行远程调用和 Hook,从而实现对手机端微信内置浏览器页面的调试。
注意事项
- 网络环境:确保手机和电脑连接在同一个 Wi-Fi 网络下。
- 开发者选项:手机需已启用“开发者选项”和“USB 调试”。
- 无线调试:对于 Android 11 及以上版本,可启用“无线调试”功能(可选,但更方便)。
- 防火墙:确保电脑和手机的防火墙允许 ADB 及 Chrome 调试流量通过。
完成这些步骤后,你可以在电脑浏览器中通过 chrome://inspect/#devices 页面查看并调试手机上的网页。
无线调试步骤 (Android)
-
USB 初始连接:用 USB 数据线连接手机和电脑,在弹出的 USB 用途中选择“传输文件”。此连接用于初次配对,完成前请勿拔出。
-
启用无线调试:进入手机设置 -> 开发者选项 -> 开启“无线调试”。根据提示,选择“使用配对码配对设备”。

图13:手机开发者选项设置

图14:无线调试界面显示IP和端口
- 通过 USB 执行配对(仅首次需要):
在电脑命令行中,使用 adb pair <IP地址>:<端口号> 命令,然后输入手机上显示的配对码。
adb pair 192.168.1.100:5555
- 无线连接设备:
配对成功后,使用 adb connect <IP地址>:<端口号> 命令通过Wi-Fi连接设备。
adb connect 192.168.1.100:5555
执行 adb devices 确认设备已连接。

图15:ADB成功通过Wi-Fi连接到手机
- 在 Chrome 中配置:
- 打开 Chrome,访问
chrome://inspect/#devices。
- 点击“Configure...”按钮。
- 添加你手机的调试地址,格式为
ws://<IP地址>:<端口号>(例如 ws://192.168.1.100:5555)。
- 配置成功后,在“Remote target”列表中应能看到你的设备及打开的页面,点击“inspect”即可开始调试。

图16:在Chrome中配置网络目标以发现远程设备
USB 调试步骤
- 如无线调试第一步所示,用USB线连接手机并选择“传输文件”。
- 在手机开发者选项中,开启“USB调试”。
- 在电脑浏览器中输入
chrome://inspect/#devices(Edge浏览器会自动跳转到 edge://inspect/#devices)。
- 后续调试流程与无线调试相同。
注意:如果浏览器无法识别到设备,可以尝试在配置页面中只勾选“Discover USB devices”,取消其他选项。

图17:Chrome DevTools的设备检测与配置界面
遗留问题与思考
在某些复杂的渗透测试场景下,即使成功绕过了UA检测并在PC端打开了页面,一些核心功能可能仍然无法使用。
一个比较合理的解释是:页面的某些功能(如微信登录、支付)依赖于微信客户端原生层提供的 JS-SDK 接口或特定环境信息。当我们的调试环境不在真实的微信客户端内时,这些接口调用会失败或返回空值,导致页面逻辑中断,始终跳转到授权或错误页面。
例如,在微信开发者工具中,点击某些需要微信身份验证的按钮时,可能会弹出环境不支持的提示。

图18:微信开发者工具中调用某些API时出现的环境限制提示
在PC浏览器中仅修改UA和Cookie,尝试访问用户中心等页面,可能返回空白或继续重定向到授权页。

图19:仅修改UA后,部分页面功能仍无法正常加载
此时,更深入的调试可能需要结合浏览器插件修改更多请求头,或者必须回到远程调试真机的方案,在真实的微信环境中进行动态分析和Hook。

图20:使用ModHeader等插件修改请求头以尝试绕过更复杂的检测
对于安全研究者而言,理解不同绕过方案的原理和限制,有助于在实战中选择最合适的调试策略。如果你想了解更多关于安全/渗透/逆向的实战技巧和深度讨论,欢迎访问云栈社区的相关板块进行交流。