如何使用BurpSuite拦截FiveM NUI JavaScript API请求?
如何用BurpSuite拦截FiveM NUI的JavaScript API请求
问题核心
FiveM的NUI界面基于CEF(Chromium Embedded Framework)运行,它的网络请求不跟随系统全局代理,而且你尝试的13172、30120通常是FiveM服务器或资源的端口,未必是NUI请求的实际目标端口。
解决步骤
1. 先搞清楚请求的真实目标
- 打开FiveM客户端,按
F8输入EnableDebug启用NUI调试 - 打开目标NUI界面,按
F12调出CEF开发者工具(和Chrome调试工具操作一致) - 切换到Network标签,触发你的purchase请求,查看请求的完整URL(IP+端口),这才是你要拦截的对象
2. 配置BurpSuite监听
- 打开BurpSuite,进入
Proxy > Options - 在
Proxy Listeners下新增监听器,绑定127.0.0.1,端口选一个未被占用的(比如8080),勾选Running启用
3. 给FiveM的CEF指定代理
FiveM的CEF不会自动用系统代理,得手动加启动参数:
- 找到FiveM的启动快捷方式,右键选属性
- 在目标栏末尾添加:
--proxy-server=127.0.0.1:8080(端口和Burp监听的一致)
示例目标内容:"C:\xxx\FiveM.exe" --proxy-server=127.0.0.1:8080 - 保存后重启FiveM
4. 处理HTTPS请求的证书问题(如果需要)
如果你的NUI请求是HTTPS,得把Burp的CA证书导入CEF信任库:
- 在Burp的
Proxy > Options里,点击Import/Export CA Certificate,选择Export Certificate in DER format,保存为burp.cer - 打开CEF开发者工具(F12),进入
Settings > Privacy and security > Security > Manage certificates,导入刚才的证书并设为信任
5. 验证拦截效果
重启FiveM后触发purchase请求,回到Burp的Proxy > HTTP history,就能看到请求被捕获了
常见坑点排查
- 别死磕13172/30120:NUI的fetch请求可能指向资源自定义的本地端口,或者127.0.0.1的随机端口
- 确保Burp监听器和CEF代理的IP、端口完全匹配,优先用127.0.0.1而非0.0.0.0
- 检查启动参数是否生效:按F8输入
GetCefCommandLineArgs,看是否显示--proxy-server参数
内容的提问来源于stack exchange,提问作者Mohnad
相关产品推荐
相关产品推荐

