找回密码
 会员注册
查看: 26|回复: 0

Charles功能介绍和使用教程

[复制链接]

3

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2024-9-19 15:48:18 | 显示全部楼层 |阅读模式
背景Charles是一个HTTP和SOCKS代理服务器。代理请求和响应使Charles能够在请求从客户端传递到服务器时检查和更改请求,以及从服务器传递到客户端时的响应。抓包PC端抓包选择菜单中的Proxy->MacOSXProxy确保Charles处于StartRecording状态。移动端抓包手机和电脑在同一个网络:电脑关掉防火墙,打开Charles的代理:Proxy->roxySettings弹窗,填入代理端口(端口默认为8888,不用修改),勾选EnabletransparentHTTPproxying。wifi里找到代理,选择手动,填写IP地址,端口8888HTTPS抓包「pc端证书下载安装:」Help->SSLProxying->InstallCharlesRootCertificate方式一:直接下载方式二:如果下载不了,去官方下载证书信任「移动端证书下载安装:」Help->SSLProxying-InstallCharlesRootCertificateonaMobileDevice。然后会弹出下面的提示。手机浏览器输入:chls.pro/ssl下载后打开手机设置-通用-描述文件与设备管理,选择配置描述文件,选择信任即可,看到已验证就行。最后手机设置-通用-关于手机-证书信任设置,选择开就可以使用HTTPS抓包了。❝注意:手机和电脑的证书的版本需要对应。你手机本来就有1个是旧版本的,但是电脑连得是新版本,也要重新下载。❞为什么要安装证书如果是HTTP请求,因为数据本身没有加密,所以请求内容和返回结果是直接展示的。但HTTPS对数据进行了加密处理,所以Charles面对客户端,把自己伪装成服务器,对服务器把自己伪装成客户端。Charles拦截客户端的请求,伪装成客户端向服务器进行请求,服务器向“客户端”(实际上是Charles)返回服务器的CA证书;Charles拦截服务器的响应,获取服务器证书公钥,然后自己制作一张证书,将服务器证书替换后发送给客户端。(这一步,Charles拿到了服务器证书的公钥);客户端接收到“服务器”(实际上是Charles)的证书后,生成一个对称密钥,用Charles的公钥加密,发送给“服务器”(Charles);Charles拦截客户端的响应,用自己的私钥解密对称密钥,然后用服务器证书公钥加密,发送给服务器。(这一步,Charles拿到了对称密钥);服务器用自己的私钥解密对称密钥,向“客户端”(Charles)发送响应;Charles拦截服务器的响应,替换成自己的证书后发送给客户端;当然,如果用户不选择信任安装Charles的CA证书,Charles也无法获取请求内容。还有一种,如果客户端内置了本身的CA证书,这时如果Charles把自己的证书发送给客户端,客户端会发现与程序内的证书不一致,不予通过,此时Charles也是无法获取信息的。基础设置工具导航栏Charles顶部为菜单导航栏,菜单导航栏下面为工具导航栏。视图如下图所示:清除捕获到的所有请求红点状态说明正在捕获请求,灰色状态说明目前没有捕获请求。灰色状态说明是没有开启网速节流,绿色状态说明开启了网速节流。灰色状态说明是没有开启断点,红色状态说明开启了断点。编辑修改请求,点击之后可以修改请求的内容。重复发送请求,点击之后选中的请求会被再次发送。验证选中的请求的响应。常用功能,包含了Tools菜单中的常用功能。常用设置,包含了Proxy菜单中的常用设置。structure按照域名划分sequence按时间排序太多了可以看工具栏底下按照Filter筛选使用指南ProxyProxy菜单包含以下功能:Start/StopRecording:开始/停止记录会话。Start/StopThrottling:开始/停止节流。Enable/DisableBreakpoints:开启/关闭断点模式。RecordingSettings:记录会话设置。ThrottleSettings:节流设置。BreakpointSettings:断点设置。ReverseProxiesSettings:反向代理设置。PortForwardingSettings:端口转发。WindowsProxy:记录计算机上的所有请求。ProxySettings:代理设置。SSLProxyingSettings:SSL代理设置。AccessControlSettings:访问控制设置。ExternalProxySettings:外部代理设置。WebInterfaceSettings:Web界面设置。RecordingSettings(记录会话设置)RecordingSettings有Options、Include、Exclude三个选项卡:Options:通过RecordingSizeLimits限制记录数据的大小。当Charles记录时,请求、响应头和响应体存储在内存中,或写入磁盘上的临时文件。有时,内存中的数据量可能会变得太多,Charles会通知您并停止录制。在这种情况下,您应该清除Charles会话以释放内存,然后再次开始录制。在录制设置中,您可以限制Charles将记录的最大大小;这根本不会影响你的浏览,Charles仅会停止录制。Include:只有与配置的地址匹配的请求才会被录制。Exclude:只有与配置的地址匹配的请求将不会被录制。或者用Focus进行快速过滤ThrottleSettings(节流设置)模拟弱网环境Bandwidth:带宽Utilistation:利用百分比Round-trip:往返延迟MTU:字节BreakpointSettings(断点设置)点击Charles菜单,勾选Proxy,打开Breakpointsettings对话框,设置charles断点。WindowsProxy(记录计算机上的所有请求)抓取电脑的请求,勾选WindowsProxy,如果只需要抓取移动端请求,则取消勾选这个选项。ProxySettings(代理设置)设置代理默认端口号SSLProxySettings(SSL代理设置)勾上EnableSSLproxying就完成了在Charles上的SSL代理设置。之后也可以选择Add,然后填入需要监控的Host和Port信息,这样就达到了针对某个域名启用SSL代理的目的。ToolsTools菜单包含以下功能:NoCachingSettings:禁用缓存设置。BlockCookiesSettings:禁用Cookie设置。MapRemoteSettings:远程映射设置。MapLocalSettings:本地映射设置。RewriteSettings:重写设置。BlackListSettings:黑名单设置。WhiteListSettings:白名单设置。DNSSpoofingSettings:DNS欺骗设置。MirrorSettings:镜像设置。AutoSaveSettings:自动保存设置。ClientProcessSettings:客户端进程设置。Compose:编辑修改。Repeat:重复发包。RepeatAdvanced:高级重复发包。Validate:验证。PublishGist:发布要点。Import/ExportSettings:导入/导出设置。Profiles:配置文件。PublishGistSettings:发布要点设置。Map映射:MapRemoteSettings:远程映射设置。MapLocalSettings:本地映射设置。❝Charles的Map功能分MapRemote和MapLocal两种,顾名思义,MapRemote是将指定的网络请求重定向到另一个网址请求地址,MapLocal是将指定的网络请求重定向到本地文件。❞MapRemoteSettings使用:图示,将所有www.c**.com的请求重定向到了www.58**.com❝(有些比较复杂的网络请求),可以将请求结构保存到本地,然后再使用MapLocalSettings(本地映射)的文件。❞RewriteRewrite功能适合对某一类网络请求进行一些正则替换,以达到修改结果的目的。可以重写接口所有元素的内容:header、host、url、path、queryparam、responsestatus、body。Charles功能总结截取Http和Https网络封包。支持重发网络请求,方便后端调试。支持修改网络请求参数。支持网络请求的截获并动态修改。支持模拟慢速网络。Structure视图将网络请求按访问的域名分类。Sequence视图将网络请求按访问的时间排序。Map功能适合长期地将某一些请求重定向到另一个网络地址或本地文件。Rewrite功能适合对网络请求进行一些正则替换。Breakpoints功能适合做一些临时性的修改。作者简介贾逊雅:行走在路上的可可酱
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-26 12:18 , Processed in 0.887980 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表