一、charles的原理

1.1:Charles的原理

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

1.2:总结:

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

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

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

二、获取Web端的https

1.下载证书

1.1:为什么下载charles的ssl证书 

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

1.2:开始下载

1.2.1 :点击help,选中ssl Proxying ,点击Install Charles Root Certificate

1.2.2:点击”安装证书”按钮

1.2.3:点击”下一步”按钮

1.2.4:选中”将所有的证书都放入下列存储”,点击”浏览”按钮

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

1.2.6:点击”下一步”按钮

1.2.7:点击”完成”按钮

1.2.8:界面弹出”导入成功”弹框

2.继续操作

2.1:点击”proxy”按钮,选中Proxy Settings…

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

2.3:点击’proxy”按钮,选中SSL Proxyig settings

2.4:点击勾选运行代理,点击“add”按钮

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

2.6:点击”OK”按钮

2.7:重启Charles,即可

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

3.1打开charles

3.2:打开浏览器输入数据

3.3:查看Charles

3.4:从上图所看,能获取htpps的包数据,即可对web端进行抓包

三、charles的功能操作

1.断点调试

方法一: breakpoints(修改request)

1.1:接口处 鼠标右击,选择breakpoints(允许本接口使用breakpionts功能)

1.2:开始设置断点值, 输完值记得点【ok】按钮保存设置。

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

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

方法二: breakpoints(修改response)

1.接口处 鼠标右击,选择breakpoints(允许本接口使用breakpionts功能)

2.开始设置断点值, 输完值记得点【ok】按钮保存设置。

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

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

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

2.本地修改

对于maplocal功能的理解:

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

1.复制 response内容,保存为.txt 文件,存在电脑本地。

注意

保存为txt 后,将文件“另存为”编码方式选择utf-8,否则接口可能无法识别汉字导致出现乱码

2.修改response指向(选中需要修改response值的接口 后点击右键,选中maplocal功能)

注意:记得点击【OK】键才能将配置保存成功!!!

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

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

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

3.弱网测试

1.模拟超慢网速(会导致接口数据返回超时的那种...)

设置带宽和延迟时间(毫秒)

:可以根据下图中的翻译体会下导致网络延迟的原因:

2.打开 throt settings (功能生效后 接口数据返回会很慢)

3.使用完毕后,记得关闭此功能!!!否则网速超级慢(Charles4.0此功能是一个小乌龟,Charles3.0是一个小红旗)

4.屏蔽web网页的抓包信息

四、获取app端https

1.charles的证书下载(app)

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

1:在proxy中找到proxy settings

2:设置端口port以及勾选Enale transparent HTTP proxying

3:在proxy中找到SSL proxy settings

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

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

6:弹出对应的ip地址和端口号

7:设置移动端代理

7.1:找到连接的wifi,点击进入设置代理

7.2:设置为手动,并填写对应的ip和端口号

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

9:点击”立即下载”按钮

10:下载完成之后在手机设置中进行安装即可

11:验证能否抓取到app端的接口

11.1:手机输入123查询

11.2:获取到该接口信息

