一:Charles简介
Charles 是 PC 端常用的网络封包截取工具, 也可以抓取移动端的网络请求。除了调试接口外,Charles 也可以用于分析第三方应用的请求。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。
Charles 支持如下协议:
①HTTP/1.1 ②HTTPS ③HTTP/2 ④ws(WebSocket)
⑤ wss(WebSocket Secure,TLS 加密的 WebSocket) SOCKS
Charles的主要功能:
①截取 Http 和 Https 网络封包。
②支持重发网络请求,方便后端调试。
③支持修改网络请求参数。
④支持网络请求的截获并动态修改。
⑤支持模拟慢速网络。
Charles运行原理:
在这里插入图片描述
(本图片为笔者在网上下载,如有侵权深表歉意,烦请作者联系笔者)
二:Charles下载

      Charles下载地址:https://www.charlesproxy.com/download/latest-release

二:Charles的使用
A:安装证书
方式一:安装用户证书
第一步:点击“help”——> “SSL proxying” ——> “Save Charles Root Certificate”
在这里插入图片描述
(2)将证书保存在本地。
在这里插入图片描述
(3)将证书放置所需抓包的平台(如:浏览器、模拟器、移动端等)【此处演示将证书放置模拟器】
第一步:打开模拟器,点击模拟器右边栏“共享”,打开共享文件夹,将证书放置共享文件夹下的其中一个文件夹中(此处放置音乐共享文件夹)
在这里插入图片描述
第二步:查看证书。点击共享文件下“安卓”图标
在这里插入图片描述
第三步:在主界面点击“系统应用”
在这里插入图片描述
第四步:点击“设置”——> 找到“安全性与位置信息”——>点击“加密与凭据”——>点击“从SD卡安装”。
在这里插入图片描述
第五步:点击左上角的三根横杆,找到证书所在位置。点击证书,此时会出现“确认密码”(模拟器若设置密码),接着出现“为证书命名”,点击确定即完成安装。(若模拟器未设置密码,此时需要先设置密码)
在这里插入图片描述
第六步:查看证书是否安装完成。点击主界面“系统应用”——>
点击“设置”——> 找到“安全性与位置信息”——>点击“加密与凭据”——>点击“信任的凭证”——>点击“用户”。若安装完成,则会在用户下显示。
在这里插入图片描述
方式二:安装系统证书
第一步:将Charles证书保存在本地。
第二步:将证书放置于Kali系统中(若从Windows系统中可使用复制粘贴方式,将文件粘贴至Kali系统界面文件夹中)
在这里插入图片描述
第三步:输入命令 openssl x509 -subject_hash_old -in Charles.pem 可得到一个系统级别的证书编号。
在这里插入图片描述
第四步:根据得到的系统级别证书编号,修改证书名称。(如:将Charles.pem修改成f2b4c944.0【安卓系统级别的证书是以.0结尾的】)
在这里插入图片描述
第五步:打开本地CMD窗口,窗口切换至模拟器的的Memu目录(如:D:\Microvirt\Memu)
在这里插入图片描述
第六步:使用命令连接文件准备上传。 ./adb connet 127.0.0.1:21503(逍遥模拟器使用503端口)
第七步:使用命令将文件上传至模拟器。 ./adb.exe push 证书的URL(可直接从本地拖至此处) 模拟器的URL
第八步:在模拟器下挂载一个system目录,并将已经上传的证书复制到/system/etc/security/cacerts中。
第九步:将证书文件权限提升为777,重启模拟器即完成系统证书安装。
B:使用Charles抓包
方式1:
第一步:Charles设置代理
(1)打开Charles,在工具栏点击“Proxy”——> 找到并点击“Proxying setting”。
在这里插入图片描述
(2)进入代理设置页面,设置代理服务器的端口。
在这里插入图片描述
(3)设置请求拦截。点击“Add”,填充Host:* Port:*,再勾选“Enable SSL Proxying”。

第二步:模拟器设置代理
(1)在模拟器的系统应用中的“设置”——>“网络和互联网”——>“WLAN”中设置代理服务器IP地址和端口号。
在这里插入图片描述
方式2:使用代理工具Posten
使用Postern的原因:在实际抓移动端App包场景中,有很多种方案,经典的就是Charles或Fiddler等。但是Charles或Fiddler会有一个问题,如果App设置了不走代理这个选项,那Charles或FiddlerFiddler就不行了。而使用Charles+Postern却可以,因为Charles没有直接监听移动端App,Charles是监听到了Postern上,Postern就是一个vpn,是代理工具。它可以将http请求转为socket,并且将包转发到Charles上,所以App设置不走代理也没用,Postern照样能监听到,然后Postern再转发到Charles上,这样就完成了抓包。
使用代理工具Postern配置步骤:
(1)在模拟器中下载代理工具Postern,打开代理工具。点击左上角的设置(四根横杆)。
(2)点击配置代理——>添加代理服务器,设置代理服务器IP地址和端口号,代理类型为HTTPS/HTTS CONNECT或SOCKS5(此代理类型需要在Charles的代理设置中勾选Socks Proxy),点击保存。
在这里插入图片描述
(3)点击配置规则,点击“添加规则”——>其中配置类型为“匹配所有地址”;动作为“通过代理连接”;代理/代理组为:所要监听的IP。
在这里插入图片描述
(4)点击“关闭VPN”-即打开VPN。若右上角有一个钥匙图标,则表示打开了VPN。
在这里插入图片描述
Charles设置步骤:
(1)打开Charles, 在工具栏点击“Proxy”——> 找到并点击“Proxying setting”,进入设置代理页面。勾选Socks Proxy模块(若代理工具中代理类型设置为SOCKET5,则需勾选);勾选HTTP Proxy模块(若代理工具中代理类型设置为HTTPS/HTTP CONTENT,则需勾选),并添加相应代理类型下的端口号。
在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