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抓包安卓手机的设置也基本一致,种种原因这里又啰嗦水了一遍。凑合看吧。
感谢您花时间阅读此篇文章,如果您觉得这篇文章你学到了东西也是为了犒劳下博主的码字不易不妨打赏一下吧,让博主能喝上一杯咖啡,在此谢过了!
如果您觉得阅读本文对您有帮助,请点一下左下角“推荐”按钮,您的
本文版权归作者和博客园共有,来源网址:https://www.cnblogs.com/du-hong 欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利!
以上是关于Charles浏览器抓包的主要内容,如果未能解决你的问题,请参考以下文章