【抓包https请求网络异常/无数据怎么破】

news2024/11/19 0:38:13

当你测试App的时候,想要通过Fiddler/Charles等工具抓包看下https请求的数据情况,发现大部分的App都提示网络异常/无数据等等信息。

当你测试App的时候,想要通过Fiddler/Charles等工具抓包看下https请求的数据情况,发现大部分的App都提示网络异常/无数据等等信息。

以“贝壳找房”为例:

图片

Fiddler中看到的请求是这样的:

图片

你可能开始找证书的问题:是不是Fiddler/Charles的证书没有导入的手机中去?配置一遍又一遍,又开始对比web端浏览器的https发现没问题。这时候你可能已经开始怀疑人生了。

那么究竟是不是证书的问题?

没错,就是证书的问题,但跟你想象中的证书有点不同,不是Fiddler内置证书的问题,而是App内置证书的问题 -- SSL Pinning机制

图片

什么是SSL Pinning?

图片

首先,在https的建立连接过程中,当客户端向服务端发送了连接请求后,服务器会发送自己的证书(包括公钥、证书有效期、服务器信息等)给客户端,如果客户端是浏览器,则使用内置的CA证书去校验服务器证书是否一致。

那么为什么Fiddler能够抓的到浏览器的https请求呢?原因就是在于用户可以自由的将第三方的证书导入到浏览器内置的CA证书集中。

图片

明白上述一点之后,我们再回到App客户端,App默认是信任系统(Android or IOS)用户第三方安装的的CA证书集的,有一些App能够通过Fiddler抓到包的原因是因为:我们可以在系统的用户CA证书集中添加Fiddler的证书。这样App就能信任证书是安全的,放心的发送请求了。

图片

但是现在随着系统的更新,Google or Apple认识到安全越来越重要,所以就引入SSL-Pinning技术:开发者预先把证书相关信息预置到App中再打包,这样在https通讯过程中App本地可以与服务器返回的证书可以做对比,如果发现不一致,那么可能就是由于中间人攻击(比如Fiddler/Charles抓包工具),App客户端可以终止https链接。

而在新版本的系统规则中,应用只信任系统默认预置的CA证书,如果是第三方安装的证书(比如Fiddler安装的)则不会信任:

图片

图片

解决方案

图片

上面的都是一些理论方面的内容,到底该如何突破SSL Pinning机制能够抓到App的https请求包呢?

方案一:使用Android7.0以下的系统

目前已验证在Android 7.0或以上的系统有启用了对第三方证书的限制。但是在Android 7.0以下还是依旧可以将Fiddler/Charles的证书安装在用户的CA集中抓取https请求。

方案二:将Fiddler/Chales证书安装到系统默认预置的CA证书区域中

此种办法前提是需要root权限,但是现在很多新款手机获取root权限困难,所以此办法并不推荐。

方案三:反编译APK,修改AndroidManifest.xml文件

  • 有些APK加了壳,需要先进行脱壳处理

  • 再通过apktool等工具进行反编译

  • 在源码的res/xml目录添加network_security_config.xml文件,内容如下:

图片

修改AndroidManifest.xml文件,在application标签中增加:

android:networkSecurityConfig="@xml/network_security_config"

图片

此种方案比较适用于对反编译比较熟练的童靴

方案四:VitualXposed框架+JustTrustMe模块(推荐)

VitualXposed介绍:

Use Xposed with a simple APP, without needing to root, unlock the bootloader, or flash a system image

官网下载地址:https://vxposed.com/


简单来说,VitualXposed可以在不需要设备root的情况下,修改App的行为。此应用的工作原理类似于应用分身功能,会将应用安装到一个虚拟独立的环境当中,其内部会自带一个已经激活了的Xposed工具。

JustTrustMe介绍:

An xposed module that disables SSL certificate checking for the purposes of auditing an app with cert pinning

JustTrustMe是Github上面的一个开源项目,是xposed中的一个模块,用于禁止SSL证书验证。

官方链接:https://github.com/Fuzion24/JustTrustMe

操作流程:
  • 将VitualXposed安装到真机中,点击应用按钮->添加应用,将要调试的App、JustTrustMe.apk进行安装

    图片

  • 打开Xposed,选择左上角导航栏->模块,勾选JustTrustMe

    图片

  • 重启VitualXposed应用,打开贝壳找房,通过Fiddler抓包,可以看到App请求正常,https请求能抓到

    图片

    图片

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

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

相关文章

it端到端运营监控

公司的运维监控已成为确保业务顺利运行的关键。特别是对于IT部门,端到端运维监控不仅可以帮助企业及时发现和解决问题,还可以提高业务效率,优化客户体验。端到端运维监控的概念、重要性及其实施方法。 端到端操作监控的概念 端到端操作监控&…

文件IO函数

目录 通用IO模型:open、read、write、lseek、close 举例1 举例2 非通用函数:ioctl/mmap mmap ioctl 函数用法帮助命令 help man info 系统调用函数怎么进入内核? 内核的sys_open、sys_read会做什么? 通用IO模型&#…

FUXA入门教程

通过docker安装fuxa后: 打开后的界面如下: 完整配置如下: MQTT驱动演示

C++三大特性——继承(上篇)

