Charles浏览器抓包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Charles浏览器抓包相关的知识,希望对你有一定的参考价值。

参考技术A 一、浏览器

浏览器的核心部分是浏览器内核。

浏览器内核:"Rendering Engine",可大概译为“渲染引擎”,负责对网页语法的解释并渲染网页。通常我们知道的内核有:

1、IE内核(Trident):代表浏览器有 IE浏览器;

2、Firefox内核(Gecko):代表浏览器Mozilla Firefox火狐浏览器;

3、Webkit(Chrome内核原型,开源):代表浏览器Safari浏览器、Android 默认浏览器;

4、Blink:在Chrome(28及往后版本)、Opera(15及往后版本)和Yandex浏览器中使用。

参考链接: https://baike.so.com/doc/6078111-6291197.html

https://bbs.360.cn/thread-14958904-1-1.html

综上,从浏览器内核上来讲,我们主要会在IE、Chrome、FireFox这三个典型的浏览器上进行测试。另外,部分浏览器的新版本是“双核"甚至是"多核",其中一个内核是IE内核(Trident),然后再增加一个其他内核。国内的厂商一般把其他内核叫做"高速浏览模式",而IE内核(Trident)则是"兼容浏览模式",用户可以来回切换。比如360极速浏览器(7.5之前为Trident+Webkit,7.5为Trident+Blink)。还有,微软在Windows10推出的内置浏览器Microsoft Edge,新的Edge浏览器将从 EdgeHTML 内核迁移为 Chromium 内核。

二、Charles浏览器抓包

1、启动Charles,默认会打开Windows Proxy,进行网络请求的抓取;

2、IE浏览器抓包:Charles启动后,默认打开代理,可以直接进行抓包;

3、Chrome浏览器抓包:默认使用Windows代理,可以直接进行抓包;

4、Firefox浏览器抓包:需要手动打开浏览器的代理设置,才可以进行Charles抓包;

5、360浏览器抓包:默认使用Windows代理,可以直接进行抓包;

6、Edge浏览器抓包:默认使用Windows代理,可以直接进行抓包;

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程-Charles安卓手机抓包大揭秘

1.简介

Charles和Fiddler一样不但能截获各种浏览器发出的 HTTP 请求,也可以截获各种智能手机发出的HTTP/ HTTPS 请求。

Charles也能截获 Android 和 Windows Phone 等设备发出的 HTTP/HTTPS 请求。

今天宏哥讲解和分享Charles如何截获安卓移动端发出的 HTTP/HTTPS 请求。

2.环境准备

Charles如果想要实现手机抓包,需要先满足下面 3 个条件:

(1)电脑上安装有Charles抓包工具。

(2)安装有Charles的电脑必须跟手机处在同一个网络里,并且手机网络代理必须设置为Charles,当我们的手机发送数据时必须经过Charles这一层服务。

(3)在Charles中设置好捕获 HTTPS。

1.宏哥的环境是Windows 10版本 64位系统。如下图所示:

2.夜神模拟器的安卓版本是:5.1.1 。   如下图所示:

3.大致思路步骤

1.电脑本地安装charles证书

2.查看电脑charles的IP和端口号

3.手机连接charles,抓取简单的http

4.charles设置ssl proxy setting

5.手机安装charles证书

4.为什么需要安装Charles的CA证书呢?

1)先理清一些概念的东西:

a)简单来说,https是http的安全版本,超文本传输协议http是以明文发送数据,而https是具有安全性的ssl加密传输协议,可以这么认为https=http+ssl。

b)采用https的服务器必须从CA申请一个用于证明服务器用途类型的证书,证书是唯一性,只用于对应的服务器。客户端要认可这个服务器是否是安全的,可以进行访问或者交易等操作,则需要进行对服务端的验证。

下图是客户端对服务器的验证过程:

c)ssl证书,遵循了ssl协议,在客户端和服务器之间建立了一条ssl安全通道,一般ssl证书都是在验证服务器身份后颁发给客户端。

d)由于ssl技术已建立在所有主要的浏览器和web服务器程序中,因此,仅需安装服务器证书就可以激活ssl协议,所以客户端通过信任该证书,就相当于信任了该主机(服务器)。

下图是客户端和服务端加密通讯的流程:

2)通过以上一个简单的理顺之后,这也就为什么当我们在使用Charles进行抓包的时候需要安装证书,可以通过ssl数字证书中的私用密钥来解译加密的信息,展示在Charles中,但是Charles有一个特殊的地方,就是实际上客户端安装的是Charles的CA证书,然后Charles安装服务器的CA证书,实际上流程还是一样的。

5.安卓手机抓包配置

5.1Charles PC端http配置

http是默认配置好的,要是默认安装完没配置好,我们就自己配置一下,默认的端口号是“8888”我们后面设置手机代理的的时候也要注意这个端口要保持一致。

Charles的配置:这是要打开代理功能,具体操作步骤如下:

1.启动Charles,点击“Proxy-->Proxy Settings”,然后在Proxy Settings中填好端口(8888),并且勾选上“Enable transparent HTTP proxying”,最后点击“OK”。如下图所示:

2.查看运行Charles的电脑的IP地址,可以在命令行中运行ipconfig或者直接查看网络配置,如下图所示:

3.可以对照一下当前所安装的Charles中的ip地址是否一致,你可以直接在Charles上可以直接查看Charles的IP和端口,点击“Help-->SSL Proxying”,然后点击“Install Charles Root Certificate on a Mobile Device or Remote Browser”,如下图所示:

5.2Charles PC端SSL(https)配置

无论电脑端还是手机端进行抓取Https的包,都需要先安装对应证书才能使用。具体操作步骤如下:

