Android网络抓包--Charles

news2024/11/28 1:39:04

一、Android抓包方式

  1. 对Https降级进行抓包,降级成Http
  2. 使用抓包工具对Https进行抓包

二、常用的抓包工具

  • wireshark:侧重于TCP、UDP传输层,HTTP/HTTPS也能抓包,但不能解密HTTPS报文。比较复杂
  • fiddler:支持HTTP/HTTPS协议,篡改请求入参,篡改响应效据,设置请求断点重发,弱网模拟。但是只支持Window
  • charles:基本功能跟fiddler一样。并且所有平台都支持,界面简洁,操作简单(重点

三、抓包工具Charles

1.下载:

官网地址:Download a Free Trial of Charles • Charles Web Debugging Proxy

2.安装:

下载完成之后,直接点击安装即可。安装完成之后的界面

3.原理:

网络编程Http知识

  1. 拦截请求,代理客户端向服务端发送请求
  2. 拦截服务端响应,拿到服务端返回的公钥,并返回自己的公钥证书,目的是为了接下来的流程中加密会话秘钥
  3. 客户端需要安装charies证书,并添加信任,否则会报证书无效错误;客户端生成会话秘钥,并使用charies公钥加密发送到服务端
  4. 再次拦截请求,用自己的私钥解密会话秘钥,并使用前面拿到服务端公钥加密会话秘钥发送到服务端
  5. 服务端使用自己的私钥解密会话秘钥
  6. 使用会话秘钥去加密response,并返回
  7. charies再次拦截响应,使用会话秘钥去解密response,展示明文,从而达到https抓包的日志

4.证书配置

注意:

        在使用6.0及以下的手机的时候,如果想要抓包Https,只需要在手机上安装Charles证书就可以了,但是如果使用的手机是7.0及以上版本的时候,这个时候就不管用了,需要手动的添加该证书的信任

原因:

        因为Android在不同的版本,系统为了网络安全,网络配置发生了一些变化

系统的网络安全配置:

  • Android6.0及以下既支持信任系统证书,也支持信任用户安装的证书,也运行明文传输
<base-config cleartextTrafficPermitted="true">
    <trust-anchors>
        <certificates src="system" />
        <certificates src="user" />
    </trust-anchors>
</base-config>
  • 在Android7.0及以上,不在信任用户安装的证书。这也就是为什么7.0以上的手机即便安装了charles证书,依旧无法抓包的原因
<base-config cleartextTrafficPermitted="true">
    <trust-anchors>
        <certificates src="system" />
    </trust-anchors>
</base-config>
  • 在android9.0及以上,只信任系统证书,并且不允许明文http的传输
<base-config cleartextTrafficPermitted="false">
    <trust-anchors>
        <certificates src="system" />
    </trust-anchors>
</base-config>

解决方案:

        为了解决Android7.0及以上手机https无法抓包,http无法传输的问题,需要自定义网络安全配置:

  • 在res/raw目录下,添加charles的证书文件charles.pem
  • 新增文件 res/xml/network_security_config.xml 文件,将cleartextTrafficPermitted设置成true,并增加trust-anchors标签引用添加进来的charles的证书

 cleartextTrafficPermitted="true"  //允许在高版本上开启Http的明文传

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true"/>
    <trust-anchors>
        <certificates src="@raw/charles"/>
    </trust-anchors>
</network-security-config>
  • 在清单文件manifest中的Application下添加网络安全配置文件,这样就能抓包了
<application
    android:networkSecurityConfig="@xml/network_security_config"
</application>  
  • 增加debug-overrides标签,只在debuggable为true的情况下,才会应用这个网络安全配置文件
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
    <debug-overrides>
        <trust-anchors>
            <certificates src="@raw/charles" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>

5.使用:

如何配置charles,完成Https数据报文的抓包?

1.点击Proxy -> Proxy Settings…,查看charles的端口号:8888

2.点击Help -> Local IP Address,查看本机的IP地址:192.168.40.38

3.将手机wifi连接的代理设置成手动,并输入上面的端口号和IP地址

4.让应用去信任charles证书

点击Help -> SSL Proxying -> Save Charles Root Certificate… 保存证书

5.将证书拷贝到项目中。在app下的res目录下新建一个raw文件夹,并且把charles.pem文件拷贝过来

6.创建配置文件。在app下的res目录下新建一个xml文件夹,在这个文件夹下新建一个network_security_config.xml 文件,并填写配置信息

打开手机设置-密码与安全-系统安全-加密与凭据-安装证书-证书

然后将上面保存的证书push到手机上,找到位置添加证书信任

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

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

相关文章

Swift Zulian Tiger

Swift Zulian Tiger 迅捷祖利安猛虎 16万金&#xff08;游戏币&#xff09; 1万金大概就能兑换460元~600元之间&#xff0c;6400元-9600元&#xff0c;汗颜 故事的一天刚打完BWL&#xff0c;才125金&#xff08;游戏币&#xff09; 本来想下线的结果他们说你太黑了&…

工控 modbusTCP 报文

Tx 发送报文:00 C9 00 00 00 06 01 03 00 00 00 02 Rx 接收报文:00 C9 00 00 00 07 01 03 04 01 4D 00 01 Tx 发送报文:00 C9 00 00 00 06 01 03 00 00 00 02 00 C9 事务处理标识符 2字节 00 00 协议标识符 2字节 固定 00 00 00 06 长度 2字节 表示之后的字节总数 &#xff08;…

贪心算法|968.监控二叉树

力扣题目链接 class Solution { private:int result;int traversal(TreeNode* cur) {// 空节点&#xff0c;该节点有覆盖if (cur NULL) return 2;int left traversal(cur->left); // 左int right traversal(cur->right); // 右// 情况1// 左右节点都有覆盖if (le…

MariaDB介绍和安装

MariaDB介绍和安装 文章目录 MariaDB介绍和安装1.MariaDB介绍2.MariaDB安装2.1 主机初始化2.1.1 设置网卡名和ip地址2.1.2 配置镜像源2.1.3 关闭防火墙2.1.4 禁用SELinux2.1.5 设置时区 2.2 包安装2.2.1 Rocky和CentOS 安装 MariaDB2.2.2 Ubuntu 安装 MariaDB 2.3 源码安装2.3.…

紫光展锐携手中国联通智慧矿山军团(山西)完成RedCap现网环境测试

近日&#xff0c;紫光展锐与中国联通智慧矿山军团&#xff08;山西&#xff09;在现网环境下成功完成了RedCap技术测试。此次测试对搭载紫光展锐RedCap芯片平台V517的模组注网速度和信号情况、Iperf打流测试上下行情况、ping包延时情况以及模组拨号入网压测等项目进行了全面验证…

【性能测试】接口测试各知识第3篇:Jmeter 基本使用流程,学习目标【附代码文档】

接口测试完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;接口测试&#xff0c;学习目标学习目标,2. 接口测试课程大纲,3. 接口学完样品,4. 学完课程,学到什么,5. 参考:,1. 理解接口的概念。学习目标&#xff0c;RESTFUL1. 理解接口的概念,2.什么是接口测试…

# Contrastive Learning(对比学习)--CLIP笔记(一)

Contrastive Learning&#xff08;对比学习&#xff09;–CLIP笔记&#xff08;一&#xff09; 参考&#xff1a;CLIP 论文逐段精读【论文精读】_哔哩哔哩_bilibili CLIP简介 CLIP是一种多模态预训练模型&#xff0c;由OpenAI在2021年提出&#xff0c;论文标题&#xff1a;L…

STM32 DCMI 的带宽与性能介绍

1. 引言 随着市场对更高图像质量的需求不断增加&#xff0c;成像技术持续发展&#xff0c;各种新兴技术&#xff08;例如3D、计算、运动和红外线&#xff09;的不断涌现。如今的成像应用对高质量、易用性、能耗效率、高集成度、快速上市和成本效益提出了全面要求。为了满足这些…

【自然语言】使用词袋模型,TF-IDF模型和Word2Vec模型进行文本向量化

一、任务目标 python代码写将 HarryPorter 电子书作为语料库&#xff0c;分别使用词袋模型&#xff0c;TF-IDF模型和Word2Vec模型进行文本向量化。 1. 首先将数据预处理&#xff0c;Word2Vec 训练时要求考虑每个单词前后的五个词汇&#xff0c;地址为 作为其上下文 &#xf…

数据结构的魅力

数据结构这块越学越敬佩 博大精深 统计大文件中相同年龄的人的个数 public static void main(String[] args) throws Exception {String str "";String fileName "";InputStreamReader isr new InputStreamReader(new FileInputStream(fileName), Stan…

OSCP靶场--Banzai

OSCP靶场–Banzai 考点(ftp爆破 webshell上传web1访问403web2可以访问webshell反弹mysql udf提权) 1.nmap扫描 ## nmap扫描一定要使用 -p- 否则容易扫不全端口 ┌──(root㉿kali)-[~/Desktop] └─# nmap -sV -sC 192.168.158.56 -Pn -p- --min-rate 2500Starting Nmap 7.…

ArcGIS Pro 3D建模简明教程

在本文中&#xff0c;我讲述了我最近一直在探索的在 ArcGIS Pro 中设计 3D 模型的过程。 我的目标是尽可能避免与其他软件交互&#xff08;即使是专门用于 3D 建模的软件&#xff09;&#xff0c;并利用 Pro 可以提供的可能性。 这个短暂的旅程分为三个不同的阶段&#xff1a;…

AI绘本生成解决方案,快速生成高质量的AI绘本视频

美摄科技凭借其深厚的技术积累和前瞻性的市场洞察力&#xff0c;近日推出了一款面向企业的AI绘本生成解决方案&#xff0c;旨在通过智能化、自动化的方式&#xff0c;帮助企业快速将文字内容转化为生动有趣的绘本视频&#xff0c;从而提升内容传播效率&#xff0c;增强品牌影响…

迁移docker部署的GitLab

目录 1. 背景2. 参考3. 环境4. 过程4.1 查看原docker启动命令4.2 打包挂载目录传至新宿主机并创建对应目录4.3 保存镜像并传至新宿主机下4.4 新宿主机启动GitLab容器 5 故障5.1 容器不断重启5.2 权限拒绝5.3 容器内错误日志 6 重启容器服务正常7 总结 1. 背景 最近接到一个任务…

Python的标准输入输出及强制类型转换

Python标准输入 input()是Python提供的标准输入函数&#xff0c;括号内为显示在终端的提示信息&#xff0c;其返回结果为字符型&#xff08;str&#xff09;。 Python标准输出 print()是Python提供的标准输出函数&#xff0c;可以将括号中的内容输出到终端中。 print()函数中有…

五、书架开发--2.书架图书列表实现

组件涉及动态组件应用 下面我们先来继续编写书架列表吧即ShelfList.vue书架的数据我们之前就已经获取到了&#xff0c;通过引入mixin即可。 for循环书架数据展示一堆item(图书列表中的方框) 我们要实现图书列表的图书数据显然应该用v-for循环来循环每个方框的图书&#xff0…

实战解析:SpringBoot AOP与Redis结合实现延时双删功能

目录 一、业务场景 1、此时存在的问题 2、解决方案 3、为何要延时500毫秒&#xff1f; 4、为何要两次删除缓存&#xff1f; 二、代码实践 1、引入Redis和SpringBoot AOP依赖 2、编写自定义aop注解和切面 3、application.yml 4、user.sql脚本 5、UserController 6、U…

计算机网络——TCP和UDP协议

目录 前言 前篇 引言 TCP与UDP之间的区别 TCP 三次握手 为什么要三次握手而不是两次握手&#xff1f; 丢包问题与乱序问题的解决 四次挥手 为什么客户端需要等待超时时间&#xff1f; UDP协议 TCP和UDP的主要区别 前言 本博客是博主用于复习计算机网络的博客&…

【Jenkins】Jenkins自动化工具介绍

目录 技术背景常规的手动打包步骤 Jenkins简介起源与发展Jenkins的核心价值1.自动化1.1代码构建1.2测试自动化1.3自动部署 2.持续集成与持续部署CI/CD的概念如何减少集成问题更快速地发布软件版本 Jenkins优势Jenkins的主要竞争对手Travis CI:CircleCI:GitLab CI: Jenkins与其他…

阿里云9元服务器租用收费价格表_免费云服务器领取

2024年最新阿里云服务器租用费用优惠价格表&#xff0c;轻量2核2G3M带宽轻量服务器一年61元&#xff0c;折合5元1个月&#xff0c;新老用户同享99元一年服务器&#xff0c;2核4G5M服务器ECS优惠价199元一年&#xff0c;2核4G4M轻量服务器165元一年&#xff0c;2核4G服务器30元3…