一:认识Charles
1:Charles是什么?
Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information).
Charles本质是一个代理服务器软件,最核心的功能就是抓取HTTP/HTTPS的请求和响应报文信息。
2:Charles的工作原理?
Charles的本质是代理服务器软件,所以如果想使用它来抓取报文信息,就必须在端上配置相关的代理,当然Charles本身也需要设置对应代理配置,比如:端口(默认是8888),ip就是Charles所在的端上的IP
3:Charles能做什么?
1:抓取HTTP、HTTPS的报文信息
2:弱网测试
3:打断点进行流量劫持和篡改
4:反向代理
5:流量重定向
6:其他,未来可能还有更多好玩的功能
4:Charles的优点?
相比于Fiddler这个抓包工具的优点
二:使用Charles
1:安装Charles
https://www.charlesproxy.com/download/
2:Charles组件介绍?
1:功能界面布局
2:主导航栏功能按钮介绍
3:请求栏样式及特点
4:请求数据栏样式
3:Charles代理设置——非常关键——后面给各个端(windows/mac/ios/android)设置代理时,需要配置对应的IP和端口
获取Charles的IP信息
4:Charles访问控制设置,用于设置那些端可以访问此Charles实例,注意:安装Charles软件的端是默认可以使用Charles的
5:端上的代理设置,凡是想通过Charles抓包的端,都需要配置对应的代理配置,这一步很关键
1:windows端的代理配置?
2:mac端的代理配置?
3:ios端的代理配置?
4:android端的代理配置?
6:抓HTTPS的报文,需要安装SSL证书否则会乱码
1:windows安装SSL证书?
2:mac安装SSL证书?
3:ios安装SSL证书?
4:android安装SSL证书?
设置-> 安全和锁屏-> 加密和凭证-> 安装证书 (-> CA证书 / -> WLAN证书)->找到浏览器下载的SSL证书,进行安装
验证是否安装成功,可以查看Charles抓取的HTTPS报文信息是否还是乱码
-> 加密和凭证
-> 安装证书
-> CA证书
-> WLAN证书
-> 选择下载好的证书,假设你的Charles安装在两台MAC上,你需要粉笔安装两个对应的证书
7:SSL代理配置
8:Charles弱网测试配置
9:Charles断点配置
10:Charles实战总结
三:特别注意的地方?
1:Charles最核心的功能
2:Charles的代理设置?
安装好Charles之后,最先调整的就是这个设置,设置好端口后,再在端上配置好对应的代理就能抓对应端上的HTTP报文了
3:Charles 的SSL代理设置 ?
这个设置也很关键,配置后可以抓取HTTPS的报文信息,当然,在没有安装好SSL证书之前,抓取的HTTPS报文信息都乱码
4:安装 Charles SSL证书
对于抓取HTTPS报文,这一步最为关键,又有每个端安装证书的方式不尽相同,可能还需要好好看一下,我玩的时候在这一步花的时间最多
5:回话录制设置,这个针对特定的请求很有用
6:Charles注册,若资金允许,请购买正版,支持正版软件
如果不注册,Charles有30天的试用时间,时间已过,使用上会有一些限制,比如:启动延迟10s,每过半小时就自动关闭一下。
7: Charles的本质是一个代理服务器软件,这个多次强调过,最核心的功能就是用于抓包,所以使用的步骤如下
1:安装Charles软件,这个最简单
2:进行代理设置,待抓包的端上进行代理设置,注意:手机端和安装Charles的电脑端的网络需要时同一个,然后就可以在Charles上抓取http的报文了
3:SSL代理设置,然后在待转包的端上安装SSL证书,注意:每个端安装SSL证书的方式,稍有不同,需要具体看,然后就可以在Charles上抓取https的报文了
4:其他功能,比如:反向代理、弱网测试、流量劫持和篡改,这种专业测试可能会用,我目前基本不用,就是为了抓包,看端上的请求对应的接口是什么?入参出参是什么?
5:安装了Charles的电脑默认是可以直接使用Charles作为代理服务器的相当于代理的设置直接设置了,可以抓取http的报文,不过要抓取https的报文还是必须安装SSL证书才行的
鉴于水平有限难保不会出现错漏之处,如果你觉得那里有错误,请点击一下“反对”按钮,并希望您提出宝贵的修改意见,您的宝贵意见将是我们进步的一大源泉!
如果您觉得阅读上文对您有所帮助,请轻点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!