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

news2024/12/22 19:08:51

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位系统。如下图所示:

 如果你想学习接口自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386    

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1.【接口自动化】目前软件测试的市场行情以及测试人员能力标准。、2.【接口自动化】全面熟练Requests库以及底层方法调用逻辑、3.【接口自动化】接口自动化实战及正则和JsonPath提取器的应用等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337&vd_source=488d25e59e6c5b111f7a1a1a16ecbe9a 

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抓包安卓手机的设置也基本一致,种种原因这里又啰嗦水了一遍。凑合看吧。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/773252.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023 年 7 月中旬使用各种随身 wifi 的电脑无法上网的解决方法

微软近日推送了安全更新,在 Win10 下编号为 KB5028166,在 Win11 下编号为 KB5028185。此补丁会导致部分电脑无法上网,主要是使用了各种品牌的随身 Wifi 的电脑。 具体症状表现为从控制面板的网络连接(ncpa.cpl)打开详细…

vue项目展示pdf文件

记录贴 最近我有个需求,就是在h5页面上展示pdf文件,分页,最后一页有个蒙层阴影渐变的效果,尝试过一些插件,但都不是很好用,最后用了pdfjs-dist加上canvas 可以看下效果 先下载: npm i pdfjs-dist2.5.207下面展示代码 html: <template><canvas v-for"pageNumb…

浅谈设计模式之单例模式

0 单例模式简介 单例模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。单例模式指的是单一的一个类&#xff0c;该类负责创建自己的对象&#xff0c;并且保证该对象唯一。该类提供了一种访问其唯一对象的方法&#xff0c;外部需要调用该类的对象可以通过方法获…

Python 自学 day06 JSON 数据传输,折线图,柱状图,动态柱状图

1.python JSON的知识 1.1 什么是 JSON 答&#xff1a; JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据. JSON本质上是一个带有特定格式的字符串。 1.2 JSON 的主要功能 答&#xff1a;json就是一种在各个编程语言中流通的…

栈和队列OJ

文章目录 1.用队列实现栈2.用栈实现队列3.设计循环队列4.循环队列经典题 1.用队列实现栈 typedef int QDataType; typedef struct QueueNode {struct QueueNode* next;QDataType data; }QNode;typedef struct Queue {QNode* head;QNode* tail; }Queue; typedef struct MyStack …

⛳ Java数组

Java数组的目录 ⛳ Java数组&#x1f3a8; 一&#xff0c;一维数组&#x1f463; 1.1&#xff0c;概念&#x1f4e2; 1.2&#xff0c;基本用法1&#xff0c;语法格式2&#xff0c;代码 &#x1f4bb; 1.3&#xff0c;内存结构&#x1f4dd; 1.4&#xff0c;练习 &#x1f381; …

天翎MyApps低代码平台唯品会金牌客服管理系统

项目痛点&#xff1a; 作为一家知名的创新大型电商&#xff0c;唯品会秉承“传承品质生活&#xff0c;提升幸福体验”的企业使命。基于客服铁军锻造项目&#xff0c;实现基于金牌案例的提交、评审、积分&#xff0c;学习功能。 项目中的晋升机制、案例产生学习机制、双激励机制…

赛桨PaddleScience v1.0正式版发布,飞桨科学计算能力全面升级!

AI for Science日益表现出突破传统科学研究能力瓶颈的巨大潜力&#xff0c;正在成为全球科学研究新范式。近年来&#xff0c;各学科不断加入&#xff0c;模型精度、泛化性逐渐提高&#xff0c;不同技术路径、不同应用场景的AI for Science成功应用不断涌现&#xff0c;深度融合…

详解 Spring - Ioc(控制权反转) 和 DI(依赖注入)

目录 Spring 是什么? Ioc Ioc 的优点 DI Ioc 和 DI 的区别 Spring 是什么? 通常情况下 Spring 是指 Spring Framework (Spring 框架), 是一个开源框架, 有着庞大的社区, 这就是他能长久不衰的原因, Spring 支持广泛的应用场景, 他可以让企业级的应用开发起来更简单 S…

Selenium之css如何实现元素定位,你了解多少?

前言 世界上最远的距离大概就是明明看到一个页面元素站在那里&#xff0c;但是我却定位不到&#xff01;&#xff01; Selenium定位元素的方法有很多种&#xff0c;像是通过id、name、class_name、tag_name、link_text等等&#xff0c;但是这些方法局限性太大&#xff0c; 随…

简单认识框架

hi,大家好,好久不见今天为大家带来框架相关的知识 文章目录 &#x1f338;1.框架&#x1f95d;1.1为什么要学习框架 &#x1f338;2.框架的优点&#x1f95d;2.1采用servlet创建项目&#x1f440;2.1.1缺陷 &#x1f95d;2.2采用SpringBoot创建项目&#x1f440;2.2.1优势 &…

Vue-Cli脚手架的安装和使用

文章目录 一、Vue-Cli脚手架的环境准备1. 安装Node.js1-1 去 [Node.js官网](https://nodejs.org/zh-cn/) 下载安装包&#xff0c;修改安装路径到其它盘&#xff0c;如 G:\Program Files1-2 安装npm淘宝镜像&#xff0c;提速 2. 设置 cnpm的下载路径和缓存路径2-1 在安装目录 G:…

Zoho Projects:Jira的理想替代品,让项目管理更高效

在软件开发生命周期中&#xff0c;项目管理一直是一个非常重要的环节。为了更好地协作、追踪项目的进程和管理任务&#xff0c;许多公司选择了Jira这款著名的项目管理工具&#xff0c;它是个非常强大的工具&#xff0c;但同时也有非常明显的缺点。今天&#xff0c;我们将向大家…

知识普及:[18F]FB RGD,18F标记RGD多肽,tumor显像剂,

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ 为大家介绍&#xff08;CAS&#xff1a;N/A&#xff09;,试剂仅用于科学研究&#xff0c;不可用于人类&#xff0c;非药用&#xff0c;非食用 分子式&#xff1a;C34H44FN9O9 分子量&#xff1a;740.8 中文名称&#xff1a…

linux之Ubuntu系列 系统信息 (一)查看文件、磁盘 、进程

时间和日期 查看当前的系统时间 date 查看日历 -y 显示本年度日历&#xff0c; 不加-y 选项&#xff0c;显示本月日历 cal [-y] 查看磁盘 和 目录 空间 df [-h] df&#xff1a;disk free 显示磁盘可用空间&#xff0c;-h&#xff0c;跟 ls -lh 效果类似&#xff0c;以人性化方…

Python 字典 get()函数使用详解,字典获取值

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;小白零基础《Python入门到精通》 get函数使用详解 1、设置默认返回值2、嵌套字典取值3、get() 和 dict[key] 的区别…

使用WebRTC实现多人视频会议

1.初步准备 1.1.使用同事nodejs开发的一个信令服务器。提供Https的WebSocket功能 1.2.准备一个多人视频会议的客户端Web程序client.html 2.遇到问题 2.1.在Tomcat下打开client.html&#xff0c;如果不使用http://127.0.0.1:8081/vedio/client.html&#xff0c;而使用实际IP…

DETR的位置编码

记录一下&#xff0c;以防忘记。 首先&#xff0c;致谢知乎vincent DETR论文详解 DETR中有这样一个类和一个包装函数 class NestedTensor(object):def __init__(self, tensors, mask: Optional[Tensor]):self.tensors tensorsself.mask maskdef to(self, device):# type: …

C知道,CSDN 出来的AI尝试

已经上图&#xff0c;算力不知道怎么样。 C知道 (csdn.net)