Charles抓包工具实战教程(完结)
Charles抓包工具测试实战教程
文章目录
- Charles抓包工具测试实战教程
- 学习准备
- 目标
- 文章介绍
- Charles介绍
- Charles是什么?
- Charles工作原理?
- Charles能做什么?
- Charles简介
- Charles安装和配置
- Charles组件介绍
- Charles主导航栏介绍
- Charles代理配置
- Charles访问控制
- windows代理设置
- mac代理设置
- mac快捷代理设置
- ios代理设置
- andriods代理设置
- Charles实战!!!
- 抓包问题分析
- https抓包
- Windows证书配置
- MacOS证书配置
- Charles Https代理配置
- IOS证书配置
- 安卓(andriods)配置ssl证书
- 处理安卓(andriod)手机部分APP可能使用了flutter等框架导致http/https请求无法抓取
- Charles流量配置
- 弱网测试实例
- Charles断点配置&实例演示
学习准备
- 有功能测试经验
- 需求
- 测试用例
- 测试工具
- 测试方法
- 熟悉接口测试
- 接口概念
- 接口测试
目标
- 能够用Charles来分析前后端的问题
- 能够用Charles模拟弱网测试环境(弱网:网络不好的情况,或者实现2g,3g情况)
- 能使用Charles的断点构建一场的测试场景(针对特殊测试场景,通过修改请求参数以及修改返回参数)
文章介绍
- Charles介绍
- Charles安装和配置
- Charles实战
Charles介绍
Charles是什么?
Charles中文名叫青花瓷是一个基于http协议的代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的
特点:跨平台,半免费
Charles工作原理?
- 前置步骤:
- 需要运行Charles并配置代理
- 在客户端上面需要配置代理
- 步骤
- 有客户端发送请求
- Charles接收再发送给服务器
- 服务端返回请求结果给Charles
- 由Charles转发给客户端
Charles能做什么?
- 支持HTTP及HTTPS代理
- 支持流量控制
- 支持接口并发请求
- 支持重发网络请求
- 支持断点调试
Charles简介
对比fiddler
- Charles能够支持Linux, MacOs
- Charles支持按域名和按接口查看报文,简洁明了
- Charles支持反向代理
- Charles网络限速可选择网络类型
- Charles可以解析AMF协议
Charles安装和配置
下载地址:https://www.charlesproxy.com/
安装过程不难,要是那装不明白的话,多下载几遍qq或者微信然后安装一下就可以举一反三了
Charles组件介绍
Charles主导航栏介绍
清除请求数据
开始/取消抓包
开/关ssl代理
开启/关闭慢速网络
开启/关闭断点设置
请求数据
重新发送请求
校验返回的请求
工具
设置
Charles代理配置
- 首先Proxy > Proxy Settings* 点开之后默认的端口号会是8888,这里我们不做修改,但工作中如果有不同端口的话需要及时进行调整
Charles访问控制
首先点开Proxy > Access Control Settings
点开后
这里讲解一下点击add会让你添加ip这个ip只的就是你使用设备代理到抓包电脑的的ip,一般来讲就是你需要被抓包的设备的ip
当然我这里所填写的192.168.100.1就是我需要被抓包的设备ip,这里一般情况下需要保证被抓包设备已经是和您抓包的设备在同一网络内或者在您抓包设备的子网中,这里如果有不明白的话,可以去打字的看一下计算机网络相关知识.
我们在上上图中会发现这样一行字,大致的意思就是
- 当你勾选之后您的抓包设备配置了对应的代理网络ip和端口可以对应您抓包设备的ip和您之前在proxy settings中配置的端口相同时,他会向您询问是否将新的被抓包设备ip加入到ip range中
- 如果您不勾选的话那么,如果您不手动添加ip的话,那么是没有办法直接允许使用代理网络的
当配置完对应的是没办法马上就可以进行抓包的这时候我们要进行下面的操作设置对应系统的代理才可以进行有效合理的抓包
windows代理设置
在对应的浏览器中进入设置,这里推荐使用chrome,在地址栏中输入
chrome://settings/
这个地址仅限于chrome浏览器
在搜索框中输入“代理”
点击“打开您计算机的代理设备”
在手动设置代理中开启代理
在地址输入框中输入您抓包设备的IP地址以及端口
点击“保存”,关闭页面
注意⚠️: 如果您的抓包设备和您被抓包的设备是同一台的win电脑的时候默认情况下,charles会默认配置好的,但是如果不是同一台win的话那么就需要一以上的操作
mac代理设置
待更新
mac快捷代理设置
待更新
ios代理设置
首先打开设置
然后打开wifi(一般情况下是wifi除非您使用了usb或者蓝牙共享网络,这种骚操作暂时不讨论)
接下来点击已经链接上的wifi后面的小感叹号
拉到最下面点击 : HTTP代理>配置代理 > 选择手动然后在下方填写,您Charles运行的设备的ip以及您proxy setting中的端口号
完活!
andriods代理设置
同理ios
首先打开设置进入wifi设置(ps:这里需要保证手机和charles设备[这里应该是你的电脑],在同一网络下)这里用的手机是vivo其他手机同理,请自行推理
接下来点击上图中的小箭头进入下方界面, 然后选择代理 -> 手动
然后去填写对应的ip和端口号吗, 这里ios也是一样的,需要填写的端口是你charles中设置的代理的端口, 而ip是需要填写您对应的charles设备的ip, 我这里使用的charles设备也就是我的电脑的ip是192.268.14.222, 所以设置如下
然后退出您的电脑的charles中就会出现如下, 点击allow允许代理, 窗口中的192.168.14.238, 根据上图可以推理得出就是我使用的vivo手机的ip
Charles实战!!!
抓包问题分析
- 前端?
- 后端?
模拟具体实战问题:
假如在某一个系统中进行了点击某个按钮后返回以下两种提示信息:
- 数据异常
- 弹出两次数据异常
实施的具体步骤首先: Charles代理配置>客户端代理配置>操作客户端软件>分析请求数据
使用抓包工具,根据请求数据来判断是否为前端还是后端问题…此处详解等待本周休息日我写一个模拟案例之后截图进行讲解
https抓包
首先判断Charles是否可以进行https抓包
我们打开https://azang.blog.csdn.net
这里说明我们是可以抓到https的报文的,但是因为「粗浅的解释:HTTP是超文本传输协议,信息是明文传输,HTTPS是具有安全性的SSL加密传输协议,所以HTTPS被报文被进行了加密」,所以对于Charles需要进行的一定的配置. 这里的解决方案就是安装SSL证书
Windows证书配置
- 打开Charles,选择“help” -> “SSL Proxying” -> “install Charles Root Certificate”
- 在打开的证书框中, 点击“安装证书”, 选择“本地计算机”, 点击”下一步“
- 选择“将所有证书都存放下列储存”, 再点击“浏览”
- 选择“收信任的根证书颁发机构”, 点击“确定” -> “下一步” -> “完成”
MacOS证书配置
- 打开Charles,选择“Help” -> “SSL Proxy” -> “Install Charles Root Certificate”
- 出现一个弹窗选择登陆然后添加
- 然后会有一个钥匙串访问在登录中找到对应证书,然后将使用此证书时选择始终信任
- 点击关闭窗口它会让输入密码,然后输入您的密码点击更新设置
- 这时候我们可以看见证书的状态发生了改变变成了加号
Charles Https代理配置
在Charles窗口中点击菜单“proxy” -> “SSL proxying setting”
在打开的设置窗口中勾选“Enable SSL Proxying”,如果include中没有值的话
点击add,下图中的host里面填写*表示所有的,如果您只需要特定的话填写特定的域名或者ipport是端口号,https默认的端口号是443
点击“OK”
我们重新打开网站https://azang.blog.csdn.net会发现我们可以得到报文了
IOS证书配置
在电脑上运行Charles,并且IOS手机设置好代理,在浏览器中地址栏输入:
http://charlesproxy.com/getssl
然后进入设置点击下载描述文件
点击安装
返回“通用”页面选择“关于本机”
点击“证书信任设置”,启用Charles Proxy CA证书并确认
安卓(andriods)配置ssl证书
首先Charles -> help中下载ssl证书
然后传送到手机上接下来在手机上进行安装证书的操作
首先打开设置搜索证书, 且点击WlAN证书(这里使用的是vivo其他手机自行推理)
然后点击WLAN证书
接下来需要在你手机存储空间中找到对应的证书文件然后选择
然后编辑一个你可以记住的证书名称. 这里最主要还是示范演示写随便写了一个c
点击确定之后会提示你安装完成, 这里再去charles看https的请求的话那么就会发现内容不在是密文了
不过同时一些细心的xdm也会发现有一部分的https请求,如果开了https代理甚至是无法通过的, 比如vivo手机中的对于你vivo.com.cn域名的请求就是无法通过的, 这里就是因为厂家的内部设置了, 暂时我也没有找到解决的方案, 如果有人找到方案的话可以评论区留言
处理安卓(andriod)手机部分APP可能使用了flutter等框架导致http/https请求无法抓取
在实际情况下, 以及现在各种框架百花齐放的. 有很多框架会因为安全考量去检测本机是否使用了wifi代理, 如果使用的话这要绕过wifi代理, 这对安全更好了, 但是对于测试产生了很大的难度, 一下就是解决方案
众所周知
Charles抓包工具实战教程(完结)相关推荐
- Charles抓包工具安装教程
Charles抓包工具简介 Charles是常用的网络封包截取工具,在做移动开发和测试时常常需要截取网络封包来分析. Charles是通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都 ...
- 全网最详细charles抓包工具详细教程,实战教程(细致)
目录:导读 一.前言 二.在PC端抓https包 三.在PC端抓https包 四.在移动端抓http包 五.在移动端抓https包 一.前言 charles相当于一个插在服务器和客户端之间的" ...
- charles抓包(charles抓包工具详细教程)
charles 为什么能抓https的包?原理是什么 众所周知,http明文传输,https加密就是为了在传输层禁止暴露明文,但是为什么抓包工具又能抓到? 岂不是和https的设计矛盾了?? 简单的说 ...
- charles抓包工具详细教程
由于个人记性不好,所以决定写篇博客记录下来具体步骤. 我们都知道,charles相当于一个插在服务器和客户端之间的"过滤器".当客户端向服务器发起请求的时候,先到charles进行 ...
- 【抓包教程】- 微信视频号下载教程,使用charles抓包工具,如何设置charles抓包工具,以及具体在某一个视频上如何抓包
Reference Charles 功能介绍和使用教程 - 掘金 学完这篇Charles抓包教程,我直接把fiddler卸载了 - 知乎 一.下载微信视频号里的视频方法小结 1.1 抓包 例如char ...
- Charles 抓包工具教程(七) Charles- compose 创建模拟请求
本文为在霍格沃兹测试开发学社中学习到的一些技术,写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~ Charles- compose 创建模拟请求 一.背景 二.Compose 一. ...
- Charles抓包工具 + (夜神)安卓模拟器实现代理抓包,最详细教程
Charles抓包工具 + (夜神)安卓模拟器实现代理抓包 前置条件 :电脑和模拟器使用同一个网络没用Charles之前 :后端菜鸡 : 嘿嘿嘿(及其可怜,卑微,弱小) , 安卓大佬帮我查下这个功能接 ...
- 在华为工作十年的大佬手把手教你Charles抓包工具使用,还学不会你就完了!
一.为什么使用charles 几天因为需要通过抓包定位问题,打开了尘封已久的fiddler,结果打开软件后什么也干不了,别说手机抓包了,打开软件什么请求也抓不到.很多时候都是如此,如果一个方案不行,肯 ...
- Charles抓包工具使用介绍
Charles抓包工具使用介绍 Charles简介 Charles是一个http协议调试的代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯.设置断点.查看所有进出Charles数据的一 ...
- charles抓包工具的中文乱码解决方法
charles抓包工具的中文乱码解决方法 参考文章: (1)charles抓包工具的中文乱码解决方法 (2)https://www.cnblogs.com/grimm/p/7494688.html 备 ...
最新文章
- 祝贺!清华大学姚期智教授荣获2021届京都奖:“日本的诺贝尔奖”
- 你的大脑里有AI吗?
- java 读写文件[多种方法]
- python3多进程 queue 取值_【整理】python多进程之间共享queue | 勤奋的小青蛙
- 无法启动此程序,因为计算机中丢失msvcrtd.dll,Win7打开剑灵提示“丢失d3dx10_43.dll、MSVCRTD.dll文件”怎么办?...
- python批量查询数据库_Python + MySQL 批量查询百度收录
- Spring Boot和Spring数据JPA集成
- div模拟select/option解决兼容性问题及增加可拓展性
- 服务器网盘系统怎么装,云服务器上怎么安装操作系统
- python的river安装
- 在vmware虚拟机器上安装1000gwall(原创)
- 华为机试——字串的连接最长路径查找
- Flume案例Ganglia监控
- 激活BI Content
- 月薪 100K?还不来看看区块链学习清单?字字都是 Money!
- 微会显示服务器当前线路忙,免费电话之争:触宝电话/微会谁更强
- oracle 返回list,myabatis oracle 调用存储过程返回list结果集
- C#实现Excel导出
- Android开机启动广播
- 大数据:新动力 新机遇 新途径
热门文章
- 获取a标签的文本 asp.net_Python小程序2获取href的值
- view函数_python测试开发django63.基于函数的视图(@api_view())
- Docker从理论到实践(四)------Dokcer镜像
- Dynamic Rankings(整体二分)
- Java使用POI导出excel(下)——实例与小技巧
- 2017.0622.《计算机组成原理》-虚拟存储器和主存
- css一行内容过多显示省略号
- 【转载】回顾中国股市十年市盈率,我们还看得见希望吗?
- 代码设定的按钮与storyboard中的xib页面间的跳转
- javascript 动态选中option