-
Charles抓包工具的安装与配置
云和安全管理服务专家新钛云服 吕涵之原创
1、抓包工具的优缺点
tcpdump:只能在linux下使用,前提是你需要会操作linux系统。
fiddler:只能在windows下使用,专门用来捕获HTTP、HTTPS的。
wireshark:常常在windows/macOS下使用,可以抓取所有协议的内容,但是不能解密HTTPS ,所以wireshark看不懂HTTPS中的内容。如果是处理HTTP,HTTPS 还是用Fiddler, 其他协议比如TCP,UDP 就用wireshark。它非常适合协议的学习和网络问题的分析,但是它需要你具备一定的网络知识,所以对初学者来说不是很友好。
Charles:跨平台的抓包工具能在linux/windows/macOS下使用,它是基于HTTP、HTTPS的代理服务器 ,支持域名或者接口两种方式查看报文,弱网测试非常友好,可以直接选择网络类型 。
2、Charles抓包原理
Charles作为一个中间人代理,在客户端给服务器端发消息的时候,会截取客户端发送给服务器的请求,然后伪装成客户端与服务器进行通信;服务器返回数据时将截取的数据发送给客户端,伪装成服务器与客户端进行通信。
图2-1 charles抓包原理
3、安装
点击下载地址:
https://www.charlesproxy.com/download/ ,根据自己的系统选择对应的安装包进行下载安装。图3-1 下载charles
4、注册
charles启动需要10秒钟,运行半小时会强制关闭 ,为了不影响正常的使用,我们需要激活charles。访问激活码计算器:
https://www.zzzmode.com/mytools/charles/ 获取License,根据下图步骤注册charles。图4-1 获取License
图4-2 注册charles
5、过滤器
方法一:Filter过滤
在主界面Filter栏中填入需要过滤出来的关键字,例如我们只想抓取csdn相关的请求 , 那么只需要在 Filter 栏中填入csdn 即可。
图5-1 Filter过滤
方法二:Recording Settings过滤
在 Charles 的菜单栏选择 “Proxy”–>“Recording Settings”,然后选择 Include 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了。如下图所示:
图5-2 Recording Settings过滤1
图5-3 Recording Settings过滤2
方法三:Focus过滤
在想过滤的网络请求上右击,选择 “Focus”,之后在 Filter 一栏勾选上 Focussed 一项,如下图所示,这种方式可以临时性的,快速地过滤出一些没有通过关键字的一类网络请求。
图5-4 Focus过滤
6、访问控制
控制哪些ip是允许访问Charles的,默认本机都是允许 ,实际场景请看下面抓取App数据的操作。
图6-1 访问控制
7、https
现在抓取https协议的数据报文 ,可以看到左边请求地址显示的是unknown,右边的报文是乱码的,所以我们需要安装SSL根证书解析报文。
图7-1 无法解析https
第一步、安装SSL根证书
图7-2 安装SSL根证书
图7-3 安装证书
图7-4 本地所有用户通用
图7-5 证书受信任
图7-6 导入证书
图7-7 证书导入成功
第二步、设置HTTPS代理配置
图7-8 设置HTTPS代理配置
图7-9 允许所有主机和端口
图7-10 查看https报文
8、抓取App的数据报文
第一步、保持手机和电脑在同一网段,同一无线、热点。(同一个局域网)
第二步、下载并设置手机的根证书
图8-1 安装手机证书
图8-2 提示代理地址和证书下载地址
图8-3 手机配置代理地址
图8-4 下载证书
图8-5 安装证书
图8-6 访问控制
图8-7 查看访问控制
图8-8 手机ip被允许
图8-9 抓取到手机数据报文