当前位置 博文首页 > 文章内容

    Charles抓包工具操作指南

    作者: 栏目:未分类 时间:2020-07-10 18:06:08

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    一.Charles说明

    Charles是HTTP代理/ HTTP监视器/反向代理,使开发人员或测试人员可以查看其计算机与Internet之间的所有HTTP和SSL/ HTTPS通信。 这包括请求,响应和HTTP标头(其中包含cookie和缓存信息)。 Charles是用Java写的,能够在Windows,Mac,Linux上使用。安装Charles的时候要先装好Java环境。

    二.Charles主要功能

    1. 截取Http 和 Https 网络封包。
    2. 支持重发网络请求,方便后端调试。
    3. 支持修改网络请求参数。
    4. 支持网络请求的截获并动态修改。
    5. 支持模拟慢速网络。

    三.下载安装

    官方下载地址:https://www.charlesproxy.com/download/

    四.破解步骤

    注:仅限个人交流使用,切勿用于商业用途 将下载的charles.jar覆盖到Charles的lib目录下即可​ 查看是否破解成功,点击charles菜单Help->About Charles,如下图所示

    五.电脑端安装证书

    对于HTTPS协议的数据,我们要在电脑端和手机端安装证书,否则会看到返回的数据都是乱码。

    六. 手机端抓包设置

    确保安装Charles的电脑和你的手机在同一局域网内,因为Charles只是一个代理,需要将手机的代理指向 PC 机,不能互相访问是不行的。

    1.启动charles。

    2.在PC端使用cmd命令打开命令行窗口输入ipconfig,获取本机IP地址。 3.在手机端(以Android为例)的wifi代理设置那里去进行相关的配置设置。

    4.长按wifi名称,点击“修改网络”,勾选“显示高级选项”,点击代理,选择手动,服务器主机名输入PC机IP地址,如127.0.0.1,服务器端口(charles的默认设置):8888,点击保存。

    5.配置完成,charles会弹出与手机链接提示框,选择allow

    6.安装手机端证书,在手机上打开网址 http://www.charlesproxy.com/getssl 安装 Charles SSL 证书。 注意,同一个手机对应不同电脑上的Charles都要分别下载证书进行认证,因为手机的证书是和电脑端的Charles一一配对的。

    注意:iOS系统,需要在设置→通用→关于本机→证书信任设置里面启用完全信任Charles证书

    7.Charles工具栏选择Proxy-> SSL Proxying Settings,弹出SSL Proxying Settings选项卡,勾选Enable SSL Proxying,在Location部份选择add,按如下图添加,抓取任意站点、443端口的数据。

    8.打开手机应用即可进行抓包操作。

    七.Charles相关功能介绍

    1.界面介绍

    • Filter:过滤,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。
    • Overview:查看这次请求的详细内容,例如耗时详细列车了请求开始时间、结束时间,响应开始时间、结束时间,总耗时、DNS耗时、网络延时等。对于Size也详细列出了请求头大小、响应头大小、压缩比例等内容。
    • URL:进行网络请求的链接;
    • Status:当前状态,complete表示请求完成;
    • Responce Code:返回码。不同的接口,不同的请求结果,返回码都不同;
    • Protocol:使用的协议;
    • Method:请求方式,如GET请求,POST请求等;
    • Kept Alive:判断当前是否正在链接(活跃);
    • Content-Type:发送的内容类型,如这里用的是XML文本,以UTF8的方式发送;
    • Client Address:客户端的IP地址;
    • Remote Address:远程服务器的IP;
    Timing:
    • Request Start Time:请求开始的时间;
    • Request End Time:请求结束的时间;
    • Response Start Time:返回开始的时间;
    • Response End Time : 返回结束的时间;
    • Duration : 总时间;
    Size:
    • Request:请求发送的大小;
    • Response:返回数据的大小;
    • Total:所有数据大小;
    • Request : 查看请求内容(底下的Headers,Query String,Cookies,Raw。)
    • Headers:发送请求的头部信息;
    • Query String : 发送参数列表;
    • Cookies: 浏览器缓存;
    • Raw:发送的原生数据,包括了头部和参数;
    • Reponse : 查看响应内容
    • Headers:是返回的头部信息;
    • Text:返回信息(除去头部)后的文本;
    • Hex:返回信息的16进制表示;
    • XML:我返回的数据是XML。如果你返回的是JSON,这里就会显示JSON;
    • XML Text:如果你返回JSON,这里会显示JSON Text;
    • Raw:返回的所有原生数据,包括头部;
    • Summary: 查看发送数据的一些简要信息(主机,状态码,数据的类型,header和body大下,加载时间,总时间)
    • Chart: Summary中简要信息以图表形式展示
    • Notes: 其他信息

    (1)菜单栏:Proxy

    从上到下依次为:开始/停止捕捉会话,开始/停止SSL代理,开始/停止模拟网络环境,启用/禁用断点,记录会话设置,SSL代理设置,节流设置,断点设置,反向代理设置,端口转发,记录计算机上的所有请求,代理设置,访问控制设置,外部代理设置,Web界面设置

    (2)菜单栏:Tools No Caching Settings:禁用缓存设置。 Block Cookies Settings:禁用 Cookie设置。 Map Remote Settings:远程映射设置,Map Local Settings:本地映射设置。 使用本机/其它服务器文件代替正常的response,作为长期response重定向功能使用 Compose:构造一条新的请求 Repeat:重复发包,Repeat Advanced:高级重复发包 重发请求,可以用于简单的压力测试 Rewrite Settings:重写设置 动态修改request/response信息,不过他改变的只是部份信息,比如:主机地址(Host),返回状态码(response status),返回信息内容(body)等

    (2)工具栏

    从左到右依次为:清空抓取的请求数据,开始/停止抓取,开始/停止SSL代理,开始/停止模拟网络环境,启用/禁用断点功能,根据所选请求创建一个新的请求,重复选择请求,验证选择的响应,工具,设置

    显示模式 会话的两种视图模式为Structure,Sequence以及对应的Requet,Response面板组成 (1)Structure视图,树状结构显示,可以很清晰的看到请求的数据结构,而且是以域名划分请求信息的,可以很清晰的去分析和处理数据。

    (2)Sequence视图,水平结构显示,可以看到全部请求,这里的结果以数据请求的顺序来显示,最新的请求显示在最下面

    如果不习惯Sequence默认的上下视图,可以修改为类似Fiddler的左右视图模式:Edit->Preferences->Viewers选择Sequence view layout为Tall即可;

    更改后的界面如下图:

    八.常见问题

    Request和Response乱码,首先要确保证书安装成功,其次再看以下两种方法。

    方法一:修改根目录下Charles.ini的配置文件,vmarg.5=-Dfile.encoding=UTF-8

    方法二:Tools -> Rewrite… ->Add