JS 注入器 — 在网页里注入自定义 JavaScript
它是什么
JS 注入器(Js Injector)把自定义 JavaScript 注入到 PCAPdroid 解密过的网页里,在网页加载时自动执行。这是 PCAPdroid-mitm 插件(TLS 解密的执行引擎)提供的能力,所以:
- 必须 先配置好 TLS 解密(Chrome 或目标浏览器在 Decryption rules 里)
- 注入脚本匹配的是解密后的 HTTP 响应,所以目标应用/浏览器必须在解密范围内
脚本格式
JS 注入器脚本头部格式类似但不兼容 Tampermonkey:
// @name Alert test
// @description Displays an alert dialog on google.it
// @author YourName
// @version 1.0
// @match *://www.google.it/*
alert("Js Injector works");
@name:脚本显示名(在 PCAPdroid 里可见)@description:说明文字@author:作者@version:版本号@match:URL 匹配规则(通配符),只有命中的网页才会注入。*://*/*匹配所有网页
头部之后就是正常的 JavaScript 代码。
在 PCAPdroid-mitm 里添加脚本
- 打开 PCAPdroid-mitm 应用(独立安装的 APK)
- 进入 Js Injector 页面
- 点添加,填入脚本的 URL(PCAPdroid-mitm 会去拉取脚本内容)
- 脚本添加成功后,PCAPdroid 抓包时会自动匹配并注入
让注入生效的三个前提
- 目标浏览器(Chrome 等)在 Decryption rules 里——否则 TLS 不解密,mitmproxy 拿不到网页 HTML
- PCAPdroid 里关闭 QUIC——网页如果升级到 QUIC 协议,JS 注入器还不支持 QUIC 内容改写
- 清浏览器缓存——注入后第一次可能拿到旧缓存页面,需要强制刷新
效果确认
注入成功的连接在 PCAPdroid Connections 里会带一个JS 图标,点进连接详情面板就能看到注入脚本的名称。
<img src="images/js-injector.jpg" alt="JS 注入器效果" title="JS 注入成功的连接标记" />
可以做什么
- 自动改网页 DOM(去掉广告、注入自定义按钮)
- 自动填充表单、自动化操作序列
- 在网页里加自定义 UI(悬浮按钮、调试面板)
- 抓特定网络请求并导出到外部日志(配合 mitmproxy)