Charles的安装以及功能操作

charles 讲解

Charles的原理

  1. 客户端向服务器发起HTTPS请求
  2. Charles拦截客户端的请求,伪装成客户端向服务器进行请求
  3. 服务器向“客户端”(实际上是Charles)返回服务器的CA证书
  4. Charles拦截服务器的响应,获取服务器证书公钥,然后自己制作一张证书,将服务器证书替换后发送给客户端。
  5. 客户端接收到“服务器”(实际上是Charles)的证书后,生成一个对称密钥,用Charles的公钥加密,发送给“服务器”(Charles)
  6. Charles拦截客户端的响应,用自己的私钥解密对称密钥(Charles拿到了对称密钥**)**,然后用服务器证书公钥加密,发送给服务器。
  7. 服务器用自己的私钥解密对称密钥,向“客户端”(Charles)发送响应
  8. Charles拦截服务器的响应,替换成自己的证书后发送给客户端
  9. 至此,连接建立,Charles拿到了 服务器证书的公钥 和 客户端与服务器协商的对称密钥,之后就可以解密或者修改加密的报文了。

总结

HTTPS抓包的原理还是挺简单的,简单来说,

截获真实客户端的HTTPS请求,伪装客户端向真实服务端发送HTTPS请求

接受真实服务器响应,用Charles自己的证书伪装服务端向真实客户端发送数据内容

charles的安装

  1. 点击安装文件charles-proxy-4.2.8-win64.msi
  2. 点击下一步

  3. 勾选同意,点击”next”按钮

  4. 指定安装的路径,继续点击”next”按钮

  5. 点击”install”按钮

  6. 等待安装

  7. 点击”Finish”按钮

  8. 安装结束

charles的证书下载(web)

默认情况下,charles不能解析https协议的接口,里面的请求和响应数据都是乱码格式,所以我们需要下载ssl证书,来获取里面的数据

  1. 点击help,选中ssl Proxying ,点击Install Charles Root Certificate

  2. 点击”安装证书”按钮

  3. 点击”下一步”按钮

  4. 选中”将所有的证书都放入下列存储”,点击”游览”按钮

  5. 选中”受新任的根证书颁发机构”,点击”确定”按钮

  6. 点击”下一步”按钮

  7. 点击”完成”按钮

  8. 界面弹出”导入成功”弹框

  9. 进入charles

  10. 点击”proxy”按钮,选中Proxy Settings…

  11. 勾选允许传输http代理,接着点击”OK”按钮

  12. 点击’proxy”按钮,选中SSL Proxyig settings..

  13. 点击勾选运行代理,点击“add”按钮

  14. 填写Host和Port都为*,正则表达式为匹配所有,再点击”OK”按钮

  15. 点击”OK”按钮

  16. 重启Charles,即可

  17. 验证是否可以获取web端的https接口

  1. 打开Charles
  2. 打开游览器输入数据
  3. 查看Charles
  4. 从上图所看,能获取htpps的包数据,即可对web端进行抓包

 

charles的功能操作

断点调试

方法一: breakpoints(修改request)

  1. 接口处 鼠标右击,选择breakpoints(允许本接口使用breakpionts功能)
  2. 开始设置断点值
  3. 输完值记得点【ok】按钮保存设置。。。
  4. 重新请求接口(charles的界面变为可编辑状态),修改请求参数,执行请求

  5. 关掉breakpoint,点击【abort】

如果点击了【cancel】,只关闭此次编辑。下次访问此接口时还会进入breakpoints页面。

方法二: breakpoints(修改response)

  1. 接口处 鼠标右击,选择breakpoints(允许本接口使用breakpionts功能)
  2. 开始设置断点值
  3.  输完值记得点【ok】按钮保存设置。。。

  4. 重新请求接口(charles的界面变为可编辑状态),修改请求参数,执行请求

  5. .刷新页面,请求接口(返回值便是上一步已经修改好的值)

  6. 关掉breakpoint,点击【abort】

如果点击了【cancel】,只关闭此次编辑。下次访问此接口时还会进入breakpoints页面。

 

本地修改

对于maplocal功能的理解:

