Charles

329 阅读4分钟

前言

抓包,也没那么神秘,说白了,两个关键词,第一个代理,第二个拦截,这两个词搞清楚了,抓包也就搞懂了。本文主要介绍抓包工具charles的使用,相较于其他抓包工具,charles是一款win和Mac都兼容的软件。少说原理,尽量实战。

Charles是一个HTTP代理/ HTTP监视器/反向代理,Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。

下载

下载:官网下载

配置

HTTP抓包设置:

  1. 设置charles为允许状态,并设置好接入端口

    在Charles的菜单栏上选择“Proxy”->“Proxy Settings”,填入代理端口8888(注意,这个端口不一定填写8888,也可以写别的端口,但是需要记住这个段扩,因为这里设置的允许接入的端口,手机端配置的时候需要用到),并且勾上”Enable transparent HTTP proxying” 就完成了在Charles上的设置。如下图;

  2. 把手机按照charles的IP和端口进行配置

    手机链接wifi,wifi的HTTP代理选择手动那项(安卓类似)

    在iPhone的 “设置”->“无线局域网“中,可以看到当前连接的wifi名,通过点击右边的详情键,可以看到当前连接上的wifi的详细信息,包括IP地址,子网掩码等信息。在其最底部有“HTTP代理”一项,我们将其切换成手动,然后填上Charles运行所在的电脑的IP,以及端口号8888

  3. 手机配对成功后,charles弹窗询问是否允许

    设置好之后,我们打开iPhone上的任意需要网络通讯的程序,就可以看到Charles弹出iPhone请求连接的确认菜单

    如上图的弹窗,点击允许即可;此时已经配对成功,开始愉快的抓包吧

HTTPS抓包配置

如果网站用的是SSL,charles没有配置过,是抓取不到HTTPS这种加密协议的内容的

  1. 电脑端安装 Charles 的 CA 证书

    选择 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate”,如果设置了安全防护,会让你输入系统的帐号密码

  2. 电脑上charles的SSL抓取设置

    你可以单独配置,必须看到某个想要抓取的域名,右键点击“SSL proxying :Enableed”那么当前你设置后的域名,再次访问就可以抓到了;设置如下图。

    也可以全局配置,proxy –> SSL Proxying Settings,然后选中启用SSL代理(Enable SSL Proxying),因为charles的location配置都是支持通配符的,所以在HOST里设置一个”*”就可以了,port不写

  3. 手机安装SSL证书

    “Help” -> “SSL Proxying” -> “Install Charles Root Certificate on a Mobile Device or remote Browser” (在移动设备或远程浏览器上安装SSL证书)

    然后出现一个弹窗,大概的意思就是让你把手机上的wifi信息设置了 HTTP代理,然后用浏览器浏览chls.pro/ssl就可以下载并安装证书了。

UI

  1. 主界面,如下图

  2. 右键,如下图

    overview区域和contents区域同

    • 区域 1 基本操作 :基本的URL复制,文件保存,以及选中文件内搜索
    • 区域 2 重写操作 :重写发送请求(调用接口合适),或者发到gitlist里
    • 区域 3 查看区 :排序之类的
    • 区域 4 设置关注 :可以设置哪些你关心的或者需要忽略的
    • 区域 5 清除区 :垃圾清理使用
    • 区域 6 工具区 :对应常见工具的入口
    • 区域 7 映射区 :把文件映射到本地或者原创URL
  3. 菜单栏,请自行熟悉,不赘叙。

    Charles 主要提供两种查看封包的视图,分别名为

    • Structure/结构视图

    • Sequence/序列视图

  4. 高亮

    选中,右键->Focus

  5. proxy菜单,重点,如下图

    • Proxy Setting

    • SSL Proxy Setting

      如果你不在这里设置,虽然你安装了ssl的charles证书,你依然无法正常捕获

常用设置

  1. 远程映射/Map Remote Settings

    Tools->Map Remote

  2. 本地映射/Map Local Settings

    Tools->Local Settings

    功能:把需要请求网络的文件映射为请求本地文件

  3. charles白名单

    白名单工具,允许您阻止除选定位置之外的所有请求。

    注意:如果一个请求与“黑名单”和“白名单”同时匹配成功,则会被阻止。

    Tools->White List

  4. 修改请求

    Tools->compose/Compose New

    compose 是在原有的请求基础上,修改;

    compose New 是新出一个弹窗,自己手动一个个的去写

  5. 重复发包

    Tools->Repeat

    Charles将请求重新发送到服务器,并将响应显示为新请求

  6. 高级重复发包

    Tools->Repeat Advances

    Advanced Repeat就是重复发包多次,这个功能用来测试短信轰炸漏洞很方便

以上均可右键设置

打完收工