![cover](https://img-blog.csdnimg.cn/img_convert/421ba5d60badf4bd622829c71228341e.png)
charles代理工具使用
这一步跟Fiddler不同,Fiddler安装证书后就可以抓HTTPS网址的包了,Charles则麻烦一些,需要在上一步的SSL选项卡的Locations表单填写要抓包的域名和端口,点击Add按钮,在弹出的表单中Host填写域名,比如填。(2)在移动设备上截获网络请求,我们的移动设备必须和电脑在同一网段,在我们电脑的网络设置中查看IP地址,然后在移动设备上点击我们连接的电脑上的网络,在代理一栏中,
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
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)