接口返回值通过抓包工具处理成了 一个本地文件。这个本地文件中的设定值被作为接口返回值了。

  1. 复制 response内容,保存为.txt 文件,存在电脑本地。               (注意:保存为txt 后,将文件“另存为”编码方式选择utf-8,否则接口可能无法识别汉字导致出现乱码)
  2. 修改response指向(选中需要修改response值的接口 后点击右键,选中maplocal功能)        (注意:记得点击【OK】键才能将配置保存成功!!!)

  3. 修改txt文件中 需要修改的字段值,保存

  4. 重新请求此接口,此时接口返回值已经是 txt文件中的期望值了

  5. .不用的时候,关掉maplocal。

弱网测试

  1. 模拟超慢网速(会导致接口数据返回超时的那种...) 设置带宽和延迟时间(毫秒)
  2. 打开 throt settings (功能生效后 接口数据返回会很慢)

模拟403/404

  1. tools——>blacklist
  2. 允许启用黑名单功能,选择接口返回错误的形式(404 或者403),添加接口地址并保存     注:【blocking connection】 选项可以选择“drop connection”或者 “403 respose”.前者接口会直接返回404错误,后者接口返回403错误

  3. 选中需要返回404/403的接口,点击【ok】

屏蔽web网页的抓包信息

应用场景:屏蔽web网页的抓包信息

proxy-->windows proxy(前面没有对勾,就不会抓到 PC浏览器的包)

proxy-->macOS proxy(mac电脑)

关注接口

抓包列表中有好多抓包结果是我们不会关注的,用下面的方法可以让这些我们不关注的接口在列表中隐藏

  1. 添加关注的接口  

    注:host : *baidu* 代表 host中含有"baidu"字符的所有host

          protocol :http 或者https. 如果什么都选,代表 两中协议都会生效,相当于二者兼选

          port:  protocol为http 时填  80  ,protocol 为https时填 443  。什么都不填也没有关系。

  2. 启用关注接口

  3. 重新抓包结果       不在上一步配置中的接口,都会隐藏在other host中

简单压力测试

接口请求次数、并发量、请求延迟时间均可配置

  1. 选中需要进行测试的接口,鼠标右键 选中【repeat advance】
  2. 下面的图中,选择了三个接口,每次迭代中3个接口同时请求,迭代1000次(总计请求3000次接口),

    每个接口每次并发100次请求。

charles的证书下载(app)

默认情况下,charles不能解析https协议的接口,里面的请求和响应数据都是乱码格式,所以我们需要下载ssl证书,来获取里面的数据

证书下载

前提:保证电脑和手机在同一网络段(手机和电脑连接同一个wifi/热点)

  1. 在proxy中找到proxy settings
  2. 设置端口port以及勾选Enale transparent HTTP proxying

  3. 在proxy中找到SSL proxy settings

  4. 新增https对应的host以及端口号

  5. 点击help选择ssl Proxying,点击第三个(下载移动端证书)

  6. 设置移动端代理     (1.找到连接的wifi,点击进入设置代理 2.设置为手动,并填写对应的ip和端口号)

  7. 使用手机下载ssl证书,用手机游览器输入:chls.pro/ssl,前往

  8. 点击”立即下载”按钮

  9. 下载完成之后进行安装即可

  10. 验证能否抓取到app端的接口

  • 手机输入123查询

  • 获取到该接口信息

charles的证书下载(虚拟器)

  1. 第一步:打开虚拟机设备
  2. 第二步:去掉window peoxy的勾选项(对app端测试)

  3. 点击proxy选中proxy Setting

  4. 启动http代理端口(默认8888)

  5. 在help中选中SSL Proxying 中的Mobile Device 安装

  6. 显示如下图所示信息

  7. 点击设置按钮

  8. 点击”wifi”

  9. 长按已连接的WiFi

  10. 点击”修改网络”

  11. 勾选”高级选项”

  12. 点击代理下拉框

  13. 选中”手动”

  14. 填写代理信息(ip和端口信息)

  15. 点击”保存”

  16. 打开模拟器中的游览器

  17. 输入对应的网址:chls.pro/ssl ,下载证书

  18. 点击下载的证书

  19. 给证书命名并确定

  20. 显示证书已安装

  21. 打开模拟器上的app,观察Charles中捕获的接口

  22. 以上为模拟器上安装证书操作,接下来就可以捕获接口操作了

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值