前言
抓包,也没那么神秘,说白了,两个关键词,第一个代理,第二个拦截,这两个词搞清楚了,抓包也就搞懂了。本文主要介绍抓包工具charles的使用,相较于其他抓包工具,charles是一款win和Mac都兼容的软件。少说原理,尽量实战。
Charles是一个HTTP代理/ HTTP监视器/反向代理,Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。
下载
下载:官网下载
配置
HTTP抓包设置:
-
设置charles为允许状态,并设置好接入端口
在Charles的菜单栏上选择
“Proxy”->“Proxy Settings”,填入代理端口8888(注意,这个端口不一定填写8888,也可以写别的端口,但是需要记住这个段扩,因为这里设置的允许接入的端口,手机端配置的时候需要用到),并且勾上”Enable transparent HTTP proxying”就完成了在Charles上的设置。如下图; -
把手机按照charles的IP和端口进行配置
手机链接wifi,wifi的HTTP代理选择手动那项(安卓类似)
在iPhone的 “设置”->“无线局域网“中,可以看到当前连接的wifi名,通过点击右边的详情键,可以看到当前连接上的wifi的详细信息,包括IP地址,子网掩码等信息。在其最底部有“HTTP代理”一项,我们将其切换成手动,然后填上
Charles运行所在的电脑的IP,以及端口号8888 -
手机配对成功后,charles弹窗询问是否允许
设置好之后,我们打开iPhone上的任意需要网络通讯的程序,就可以看到Charles弹出iPhone请求连接的确认菜单
如上图的弹窗,点击允许即可;此时已经配对成功,开始愉快的抓包吧
HTTPS抓包配置
如果网站用的是SSL,charles没有配置过,是抓取不到HTTPS这种加密协议的内容的
-
电脑端安装 Charles 的 CA 证书
选择
“Help” -> “SSL Proxying” -> “Install Charles Root Certificate”,如果设置了安全防护,会让你输入系统的帐号密码 -
电脑上charles的SSL抓取设置
你可以单独配置,必须看到某个想要抓取的域名,右键点击
“SSL proxying :Enableed”那么当前你设置后的域名,再次访问就可以抓到了;设置如下图。也可以全局配置,
proxy –> SSL Proxying Settings,然后选中启用SSL代理(Enable SSL Proxying),因为charles的location配置都是支持通配符的,所以在HOST里设置一个”*”就可以了,port不写 -
手机安装SSL证书
“Help” -> “SSL Proxying” -> “Install Charles Root Certificate on a Mobile Device or remote Browser”(在移动设备或远程浏览器上安装SSL证书)然后出现一个弹窗,大概的意思就是让你把手机上的wifi信息设置了 HTTP代理,然后用浏览器浏览chls.pro/ssl就可以下载并安装证书了。
UI
-
主界面,如下图
-
右键,如下图
overview区域和contents区域同
- 区域 1 基本操作 :基本的URL复制,文件保存,以及选中文件内搜索
- 区域 2 重写操作 :重写发送请求(调用接口合适),或者发到gitlist里
- 区域 3 查看区 :排序之类的
- 区域 4 设置关注 :可以设置哪些你关心的或者需要忽略的
- 区域 5 清除区 :垃圾清理使用
- 区域 6 工具区 :对应常见工具的入口
- 区域 7 映射区 :把文件映射到本地或者原创URL
-
菜单栏,请自行熟悉,不赘叙。
Charles 主要提供两种查看封包的视图,分别名为
-
Structure/结构视图
-
Sequence/序列视图
-
-
高亮
选中,右键->Focus
-
proxy菜单,重点,如下图-
Proxy Setting
-
SSL Proxy Setting
如果你不在这里设置,虽然你安装了ssl的charles证书,你依然无法正常捕获
-
常用设置
-
远程映射/Map Remote Settings
Tools->Map Remote -
本地映射/Map Local Settings
Tools->Local Settings功能:把需要请求网络的文件映射为请求本地文件
-
charles白名单
白名单工具,允许您阻止除选定位置之外的所有请求。
注意:如果一个请求与“黑名单”和“白名单”同时匹配成功,则会被阻止。
Tools->White List -
修改请求
Tools->compose/Compose Newcompose 是在原有的请求基础上,修改;
compose New 是新出一个弹窗,自己手动一个个的去写
-
重复发包
Tools->RepeatCharles将请求重新发送到服务器,并将响应显示为新请求
-
高级重复发包
Tools->Repeat AdvancesAdvanced Repeat就是重复发包多次,这个功能用来测试短信轰炸漏洞很方便
以上均可右键设置
打完收工