《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-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位系统。如下图所示:

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第1张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第2张图片

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申请一个用于证明服务器用途类型的证书,证书是唯一性,只用于对应的服务器。客户端要认可这个服务器是否是安全的,可以进行访问或者交易等操作,则需要进行对服务端的验证。

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第3张图片

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

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

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第4张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第5张图片

5.安卓手机抓包配置

5.1Charles PC端http配置

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

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

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第6张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第7张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第8张图片

5.2Charles PC端SSL(https)配置

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

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

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第9张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第10张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第11张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第12张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第13张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第14张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第15张图片

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

5.3安卓手机设置

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

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第16张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第17张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第18张图片

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

 

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第19张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第20张图片

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

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

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第21张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第22张图片

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

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

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第23张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第24张图片

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

5.6Android手机配置证书

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

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

 

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第25张图片

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

 

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第26张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第27张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第28张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第29张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第30张图片

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第31张图片

6.开始Android抓包

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

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘_第32张图片

7.小结

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

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

  -每天学习一点,今后必成大神-

往期推荐(由于跳转参数丢失了,所有建议选中要访问的右键,在新标签页中打开链接即可访问):

Appium自动化系列,耗时80天打造的从搭建环境到实际应用精品教程测试

Python接口自动化测试教程,熬夜87天整理出这一份上万字的超全学习指南

Python+Selenium自动化系列,通宵700天从无到有搭建一个自动化测试框架

Java+Selenium自动化系列,仿照Python趁热打铁呕心沥血317天搭建价值好几K的自动化测试框架

Jmeter工具从基础->进阶->高级,费时2年多整理出这一份全网超详细的入门到精通教程

Fiddler工具从基础->进阶->高级,费时100多天吐血整理出这一份全网超详细的入门到精通教程

Pycharm工具基础使用教程

你可能感兴趣的:(Charles,android,智能手机,测试工具)