Mac下用Charles实现Android http和https抓包
背景
工作以后,团队需要,抓包工具用的特别多。Charles功能丰富,能满足需要抓包的大多数场景。
之所以专门讲一下Android抓包,一个原因是笔者从事Android开发,经常用;另外,就是网上关于Charles实现Android抓包的配置说明鱼龙混杂,不仅浪费时间还让人抓狂。
工具
(1)最新的charles工具,下载地址:https://www.charlesproxy.com/download/
(2)charles本身收费,如果不想掏钱,必须破解。破解的步骤只需要一步,参见http://charles.iiilab.com
Http
(1)配置代理端口号;
Proxy -》 Proxy Settings -》 Port,port可以随便指定,我这里取的8888;
(2)配置代理的ip;
Android手机的网络代理一般在设置页面,点击当前连着的wifi,手动修改代理配置,然后将你的电脑ip和第一步中配置的端口号填写到手机上即可。如下图:
有了上面两步,理论上已经能够实现http的抓包。至于如何抓,以及断点、map、rewrite等功能不是本文的重点,网上一大筐,请自行搜索。
Https
这个真的是,让人很无语。
在看了网上一大堆似曾相识的说明之后,笔者按照那些配置,不是乱码,就是一直处于这样⬆️吊死的请求状态。还有各种证书指导安装说的模棱两可,让人摸不着头脑。
在经过了半天的折腾后,笔者将亲身实践的经历总结如下,力图用最简洁的步骤,帮你实现https抓包。
(1)在上面两步的基础上,你需要为charles添加SSL Proxiyng。具体的步骤是:Proxy -》 SSL Proxiyng Settings -》勾选“Enable SSL Proxying”,并点击下方的Add,你可以这样配置:
host是你要抓的域名或者ip(这里用通配符*,表示抓去所有的https请求),port为443。
(2)下载手机的SSL证书。这一步很关键,你需要点击help -》SSL Proxying-》Save Charles Root Certificate,然后选择目录,保存一个类似于这样的“charles-ssl-proxying-certificate.pem”文件(笔者的环境是mac下,windows有可能文件后缀不一样);
(3)给手机安装证书。这一步很坑,因为不同的手机可能会有不同的表现。
- 首先命令行切换到(2)的文件夹下,可用adb将(2)中的文件推入手机中,具体的命令参考:“adb push charles-ssl-proxying-certificate.pem sdcard/charles.pem”,表示将charles-ssl-proxying-certificate.pem推入sdcard中,并重命名为charles.pem,注意后缀一般必须是pem。
- 打开手机的文件管理器,找到charles.pem,点击安装。如果安装成功,那么恭喜你,理论上,现在手机的https访问数据,已经能被charles获取。不过,如果你的手机出现了类似下图的说明,请继续执行下一步。
- 打开手机设置 -》更多设置 -》系统安全 -》从存储设备安装 -》选择charles.pem,点击安装。如果安装成功,那么恭喜你,理论上已经能抓包https的数据了。
如果你是小米的用户,而且出现了问你要“凭据存储的密码”的弹窗,请继续往下看。
- 小米手机对sdcard文件的存取,做了安全限制。如果你没有设置屏幕锁,或者没有开启屏幕锁,操作sdcard文件时会出现上面的提示(具体可参见http://www.miui.com/thread-3244178-1-1.html)。这时,你需要设置一下屏幕锁,再重新安装一下就行了。
要补充的是,在小米机器上,如果经过上述操作,.pem还是无法正常安装,请尝试把文件重命名为.crt,再重复上述操作
到这里,已经完成charles对https抓包的全部配置。正常的情况,你的charles会显示https的数据,并且没有乱码。如果按照上面的步骤,仍然无法抓https包,笔者建议你可以考虑重新装一个版本的charles了。
总而言之
(1)https抓包确实需要安装证书,不过电脑端可以不装,要抓包的手机必须装,而不是像许多博客指出的那样,电脑和手机都必须装证书;
(2)部分版本的破解可能导致charles出现异常,对的配置却仍然无法正常抓https包,可能受破解的影响,可以考虑重装软件了。
(3)https从头到尾,电脑只需要配置一下SSL Proxiyng Settings,手机只需要安装一个证书即可。并不需要乌七八糟的乱撞一通证书。
Mac下用Charles实现Android http和https抓包相关推荐
- Charles证书过期 iOS iPhone手机Charles证书过期 证书显示为红色https抓包显示unknown
charles过期处理: 1.从网上找一个 注册码 记录下 名称和注册码信息 Registered Name: https://zhile.io License Key: 48891cf209c6d3 ...
- burpsuite小米手机抓包_使用burpsuite实现Android APP的HTTPS抓包
0x00 序 在对app做安全测试时,通常会需要对app的网络通信进行抓包,但是面对app使用了https包时,由于手机没有burp的证书,因此可能会导致该次通信失败,所以下面的文章主要讲述如何通过b ...
- Https/Tcp抓包工具Charles、fiddler,ping (网络诊断工具),Android平台HTTPS抓包解决方案及问题分析HttpCanary
市面上已经有一些弱网络模拟工具,比如微软的Network Emulator for Windows Toolkit(NEWT),Facebook的Augmented Traffic Control(A ...
- mac下HTTP与HTTPS抓包
mac下HTTP与HTTPS抓包 HTTP抓包流程 1. 在mac 电脑 上下载代理软件,charlse或者fiddler均可以: 下载方法:http://www.charlesproxy.com/可 ...
- Android中利用手机抓包的方法,经典篇
在移动逆向分析以及 App 开发的时候,总会需要对其网络行为进行监控测试,本文总结一些抓包思路,并对其使用方法进行实践 笔者认为在抓包界,Wireshark 应该算是综合排名第一的工具(其实 Wire ...
- 如何在 Android 手机上实现抓包?
如何在 Android 手机上实现抓包? http://www.zhihu.com/question/20467503 我想知道某个应用究竟在数据提交到哪里,提交了什么. 网上的教程太复杂,不想麻烦. ...
- Charles的https抓包及使用
一.背景 1.Charles的https抓包功能只能在版本3.11以上可用. 2.Charles的下载地址[os版本和win版本都有列出]:Download a Free Trial of Charl ...
- 一招破解抓包工具Charles,并进行移动APP抓包分析
一.简介 Charles是目前最强大最流行的http抓包调试工具,Mac.Unix.Windows各个平台都支持.特别是做APP开发,调试与服务端的通信,Charles是必备工具. 目前Charles ...
- 小米6使用Charles进行HTTPS抓包
在Mac上使用Charles进行手机的HTTPS抓包 1. 小米篇 1.1 环境 MacOS 10.13.3 Charles 4.0.2 小米6 Android7.1.1 MIUI9.2 1.2 在M ...
最新文章
- mongodb数据库淘汰_MongoDB 等 NoSQL 与关系型数据库相比,有什么优缺点及适用场景?...
- RoundRobinAssignor(轮询分区)
- sqlserver 多表更新
- NUXT内存泄漏引发问题
- pytorch5:pytorch常用激活函数图像绘制
- 手机APP夏季促销UI设计PSD模板|糖果色彩,抓住眼球
- java数据实时更新_Java连载137更新数据和删除数据
- 转载:C#7.0新特性(VS2017可用)
- asp.net 页面跳转的方法
- 什么是医疗健康管理系统?
- 三类主流影音播放器对比
- 二分法求函数零点:(递归方法和非递归方法)
- 二项分布的特征函数及期望与方差 - 随机过程
- NVIDIA 460.79版显卡驱动发布:全力优化《赛博朋克2077》
- POJ2586-Y2K Accounting Bug
- 多可文档管理软件权限说明(4)——权限累加规则
- WPF 程序的编译过程
- 计算语言学之语法理论
- w3c关于Html的标准
- c语言做土壤湿度传感器程序,单片机土壤湿度传感器设计 程序编译错误
热门文章
- numpy中的ndarray与array的区别、不同
- phpspider框架的使用
- 2019我的Java面试跳槽经历
- MFC+Halcon 真正实现图像缩放、平移
- 将ACII码转为浮点数
- 分布式系统的CAP原理及其应用
- 使用数字陷波器滤除工频信号
- 【Linux】用户和用户组|将用户添加到root组中
- error: ‘uint8_t’,‘uint16_t’ ,‘uint32_t’ does not name a type
- 单例模式破坏单例模式