charles的使用相关推荐

  1. Charles抓取https请求

    最近公司将Windows产品的http请求,替换成https请求了,当https请求超过5次失败,就自动切换回http请求.测试时使用Charles抓包测试. 一.http抓包 http抓包比较简单, ...

  2. 强大的Charles的使用,强大的flutter1.9

    <a href="http://www.cocoachina.com/articles/37551?filter=ios"> 强大的Charles强大的flutter ...

  3. charles和Fiddler感觉哪个更好用

    1.fiddler还可以抓HTTPS的包,解析出来都可以 2.charles更直观,可能是我先用charles的缘故.charles遍历一个站点,可以右键另存,保存全站文件资源. 扒站首选, char ...

  4. 在iOS端如何使用Charles用作http调试

    转:http://blog.csdn.net/messageloop3/article/details/9966727 在iOS端如何使用Charles用作http调试 After noticing ...

  5. Charles抓包实战详解

    访问我的博客 前言 通过上一篇文章,想必你已经掌握了如何正确安装抓包神器 Charles,如果还是抓不了包,可以再看看. 今天要做是抓包实战,因为我在做网络文学的公司就职,所以就拿网络文学的 APP ...

  6. Yours的Ryan X Charles谈BCH驱动社交媒体

    "我们才刚刚开始要见证数字加密货币彻底改变世界经济的运作方式." 比特币中文站 2018/04/25 21:33 来源:cn.bitcoin.com 作者:Jamie Redman ...

  7. 代理工具Charles使用

    代理工具Charles使用 分类: MAC 2014-03-27 20:41 7810人阅读 评论(2) 收藏 举报 手机开发 一.跟踪HTTPS 1.下载官方的证书ssl.zip证书,解压成*.cr ...

  8. Charles抓取微信小程序数据 以及 其它应用网站数据

    为了抓取小程序数据所以使用Charles来抓取,下面介绍下使用方法(mac环境下使用).使用Charles可以非常方便的抓取Http/Https请求.官方dmg下载地址:点击此处下载 Charles抓 ...

  9. Charles 河畔的大圆顶

    近期,在MIT大学纳米实验室(MIT.nano)展示了一个6英寸硅圆晶片,上面刻蚀了MIT标志性大圆顶建筑.组成图案中的印记部分是由27万名从1861至2018年期间在MIT学习.工作的人员名单组成. ...

  10. charles 安装 ssl_前端开发如何使用抓包工具 charles

    抓包工具 https://www.charlesproxy.com/latest-release/download.do charles 官网 一. 安装 1. 下载 (自行根据系统下载对应软件) 打 ...

最新文章

  1. 参数服务器训练基本理论
  2. 原子操作之sync/atomic
  3. linux mint输入法托盘,linux mint12安装ibus之后,语言栏不跟随光标和系统托盘输入法图标不能显示问题解决...
  4. sql语句中时间格式转化举例
  5. vue中动态设置style样式和使用filters过滤器设置样式
  6. Jenkins 利用HTML Publisher plugin实现HTML文档报告展示
  7. 指示函数和sign函数(符号函数)
  8. 70道经典Android面试题加答案--重要知识点几乎都涉及到了
  9. Linux常用知识与命令
  10. HTML5-canvas标签
  11. zsh fg: no job control in this shell.
  12. 车道线检测-LSTR-论文学习笔记
  13. jmeter中插件管理工具Plugins Manager
  14. inurl:faq.php?action=,什么是财富等级 | 帮助 | 酷狗直播 | 就是歌手多
  15. 中国企业家:TD-SCDMA的坎坷商业路
  16. 知我者,谓我心忧,不知我者,谓我何求。何必说?
  17. linux 系统的磁盘 mbr 转gpt方法
  18. 三角形面积的计算公式,外接圆半径
  19. 如何设置计算机桌面待办事项,怎么在Windows电脑桌面便签上显示未来要处理的待办事项?...
  20. matlab fabs能用吗,为什么使用abs()或fabs()代替条件否定?

热门文章

  1. Python+Vue计算机毕业设计牙无忧6ayy4(源码+程序+LW+部署)
  2. 基于TIA博途SCL语言的设备累计运行时间FB函数库_具体方法及程序示例
  3. Jweb-Servlet 知识点+代码实操
  4. 王兴的190条程序员技术人生的思考!
  5. 【LeetCode】1655. Distribute Repeating Integers 分配重复整数
  6. hihoCoder #1692 : 第K小分数
  7. 用php表示掷骰子两次比大小,python学习之掷骰子游戏
  8. 安装win11电脑必须支持TPM2.0和必须支持安全启动的解决方法
  9. B2B平台显现5大价值特征和6种商业创新模式
  10. windows服务器迁到_Windows服务器迁移工具使用攻略