抓包工具介绍

抓包工具介绍

  • 抓包工具介绍
    • whistle
      • 启动whistle
      • 重启whsitle
      • 停止whistle
      • 调试模式启动whistle(主要用于查看whistle的异常及插件开发)
      • 更新whistle
      • whistle界面操作快捷键
    • Charles
      • Charles主要功能
      • 代理基本设置
      • 抓取https请求设置
      • 分析抓取的数据包
      • Charles弱网模拟
      • 内容替换

whistle

  • Github地址
  • 具体说明文档
  • whistle是一款用Node实现的跨平台的Web调试代理工具,支持查看修改http(s)、Websocket连接的请求和响应内容

最新版本的whistle支持三种等价的命令whistle、w2、wproxy

启动whistle

$ w2 start

重启whsitle

$ w2 restart

停止whistle

$ w2 stop

调试模式启动whistle(主要用于查看whistle的异常及插件开发)

$ w2 run

更新whistle

# 以下命令都可以更新whistle

$ npm install -g whistle

# or

$ npm update -g whistle

# or

$ npm install -g whistle --registry=https://registry.npm.taobao.org

# or

$ npm update -g whistle --registry=https://registry.npm.taobao.org

  • 更新成功后,重启 whistle

$ w2 restart

whistle界面操作快捷键

  • 清空请求列

Ctrl + X(Mac用Command + X):

  • 如果是焦点在下面的过滤输入框,可以清空输入框的内容
  • 如果焦点在Network的其它地方,可以删除选中的请求项

Ctrl + D(Mac用Command + D):

Charles

  • 官方网站
  • 是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)

Charles主要功能

  1. 支持SSL代理。可以截取分析SSL的请求。
  2. 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
  3. 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
  4. 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
  5. 支持重发网络请求,方便后端调试。
  6. 支持修改网络请求参数。
  7. 支持网络请求的截获并动态修改。
  8. 检查HTML,CSS和RSS内容是否符合W3C标准。

代理基本设置

调出端口设置页面

菜单栏操作 Proxy->Proxy Settings...

设置端口

选中Proxies面板->HTTP Proxy 下的Port: 后填入 8888 -> 点击OK完成

设置手机代理

打开WLAN设置->进入链接的WiFi的设置。代理处选择手动->主机名设置为安装Charles的主机的IP->端口输入Charles设置的端口号->点击确定完成(苹果手机返回就行)主机IP,在终端打 ifconfig ,找到类似 192.168.199.248

抓取https请求设置

手机安装证书

菜单栏操作 Help->SSL Proxing->Install Charles Root Certificate on a Mobile Device or Remote Browser弹出下文中的资料,在手机浏览器中输入,chls.pro/ssl,安装相应证书

Configure your device to use Charles as its HTTP proxy on 192.168.199.248:1208, then browse to chls.pro/ssl to download and install the certificate.

Charles设置代理https

菜单栏操作 Proxy->SSL Proxying Settings... 开启SSL代理->输入要抓取https接口的域名->OK

如果还抓取不到https

  • 【Proxy】=>【SSL Proxying Settings】
  • 勾选 Enable SSL Proxying
  • Host 表示你要抓取的 ip 地址或是链接,Port 填写 443 即可
  • 注:Port不填写443后续还是抓不到,这个坑我踩了

如果还抓取不到

  • 检查你的手机是不是 iOS 10.3 及以上版本,如果是的话的还需要进入 手机设置->通用->关于本机->证书信任设置,如下图,证书选择信任就可以了

分析抓取的数据包

Charles 主要提供两种查看封包的视图

  • Structure 视图将网络请求按访问的域名分类
  • Sequence 视图将网络请求按访问的时间排序

Charles弱网模拟

  • 菜单中选择【Proxy】--->【Throttle Settings..】-à激活【Enable Throttling
  • 在Throttle Configuration设置弱网的参数
  • 2G3G4G频率分配和网络制式

内容替换

  • 选中文件,选择菜单【Proxy】--->【Tools】--->【Map Local Settings】--->【add】
  • 选中文件,右键选择【Edit Mapping】或者
  • 然后设置自己要替换的文件就可以了