charles代理工具使用

charles代理工具使用

一、原理

Fiddler和Charles都是http协议调试代理工具,它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大。

原理:客户端和服务器之间建立一个代理服务器,监听客户端发出的请求和服务器返回的响应结果

二、Charles(Windows和MAC适用)

3.1 Charles安装配置(windows)

(1)进入→\share.kwps.info\share\测试部资料共享\Account&Drive&Store\测试工具\抓包工具\charles

PS:注意安装包的位数与电脑系统的位数一致

(2)安装完成后,打开Charles软件,点击proxy,选择proxy settings,port填写为8888,勾选port下的复选框:

(4)接着手机(安卓或者IOS)连接WiFi:kso,身份验证输入kingsoft.com账号,连接成功之后,连接电脑IP,电脑IP查询如图:

(5)安卓手机手机连接WiFi后,设置代理:

IOS端连接WiFi后,设置代理:

手机中的代理设置好之后,PC端的Charles会出现以下提示,点击allow:

(6)https抓包请求设置:

电脑安装证书,进入菜单栏,Help->SSL Proxying->Install Charles Root Certificate:

此时会有如下提示,点击“安装证书”,然后按照证书向导一步一步进行操作,即可安装成功。完成了证书的导入:

手机安装证书:help->ssl proxying->install charles root certificate on a mobile device or remote…

Charles也要做相应的配置,进入Proxy->SSL Proxying Settings:

在SSL Proxying Settings中勾选Enable SSL Proxying,并在Locations中输入要抓取的url的host和端口号(port可以为空或者填443):

Ps:*表示所有https的接口都抓取;如果只需要抓取部分域名接口,以下设置即可,对应域名需正确。

手机代理到电脑IP,charles端口,手机自带浏览器访问Charles Web Debugging Proxy • SSL CA Certificate installation 下载证书以及安装同fiddler类似

3.2 Charles安装配置(MAC)

(1)官网Download a Free Trial of Charles • Charles Web Debugging Proxy下载好MAC版安装包后,解压打开,将软件包拖入应用程序文件夹中,这时候一个原版的软件就可以让我们使用,只是有一个试用期

(2)在移动设备上截获网络请求,我们的移动设备必须和电脑在同一网段,在我们电脑的网络设置中查看IP地址,然后在移动设备上点击我们连接的电脑上的网络,在代理一栏中,选择手动,将我们刚才查看的ip地址填写在这里,并且设置一个端口号。

(3)在Charles中的Proxy setting中如下勾选并配置端口号

(4)在Charles的工具栏上点击Proxy按钮,选择Proxy Settings…

切换到SSL选项卡,选中Enable SSL Proxying,别急,选完先别关掉,还有下一步

这一步跟Fiddler不同,Fiddler安装证书后就可以抓HTTPS网址的包了,Charles则麻烦一些,需要在上一步的SSL选项卡的Locations表单填写要抓包的域名和端口,点击Add按钮,在弹出的表单中Host填写域名,比如填api.instagram.com,Port填443

(1)这时候我们打开app,就可以看到数据了,至此抓包工作就搞定了Windows:

在网上下载对应版本的破解jar包,复制补丁文件charles.jar到软件安装根目录的lib目录下,覆盖原文件,启动Charles.exe,破解成功

3.3 Charles破解

Charles是要收费的,未破解的版本,每30分钟会停止

在网上下载相应的补丁文件,复制补丁文件charles.jar到软件安装根目录的lib目录下,覆盖原文件,重新启动Charles.exe,破解成功

3.4 Charles抓包分析

1、面板:

Structure方式:可以很清晰的看到请求的数据结构,而且是以域名划分请求信息的,可以很清晰的去分析和处理数据。

Sequence模式:可以很清晰的看到全部请求,不用一层一层的去点开,这里是以数据请求的顺序去执行的,也就是说那个请求快就在前面显示。

2、过滤

在 Charles 的菜单栏选择 Proxy->Recording Settings,然后选择 Include 栏,选择Add,然后填入需要监控的协议,主机地址,端口号,这样就达到了过滤的目的。如下图:

3.5 Charles刷接口

repeat功对于前端的价值是不需要刷新页面,只需要repeat请求,比如检验代理是否成功,修改请求后执行等。

“repeat”重复发送一次请求。

