Thor 的使用技巧

请务必阅读以下相关条款:

服务条款 & 免责声明

使用帮助

Thor 并非万能,只工作在系统 HTTP 层: 不支持非 HTTP 流量(TCP, UDP)及不经过系统 HTTP 代理的流量

调试其它设备的 HTTP(S) 请求

抓包代理使用帮助

0、HTTPS 解析配置

证书信任问题

Thor SSL CA 证书 需要『安装』到手机系统并且『信任』才能正常解析 HTTPS 流量。

证书安全问题:每份 Thor 证书都是在第一次启动时随机生成(Thor 用户间彼此不同),不上传服务器,只存放在设备本地 Keychain,Thor 只是把证书随机生成自动化了。

另外,所有用 Thor 抓到的数据都只会存储在手机本地,不会有任何上传数据(Thor 只是一个本地单机应用,甚至没有服务器)。

iOS10 以后证书无法信任

HTTPS 解析原理

Thor 实现的 HTTPS 解析方式是 MiTM (中间人欺骗):需要用 Thor SSL CA 根证书针对特定域名生成叶子证书,用此叶子证书跟客户端(请求发起方)通信,并成功解析流量。

客户端(请求发起方)如果做了证书本地验证(即验证跟它通信的叶子证书是否是它原来商定好的证书),那么 Thor 生成的叶子证书跟客户端之间的 SSL 连接将会失败,自然就也解不了这类流量。

总之 HTTPS MiTM 不是万能的,望知晓。

HTTPS MiTM 解析失败的示例

1、关于抓到的数据在哪查看,以及怎么导出

所有成功抓包的数据都在: 包详情 -> 响应 -> 消息体 中,消息体查看界面的『分享』入口可以保存或者导出。

点我看示例

2、 206 或者 302 响应状态码出现的数据不完整问题

响应状态码 是请求本身决定的,Thor 只是忠实地记录下此过程。

状态码含义说明
200完整的数据返回,常见于网页直接下载
206完整文件拆成了很多段,每个 206 都是其中的一段,常见于播放器播放产生的音视频
301 或 302请求 url 地址变更为其它 url,新的 url 在 包详情 -> 响应 -> 请求头 -> Location 中可以找到
304向服务器询问 url 指向的资源是否有更新,无更新则服务器返回 304。所以不会有资源被抓到

3、Thor 过滤器,筛选器的作用原理

  • 过滤器
    • 抓包过滤关键字域名方法等):抓包开始前设置,用于过滤『哪些包你能抓到』。过滤规则只在包的『请求行』,『请求头』中匹配。
    • 按需启动域名:配置自动触发抓包的域名,当设备中任何地方访问该域名时,会自动启动抓包。
    • 制作教程:可以导出自己心爱的过滤器分享 .f4thor 文件给别人啦。
  • 筛选器
    • 对已经抓到的包筛选,筛选条件在包的『请求』和『响应』全部信息中匹配。
    • 支持关键字搜索
  • 导入导出
    • f4thor: Thor 独创的过滤器导出分享格式,可以直接导出并分享过滤器,并导入 .f4thor 文件到 Thor(.f4thor 选择『用 Thor 打开』即可)。

    • p4thor: Thor 独创的抓包记录导出格式,可以批量导出自己的抓包记录为 .p4thor 文件以备份,或者发送给其他 Thor 用户并导入分析。

    • har: 行业标准的 HTTP archvie 文件格式,其本质是一个 json 文件,Thor 抓包记录支持标准的 .har 导出,.har 可以用于请求记录分析,其它程序的 HTTP 请求输入数据等。

    • cURL: 行业标准的 curl 命令,可以导出 Thor 中的请求(含参数),用于重放请求。

4、抓包的套路

  • 暗中观察:先用『全局(默认)』过滤器抓取目标链接,找到相应的包,观察包的『请求』和『响应』信息。

  • 仔细推敲:从包的『请求』和『响应』信息中找到蛛丝马迹,得到过滤条件。

  • 创建过滤器:用研究得到的过滤条件,创建过滤器,实现定向抓包。

  • 配合插件:用通知栏『Thor HTTP 抓包』插件 或者 iPad 分屏抓包进行实时监控、分析,效果更佳哦。

  • URL Scheme:配合 workflow 等三方工具使用,可以达到啧啧称奇的自动化效果。

5、常见问题