使用Charles对Android App的https请求进行抓包

发布时间:2020-06-19 09:48:59 作者:罗伊德666
来源:网络 阅读:3925

本文背景

公司新项目要求抓取目前市面上一些热门App的数据,经过研究发现很多App的网络请求都使用https进行数据传输,这样问题就来了,http使用明文传输所有请求都能拦截到,而https请求无法拦截。
所以这里我们要使用Charles来抓取https,但是笔者看了网上很多使用iOS设备进行抓取https的文章,经测试iOS8/10/11均无法进行正常抓取,即使信任证书也不行。
经过笔者的不断尝试,终于在Android5.0上成功抓取了https。研究后发现,在Android7.0以下可以正常使用Charles抓取。Android7.0以上应该是默认屏蔽了此种方法。

Charles安装

Charles配置

配置电脑端的根证书
  1. 打开Charles,我这里使用的是v4.2.5版本:
    使用Charles对Android App的https请求进行抓包

  2. 安装根证书
    使用Charles对Android App的https请求进行抓包

  3. Mac需要设置信任证书

    1. 安装后会弹出钥匙串访问界面,如图:
      使用Charles对Android App的https请求进行抓包

    2. 双击证书,弹出证书详细界面,点击『信任』选项,然后将所有设置为始终信任,如图:
      使用Charles对Android App的https请求进行抓包
在手机端配置根证书
  1. 在电脑端选择安装移动端的证书:
    使用Charles对Android App的https请求进行抓包

  2. 选择后会显示IP与端口号,用于手机设置http代理:
    使用Charles对Android App的https请求进行抓包

  3. 手机的网络上设置成电脑的http代理:
    此时必须保证手机和电脑在同一网络,并且手机可以访问电脑的ip与端口
    使用Charles对Android App的https请求进行抓包

  4. 设置完成后访问网络时,服务端会弹出提示,点击Allow(同意连接):
    使用Charles对Android App的https请求进行抓包

  5. 手机浏览器(笔者使用Chrome)访问chls.pro/ssl,下载证书并安装(证书名任意):
    使用Charles对Android App的https请求进行抓包
配置电脑端的抓取规则
  1. 进入Charles的SSL代理设置:
    使用Charles对Android App的https请求进行抓包

2.勾上启动SSL代理,并添加一个抓取规则,比如这里加上一个抓取所有https(443端口)的请求:
使用Charles对Android App的https请求进行抓包

3.此时手机上打开https请求的应用,应该就可以正常看到https请求的数据了:如图:
使用Charles对Android App的https请求进行抓包

常见问题

1. 配置好后无法打开APP

在我们抓取时碰到个别APP在配置代理后无法打开,这个主要是因为该APP做了防止抓取处理,比如校验https的证书是否合法等,这种解决方法可以通过反编译APP,查看源码解决,难度较大。

2. 抓取到的内容为乱码

有的APP为了防止抓取,在返回的内容上做了层加密,所以从Charles上看到的内容是乱码。这种情况下也只能反编译APP,研究其加密解密算法进行解密。

推荐阅读:
  1. Python3网络爬虫实战-6、APP爬取相关库的安装:Charles的安装
  2. Http/Https抓包工具Charles最新版破解教程(Windows|Mac)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

charles android https

上一篇:Ubuntu编译安装 GD以及PHP

下一篇:说GTID - GTID的生命周期

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》