测试必备工具之最强抓包神器 Charles,你会了么?

本贴最后更新于 916 天前,其中的信息可能已经东海扬尘

前言

作为软件测试工程师,大家在工作中肯定经常会用到各种抓包工具来辅助测试,比如浏览器自带的抓包工具-F12,方便又快捷;比如时下特别流行的Fiddler工具,使用各种web和APP测试的各种场景的抓包分析;比如Wireshark,专注于调试网络问以及和分析网络协议包分析...然而,今天我要给大家分享的一款抓包工具叫做Charles,同样也是一个抓包神器!

Charles是一款的抓包修改工具,其实也是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。它是用Java编写的,能支持Win体验可以使用免费试用版本,试用时间为30天。试用期过后每次只能试用30分钟,并且每次启动也会有延时。

Charles主要功能非常丰富,包括:

  1. 截取HTTP和HTTPS网络协议
  2. 支持重发网络请求,方便后端调试
  3. 支持修改网络请求参数
  4. 支持网络请求的截获并动态修改
  5. 支持模拟网络

下载安装包

去Charles的官网,下载这个工具的安装包:https://www.charlesproxy.com/download/
image.png

安装

image.png

双击这个安装包,并且一路next即可完成安装。

运行软件

安装完成之后,找到这个文件的桌面快捷方式 ,image.png,双击打开即可运行软件。

image.png

打开即可看到如上图的界面。

设置代理

如开头讲到的,Charles是通过将自己设置为电脑或者浏览器的代理从而达到抓包的目的的。所以设置代理是在菜单栏【Proxy】—【windows Proxy】,勾选即可。

image.png

设置为代理之后,就可以开始抓取数据包了。

视图

从工具打开后的主页面可以发现,Charles 主要提供两种查看封包的视图,分别名为 “Structure” 和 “Sequence”。

  1. Structure 视图将网络请求按访问的域名分类。

这种视图我个人认为非常方便阅读和查找数据报文,因为同一个域名的所有新增请求都会添加到这个域名类中,而不会因为数据包过多而导致不方便查找的问题。

image.png

  1. Sequence 视图将网络请求按访问的时间排序

    这个视图跟其他的抓包工具就基本类似了。这种视图的一个弊端就是数据包过多会不太方便查找。image.png

过滤数据包

Charles也考虑到了数据包过多不方便查找的问题,所以提供了网络请求过滤功能。通过过滤监控指定服务器的请求。

要设置Charles数据包的过滤,有三种方法:

方法一:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:http://www.lemfix.com/ , 那么只需要在 Filter 栏中填入"lemfix'即可。回车后即可过滤出对应的数据包。

image.png

方法二:抓完包之后,在想过滤的网络请求上右击,选择 “Focus”,之后在 Filter 一栏勾选上“Focus” 一项,如下图所示:

image.png

这样可以快速地过滤出去一些不关心网络请求(收起到other hosts里),只显示我选中的数据包。

方法三:在 Charles 的菜单栏选择 “Proxy”–>“Recording Settings”,然后选择 Include 栏,点击“add”新增加一个项目,然后填入需要监控的协议(如http),主机地址(想过滤的域名或者IP),端口号。配好之后,点击OK。这样就可以只截取目标网站的封包了。如下图所示:

image.png

通常情况下,第一、二种方法可以用于临时性包过滤,如果有些服务器是你经常性访问的,可以用方法三设置为常规过滤规则。

经过以上的步骤,就可以使用Charles工具开始愉快的抓包了!

2 操作
tricy 在 2021-10-16 15:03:07 更新了该帖
tricy 在 2020-08-06 17:50:33 更新了该帖
回帖
请输入回帖内容 ...