当前位置: 首页 > news >正文

Android手机如何用Charles抓包HTTPS接口

对Charles的安装和使用,这里就不重复介绍了,之前有介绍Charles工具。

本文重点介绍在Android手机上如何配置抓包环境

1.获取Charles配置

去Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser 查看配置。

2.将手机和电脑连上同一个局域网

3.为手机网络设置手动代理

ip和端口参数已经在第一步获取

4.用手机浏览器下载证书安装

浏览器进入chls.pro/ssl下载证书,下载的.pem格式证书。当设备无法识别时,需要手动将后缀名改为.crt,然后到浏览器的下载管理中选择安装就可以了。

安装后,到设置 -> 安全 -> 信任的凭证 可以看到刚安装的证书

5.抓包

Charles中右键对应HTTPS,选择Enable SSL Proxying启动代理。然后清空Structure,重新请求接口就能看到抓包的数据。

到这里,你会发现并不是所有HTTPS都能抓取,Android7.0 之后默认不信任用户添加到系统的CA证书。

解决方案:

  • 官方解决方案:https://developer.android.google.cn/training/articles/security-config.html
  • 问题解决博文:https://blog.csdn.net/mrxiagc/article/details/75329629
  • 将抓包软件的证书安装成系统证书(需ROOT)

这里就不展开了,除非你要搞逆向。

6.对自己的项目抓包

针对我们自己的Android项目,要抓包HTTPS我们可以在网络完全配置中进行设置。

到 res -> xml 创建一个network-security-config.xml文件,配置如下。

<network-security-config><base-config cleartextTrafficPermitted="true"><trust-anchors><certificates src="system" /><certificates src="user" /></trust-anchors></base-config>
</network-security-config>

然后,到清单文件为application配置networkSecurityConfig。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"><uses-permission android:name="android.permission.INTERNET" /><application android:networkSecurityConfig="@xml/network_security_config" ></application></manifest>

注意:在开发设置 cleartextTrafficPermitted="true" 来允许明文流量,便于我们抓包。但在发布应用时,为了提高应用的安全性,通常建议禁用明文流量。
 

相关文章:

  • 人工智能-注意力机制之注意力汇聚:Nadaraya-Watson 核回归
  • Spring Cloud + Nacos 项目启动失败【No spring.config.import property has been defined】
  • 网络安全之渗透测试入门准备
  • 视频剪辑技巧:如何高效批量转码MP4视频为MOV格式
  • linux部署jar 常见问题
  • 点大商城V2.5.3分包小程序端+小程序上传提示限制分包制作教程
  • web前端之引入svg图片、html引入点svg文件、等比缩放、解决裁剪问题、命名空间、object标签、阿里巴巴尺量图、embed标签、iframe标签
  • 格式化输入输出
  • 关于vs code Debug调试时候出现“找不到任务C/C++: g++.exe build active file” 解决方法
  • Linux技能篇-非交互式修改密码
  • springboot 返回problem+json
  • 【Vue】filter的用法
  • debian 12 配置
  • 老牌开源 SVG 编辑器 SVGEdit 是如何架构的?
  • 优秀的时间追踪软件Timemator for Mac轻松管理时间!
  • 2017 年终总结 —— 在路上
  • Brief introduction of how to 'Call, Apply and Bind'
  • CSS实用技巧
  • docker-consul
  • docker容器内的网络抓包
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • Flannel解读
  • Python十分钟制作属于你自己的个性logo
  • Spring Boot MyBatis配置多种数据库
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 彻底搞懂浏览器Event-loop
  • 第十八天-企业应用架构模式-基本模式
  • 聊聊sentinel的DegradeSlot
  • 通过npm或yarn自动生成vue组件
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • (4) PIVOT 和 UPIVOT 的使用
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (九)信息融合方式简介
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (转)Sql Server 保留几位小数的两种做法
  • .Family_物联网
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET上SQLite的连接
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • .考试倒计时43天!来提分啦!
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • @SuppressWarnings(unchecked)代码的作用
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [<死锁专题>]
  • [acwing周赛复盘] 第 94 场周赛20230311
  • [C#]猫叫人醒老鼠跑 C#的委托及事件
  • [c]扫雷
  • [CareerCup] 13.1 Print Last K Lines 打印最后K行