“repeat Advances”可以自定义重复次数和重复间隔。

3.6 Charles篡改数据

3.6.1设置断点

打开菜单栏断点设置,点击红色按钮到下沉状态 或者 Tools—>Enable Breakpoints

选择要篡改的请求右键—>选择Breakpoints,勾选

成功设置后状态如下图所示:

再次访问这个接口时,请求在自动在新的页面打开,接口不能成功响应,断点设置成功。

默认的断点是同时拦截请求和响应,如果需要只篡改请求或者响应,修改breakpoint settings。

3.6.2 篡改请求

以下以http://kmosvr.wps.cn:8010接口篡改为例

设置断点,只拦截http://kmosvr.wps.cn:8010请求Request

Proxy—>Breakpoints Settings,选中断点数据双击编辑,只勾选Request,保存设置

再次请求http://kmosvr.wps.cn:8010接口,弹出一个Breakpoints面板,选中Edit Request,修改请求参数,点击Execute。

App即可看到修改后的数据

3.6.3 篡改响应

以下以mrobot.pclady.com.cn接口篡改为例

1、设置断点,只拦截mrobot.pclady.com.cn请求Request

Tools—>Breakpoints Settings,选中断点数据双击编辑,只勾选Response,保存设置

再次请求mrobot接口,弹出一个Breakpoints面板,选中Edit Response—JOSN Text,方便编辑。修改想要篡改的响应参数,点击Execute。

App上即可看到篡改后的数据

3.6.4 映射到本地文件

1)选中想要篡改的相应数据,右键->save Response 存储到本地,最好是txt格式,然后对txt格式内容进行修改为你想要的数据保存,备用。

2)选中请求,右键—>Map Local—>选择之前保存的响应文件—>OK

3)再次访问这个接口时,数据就正常被重写到本地文件

3.7 Charles模拟慢网速

菜单—>Proxy—>Trottle Settings ,勾选Enable Throttling,填写上传和下载带宽,单位是kb/s,点击OK保存即可生效。

三、常见问题

1、已按照设置操作,浏览器还是无法抓到包

排查方法:

(1)chrome浏览器抓不到的情况:实际上fiddler是可以抓chrome的请求的。

由于可能chrome安装了代理管理的插件SwitchySharp,无论选择直接连接还是选择使用代理连接,插件都会屏蔽fiddler的设置。

fiddler会自动给浏览器设置一个代理127.0.0.1 端口8888,并且记忆浏览器的代理设置,所有的请求先走fiddler代理,再走浏览器代理。

如果使用插件,可能会直接屏蔽了fiddler的代理,因此无法监听到请求了。

chrome下的解决方法,代理插件选择“使用系统代理设置”选项,fiddler又重新能看到chrome的请求了。

或者不使用插件,不用卸载,chrome很方便禁用一个插件。然后使用浏览器默认的代理设置方式就ok了。

(2)查看是不是安装了拦截广告的插件。我这里用了电脑管家上网防护插件,导致无法抓包,将插件禁用并重启浏览器后,正常。

2、手机已经安装过证书,代理到电脑,部分https请求不能解析

原因:手机安装证书时是代理到其他电脑安装,或者设备中有多个charles证书

解决方案:删除之前代理到其他pc安装的证书,代理到自己目前的pc,重新安装证书

3、iphone证书无法验证,安装后不能变为已验证

原因:PC端证书没有安装好或者失效,导致验证不通过

解决:pc重新安装pc端证书,删除原有的证书重新安装一遍

4、Android下载证书显示无法下载

解决:1)一定要用手机自带浏览器下载

2)安卓设备一定要设置密码才能下载证书,Android系统安全机制导致。

5、下载证书后无法安装证书

原因:系统无法安装证书类型

解决办法:从设置-(更多设置)-系统安全-从存储设备安装证书-download选择证书FiddlerRoot.cer安装

6、iOS模拟器上抓不到请求包

解决办法:重启模拟器即可

7、手机已经设置好代理,但是无法抓取app发出的请求

原因:在移动设备上截获网络请求,我们的移动设备必须和电脑在同一网段

解决办法:检查是不是链接了zhpublic外网WiFi,一般使用kso网络

8、只想抓取手机上的请求,不想抓PC应用和浏览器的请求

Fiddler:取消勾选monitor all connections

Charles:取消勾选windows proxy

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值