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

这篇具有很好参考价值的文章主要介绍了抓包https请求网络异常/无数据怎么破?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

以“贝壳找房”为例:

抓包https请求网络异常/无数据怎么破?,自动化测试,软件测试,技术分享,https,网络协议,http

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

抓包https请求网络异常/无数据怎么破?,自动化测试,软件测试,技术分享,https,网络协议,http 

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

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

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

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

那么为什么Fiddler能够抓的到浏览器的https请求呢?原因就是在于用户可以自由的将第三方的证书导入到浏览器内置的CA证书集中。
抓包https请求网络异常/无数据怎么破?,自动化测试,软件测试,技术分享,https,网络协议,http

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

抓包https请求网络异常/无数据怎么破?,自动化测试,软件测试,技术分享,https,网络协议,http

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

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

抓包https请求网络异常/无数据怎么破?,自动化测试,软件测试,技术分享,https,网络协议,http

解决方案
上面的都是一些理论方面的内容,到底该如何突破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文件,内容如下:

抓包https请求网络异常/无数据怎么破?,自动化测试,软件测试,技术分享,https,网络协议,http

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

android:networkSecurityConfig=“@xml/network_security_config”

抓包https请求网络异常/无数据怎么破?,自动化测试,软件测试,技术分享,https,网络协议,http

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

方案四: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进行安装

抓包https请求网络异常/无数据怎么破?,自动化测试,软件测试,技术分享,https,网络协议,http

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

抓包https请求网络异常/无数据怎么破?,自动化测试,软件测试,技术分享,https,网络协议,http 

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

抓包https请求网络异常/无数据怎么破?,自动化测试,软件测试,技术分享,https,网络协议,http

抓包https请求网络异常/无数据怎么破?,自动化测试,软件测试,技术分享,https,网络协议,http 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

抓包https请求网络异常/无数据怎么破?,自动化测试,软件测试,技术分享,https,网络协议,http

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

抓包https请求网络异常/无数据怎么破?,自动化测试,软件测试,技术分享,https,网络协议,http

  视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。        文章来源地址https://www.toymoban.com/news/detail-787153.html

到了这里,关于抓包https请求网络异常/无数据怎么破?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Fiddler抓包之【 抓取https请求 】详解教程

    引言 概况 基本原理 抓HTTPS的原理 HTTPS请求两类 Fiddler抓包要求 总结 写在最后 在日常测试中,不管是功能测试还是接口测试,避免不了抓包。抓包工具有很多,这里只讲fiddler的使用,并且是对https请求的抓取。 抓包之前,先了解一下Fiddler。 Fiddler是一款免费且功能强大的数

    2024年02月07日
    浏览(56)
  • Fiddler工具 — 19.Fiddler抓包HTTPS请求(二)

    5、查看证书是否安装成功 方式一: 点击Tools菜单 — Options... — HTTPS — Actions 选择第三项: Open Windows Certificate Manager 打开Windows证书管理器。 打开Windows证书管理器,选择操作—查看证书,在搜索框中输入 Fiddler 来查看证书。 查看结果: 然后可以选择一个证书,进行打开、删

    2024年02月22日
    浏览(43)
  • Fiddler工具 — 18.Fiddler抓包HTTPS请求(一)

    1、Fiddler抓取HTTPS过程 第一步: Fiddler截获客户端发送给服务器的HTTPS请求,Fiddler伪装成客户端向服务器发送请求进行握手 。 第二步: 服务器发回相应,Fiddler获取到服务器的CA证书, 用根证书(这里的根证书是CA认证中心给自己颁发的证书)公钥进行解密, 验证服务器数据

    2024年02月21日
    浏览(45)
  • mitmproxy 抓包神器-2.抓取Android 和 iOS 手机 https 请求

    抓取手机请求的前提条件是确保手机和电脑在同一网段上,也就是说使用同一WiFi。 mitmweb 命令启动服务,默认监听8080端口 开启代理,设置监听8080端口,点保存按钮 打开手机设置-WIFI-长按你的wifi-修改网络-代理选择手动 输入服务器主机名和IP,服务器主机名就是自己电脑本

    2024年02月11日
    浏览(48)
  • Fiddler抓包工具之fiddler设置抓HTTPS的请求&证书安装

    基础配置: 路径:启动Fiddler 》Tools》Options》HTTPS 注意:Option更改完配置需重启Fiddler才能生效 选中\\\"Decrpt HTTPS traffic\\\",    Fiddler就可以截获HTTPS请求,如果是第一次会弹出证书安装提示,若没有弹出提示,按照路径依次点击,使系统信任证书: Actions》Trust Root Certificate。另外,

    2024年02月16日
    浏览(46)
  • 全网最详细,Fiddler抓包实战 - 网页浏览器https请求(超详细)

    Fiddler抓取网页浏览器请求 Fiddler代理浏览器设置(Chrome/IE/Firefox) 注意浏览器代理区别 Chrome/IE浏览器使用的都是系统代理设置 在chrome浏览器的设置中搜索代理,可以看到 打开IE浏览器,选择设置-Internet选项 Firefox浏览器使用的是单独的一套代理系统 在Firefox的代理设置中,我

    2024年02月05日
    浏览(52)
  • 全网最详细,Fiddler抓包实战 - 手机APP端https请求(超详细)

    Fiddler抓取App端请求 准备工作: 将手机和电脑连接到同一路由器(保证两者能够ping通); 如果使用的模拟器则不需要上面的步骤,因为模拟器是共享PC端的网络,两者网络默认就是连通的状态; 查询PC端的IP地址; 配置fiddler可以抓取远程端设备请求 打开Tools-Options-Connection

    2024年02月09日
    浏览(96)
  • 高颜值抓包工具Charles,实现Mac和IOS端抓取https请求

    Hi,大家好。在进行测试的过程中,不可避免的会有程序报错,为了能更快修复掉Bug,我们作为测试人员需要给开发人员提供更准确的报错信息或者接口地址,这个时候就需要用到我们的抓包工具。 常见的抓包工具有Fiddler、Charles,在此之前介绍过Fiddler抓包:Fiddler抓包详解,

    2024年04月09日
    浏览(61)
  • ESP8266-Arduino网络编程实例-HTTPS客户端数据请求

    超文本传输协议安全 (HTTPS) 是 HTTP的安全版本,HTTP 是用于在 Web 浏览器和网站之间发送数据的主要协议。HTTPS 经过加密,以提高数据传输的安全性。当用户传输敏感数据(例如通过登录银行账户、电子邮件服务或健康保险提供商)时,这一点尤其重要。 从技术上来讲,HTTPS

    2023年04月08日
    浏览(74)
  • 【软件测试】UI自动化框架,数据驱动 vs 关键字驱动怎么选

    让我们先从分析一端自动化测试案例的代码开始我们的旅程。以下是我之前写的一个自动化测试的小Demo。这个Demo 基于Selenium与Java 。 自动化测试小Demo 它要测试的东西其实是要看一下百度搜索能不能返回兴业银行的官网。我们分析一下这段代码都包含些什么东西。 第一,这

    2024年02月13日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包