1.打开charles,点击help-->SSL Proxying-->Install Charles root  Certificate 安装证书,如下图所示:

2.点击完“Install Charles root  Certificate”后,然后点击“安装证书”,如下图所示:

3.点击“安装证书”后,选择存储位置“本地计算机”,点击“下一步”,如下图所示:

4.证书存储位置选择‘将所有的证书都放入下列存储’,然后点击证书存储后的“浏览”,证书存储选择“受信任的根证书颁发机构”,点击“确定”,如下图所示:

5.点击“下一步”,如下图所示:

6.点击“完成”,提示导入成功。如下图所示:

7.点击proxy》 SSL Proxyng Settings。如下图所示:

8.打开界面如下 弄到跟我一样就可以 如果没有*;443自己按add手动添host :*,port:443 。如下图所示:

这样就可以抓取PC端的http和https类型的包了,接下来我们就来进行安卓手机端代理的配置。

5.3安卓手机设置

本节内容适合所有的 Android设备。下面以夜神模拟器为例进行讲解,其他品牌的模拟器和真实的手机操作方法与此差不多。具体操作步骤如下:

1.在确定了手机和Charles在同一局域网下之后, 那么我们来到Android手机的设置选项下,找到夜神模拟器手机当前连接的WLAN(一些 Android 手机是单击右边的箭头,有的是长按弹出对话框),如下图所示:

2.看到有一个wifi信号,长按这个信号,出现修改网络的弹窗。如下图所示:

3.点击修改网络,选中高级选项,打开高级选项,将代理设为手动,代理服务器主机名填写电脑的IP,端口号填写为主机抓包工具的监听端口。如下图所示:

4.点击保存,就成功完成代理的设置了。如下图所示:

 

5.电脑出现允许代理的提示,点击Allow即可,如下图所示:

那么到此Android手机的网络代理设置就到此为止,其他不同型号的Android模拟器和真机设置大同小异,以此类推,实在不会的自己可以百度一下。到此处表示已经可以抓http的手机包了。

5.4测试Charles捕获手机发出的 HTTP

1.打开手机上的浏览器,在浏览器中输入链接:http://open.vipexam.org。中科VIPExam考试学习资源数据库网站用的是 HTTP 协议而不是 HTTPS 协议,查看 Fiddler 是否捕获到了 HTTP 数据包。如下图所示:

2.打开手机上的 APP,在 APP 中进行一些操作,查看 Fiddler 是否能捕获到 HTTP 数据包。如下图所示:

如果抓不到 HTTP 的包,很可能是 Windows 防火墙的问题,到控制面板中关闭防火墙后再试试。

5.5测试Fiddler捕获手机发出的HTTPS

1.打开手机上的浏览器,在浏览器中输入HTTPS协议,查看Charles是否捕获到了HTTPS数据包。一直在报证书安全警告错误,无法抓取,因此需要我们安装证书,原因宏哥在抓取PC端Web页面包已经说过了,这里就不做赘述了。如下图所示:

2.打开手机上的APP,在APP中进行一些操作,查看Fiddler是否能捕获到HTTPS数据包。又出现了Unknown,如下图所示:

到此,我们知道了要想抓取手机端Https的数据,还的配置证书,证书不用问了,还是Charles下发的。

5.6Android手机配置证书

通过前边宏哥的测试,我们知道在抓取Android手机数据包的时候 跟web端也是一样,都需要配置证书,否则是无法正常进行抓包的。之前已经在我们的android手机上配置好了Charles的代理服务了,那么现在就可以通过ip+port的方式来访问Charles从而下载对应的证书。具体操作步骤如下:

1.在Android手机上打开(自带)的浏览器,输入:http://chls.pro/ssl 来下载证书。如果不出意外的话就会出现如下界面:

 

2.给证书命名为:CharlesRoot,点击“确定”,如下图所示:

 

3.点击“确定”后,需要输入凭据存储的密码。如下图所示:

4.再次点击“确定”,提示需要设置锁屏密码(注:选择安装的文件后,需要输入手机的锁屏密码。Android一定要有锁屏密码才能安装证书),如下图所示:

5.点击“确定”。按要求设置一个手机密码,自己设置一个,记住密码就行,最后不用了去系统-安全-密码中去掉即可,如下图所示:

6.完成锁屏密码后,提示证书已安装,证书安装成功后,如果你的手机系统没有设置密码或者锁屏图案,则系统会提示你设置锁屏图案或者密码。如下图所示:

7.证书安装好后,查看已信任证书:具体位置在【设置--->安全--->信任的凭据--->用户】,如下图所示:

6.开始Android抓包

通过前边的配置,我们现在可以开始抓安卓手机的https的包了。

1.打开手机上的浏览器,在浏览器中输入HTTPS协议的网站,例如:百度。如下图所示:

7.小结

 Charles和Fiddler一样,一个手机可以安装多个证书,但是每安装的一个证书里面都设置有IP地址,所以:安装的证书和电脑IP是一一对应的,当前的这个证书只能针对某一台电脑使用,更换电脑后,该证书将不能使用,只能重新安装与更换的电脑的IP相同的证书才能使用。

对了,关于Android7.0的版本在Fiddler那里已经详细地介绍了,只不过是工具换了一下,原理都差不多,这里和后边就不再做介绍了。而且这里介绍的和Fiddler抓包安卓手机的设置也基本一致,种种原因这里又啰嗦水了一遍。凑合看吧。

以上是关于Charles浏览器抓包的主要内容,如果未能解决你的问题,请参考以下文章

Charles抓包2-Charles抓包https请求

Charles抓包2-Charles抓包https请求

Charles 浏览器(火狐)抓包设置

如何使用Charles抓包

Charles ios抓包

小米6使用charles抓包https