文章目录 目录 一、继承的概念及定义 1.1继承的概念 1.2 继承定义 1.2.1定义格式 1.2.2继承关系和访问限定符 1.2.3继承基类成员访问方式的变化 二、基类和派生类对象赋值转换 三、继承中的作用域 四、派生类的默认成员函数 一、继承的概念及定义 1.1继承的概念 继承(inherita…

【消费战略方法论】消费烙印的策略模型

消费烙印策略模型 消费烙印策略,以消费者认知为导向,以品牌核心价值为中心,建立统一、高效、落地的品牌系统闭环,通过极致烙印方法(定位语言烙印、视觉烙印、产品烙印)让品牌价值烙印深植消费者心智。 消费烙印的对象是消费者&a…

QQ浏览器怎么才能设置默认搜索引擎为百度

问题: 打开QQ浏览器,搜索相关信息时发现总是默认为”搜狗搜索引擎“,想将其转为”百度搜索引擎“ 解决: 1、点击浏览器右侧”菜单“图标,选择”设置“,如下图所示: 2、在”常规设置“中的”搜…

一篇概全,接口测试知识盲扫,真正的接口测试是如何做的...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、接口测试的基本…

基于虚幻引擎的AI训练合成数据生成

推荐:用 NSDT编辑器 快速搭建可编程3D场景 近年来,合成数据生成(Synthetic Data Generation)已成为手动收集和注释数据集的替代方法。 数据合成器的优点主要有两个。 首先,它使获取数据的成本几乎为零,同时…

Java读取Excel内容,最后获得一个list对象

代码层 public R importPackage(MultipartFile multipartFile) {try {log.info("multipartFile " multipartFile);log.info("ContentType " multipartFile.getContentType());log.info("OriginalFilename " multipartFile.getOriginalFil…

基于 FPGA 的机器博弈五子棋游戏

基于 FPGA 的机器博弈五子棋游戏 一,设计目的 五子棋是一种深受大众喜爱的游戏,其规则简单,变化多端,非常富有趣味性 和消遣性。棋类游戏在具备娱乐性、益智性的同时也因为其载体大多是手机, 电脑等移动互联网设备导致现代社会低头族等现象更加严重,危害青少年的身 体健康…

VR全景展示带来旅游新体验,助力旅游业发展!

引言: VR(虚拟现实)技术正以惊人的速度改变着各行各业,在旅游业中,VR全景展示也展现了其惊人的影响力,为景区带来了全新的宣传机会和游客体验。 一.什么是VR全景展示? VR全景展示是…

科创人·TATA木门CIO乐勇斌:数字化变革大坎儿在组织变革,天再冷也要拥抱智能

乐勇斌 TATA木门信息中心总监 10年信息化领域管理咨询经验,熟悉零售、电商、汽车、医药、制造、机械加工、家居制造等行业信息化规划、解决方案、建设和流程落地;具备跨区域、项目集和项目组合管控能力,擅于集团化产供销一体化规划&#xff…

【Vue基础-数字大屏】自定义主题

一、apache主题模板 链接https://echarts.apache.org/zh/download-theme.html 二、操作步骤 1、在apache主题模板中定制所需要的主题,如下图点击下载,复制其json 2、回到项目代码,在assets目录下新建index.js文件,新建变量&…

(三)行为模式:8、状态模式(State Pattern)(C++示例)

目录 1、状态模式(State Pattern)含义 2、状态模式的UML图学习 3、状态模式的应用场景 4、状态模式的优缺点 (1)优点 (2)缺点 5、C实现状态模式的实例 1、状态模式(State Pattern&#x…

【STM32单片机】俄罗斯方块游戏设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用STM32F103C8T6单片机控制器,使用按键、IIC OLED模块等。 主要功能: 系统运行后,OLED显示俄罗斯方块游戏界面并开始游戏,KEY1键用于方块方向旋转&…

【交互式阈值二进制图像】采用彩色或单色图像通过交互/手动方式阈值单色图像或彩色图像的单个色带研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

MFC ExtTextOut函数学习

ExtTextOut - 扩展的文本输出; win32 api的声明如下; ExtTextOut( DC: HDC; {设备环境句柄} X, Y: Integer; {起点坐标} Options: Longint; {选项} Rect: PRect; {指定显示范围; 0 表示限制范围} Str: PChar; {字符串…

论文分享 | 利用单模态自监督学习实现多模态AVSR

本次分享上海交通大学发表在 ACL 2022 会议 的论文《Leveraging Unimodal Self-Supervised Learning for Multimodal AVSR》。该论文利用大规模单模态自监督学习构建多模态语音识别模型。 论文地址: https://aclanthology.org/2022.acl-long.308.pdf 代码仓库&am…

ACM模板修改

修改为匿名版本 将 \documentclass[sigconf,authordraft]{acmart} 改为 \documentclass[sigconf,review,anonymous]{acmart} 去掉模板中的无用段落 添加如下语句删除上述段落 \renewcommand\footnotetextcopyrightpermission[1]{} 添加如下语句删除上述段落 \settopmatter…

2019款保时捷卡宴车发动机故障灯异常点亮

故障现象 一辆2019款保时捷卡宴车,搭载DCB发动机,累计行驶里程约为9万km。车主反映,该车行驶中发动机故障灯偶尔异常点亮(图1),其他无异常,为此在其他维修厂更换过燃油箱通风电磁阀、活性炭罐及…