Charles抓包使用指南
Charles抓包使用指南
Charles是一个HTTP代理/ HTTP监视器/反向代理,使开发人员能够查看各种设备和Internet之间的所有HTTP和SSL / HTTPS流量。这包括请求,响应和HTTP标头(包含cookie和缓存信息)。
准备篇
如何安装Charles
支持Linux、macOS、Windows平台
如果下载网速比较慢,可以从巨化信息杭分公司的oss存储桶中下载。
如何注册永久使用
不赘述,搜索引擎搜索即可
说说什么是代理服务器
提供代理服务的电脑系统或其它类型的网络终端称为代理服务器英语:Proxy Server。一个完整的代理请求过程为:客户端首先根据代理服务器所使用的代理协议,与代理服务器创建连接,接着按照协议请求对目标服务器创建连接、或者获得目标服务器的指定资源(如:文件)。在后一种情况中,代理服务器可能对目标服务器的资源下载至本地缓存,如果客户端所要获取的资源在代理服务器的缓存之中,则代理服务器并不会向目标服务器发送请求,而是直接传回已缓存的资源。一些代理协议允许代理服务器改变客户端的原始请求、目标服务器的原始响应,以满足代理协议的需要。
使用场景
前后端开发debug
检查网页数据、接口数据是否按预期响应;检查cookie、请求头、响应头、请求body、响应body。
断点调试:修改请求头、修改请求参数。
信息收集和渗透
检查其他感兴趣应用查看它们的网址、应用的接口数据、图片数据等,起到网络安全里的信息搜集和渗透。
安全测试
修改referer测试跨站请求、修改token测试水平越权等等,不多赘述。有兴趣自己了解web应用安全相关知识。
使用篇
1、Charles抓包配置
菜单->Proxy->Proxy Settings:设置http代理端口
2、查看本机ip
此时安装了charles的pc机器可以被认为是一台代理服务器。我们打开菜单->Help->Local IP Addresses
我们可能有多个网络适配器,找到需要抓包的设备和本机处于同一网段下的ip并记录下来
3、移动设备http抓包
我们以iOS 15为例。Android设备同理。注意,某个设备首次通过charles抓包需要点击allow允许一下。
打开:设置->无线局域网->已连接的Wi-Fi详细信息->配置代理->手动
配置好之后,打开需要抓包的应用即可。可以看到,http协议的数据可以直接显示出来,https协议的数据被上锁显示不出来。
4、https抓包配置根证书
HTTPS 协议是由HTTP 加上TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。
故而如果我们要抓包https站点,必须在移动端设备上安装Charles提供的数字根证书,安装后再信任该证书,才能监听解锁https站点的数据。
Charles证书下载
菜单->Help->SSL Proxying->Install Charles Root Certificate on a Mobile Device or Remote Browser
其实就是在移动设备上打开浏览器,地址栏输入chls.pro/ssl,会自动下载根证书。
安装Charles根证书
iPhone手机:设置->VPN与设备管理->配置描述文件->安装刚刚下载的证书
Android手机:下载之后直接点安装就行了
信任Charles根证书
iPhone手机:设置-关于本机>证书信任设置->针对根证书启用完全信任
Android手机:同理类似
5、移动端设备https抓包实战
选择想要抓包的站点->开启focus(非必需)->Enable SSL Proxy
查看请求头、响应头、响应文本等等,非常方便
6、断点调试
右键url->Breakpoints->被抓包的设备重新发起请求->编辑请求参数->Exceute
7、本机网络http/https抓包监听
mac:菜单->Proxy->macOS Proxy
windows:菜单->Proxy->windows Proxy
同理,要在本机抓包https,同样需要下载Charles根证书、安装根证书、信任根证书。具体可在菜单->Help->SSL Proxying里查看
常见问题
1、正确配置好代理ip和端口,打开应用没反应或移动设备无法上网
- 尝试重新开关Wi-Fi按钮
- 确保手机和本机设备能正常通信
- 确保网络防火墙端口能正常联通
2、极个别设备会出现无法抓包问题
- 尝试重启Charles,重启android设备,移除已经信任allow的ip(菜单->Proxy->Access Controll Setting)。