前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[601]app抓包Charles安装之爬取微信小程序

[601]app抓包Charles安装之爬取微信小程序

作者头像
周小董
发布2022-04-13 14:41:56
2.4K0
发布2022-04-13 14:41:56
举报
文章被收录于专栏:python前行者python前行者

Charles简介

Charles,一个HTTP代理服务器,HTTP监视器,反转代理服务器,当程序连接Charles的代理访问互联网时,Charles可以监控这个程序发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。

Charles主要功能:

  1. 支持SSL代理。可以截取分析SSL的请求。
  2. 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
  3. 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
  4. 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
  5. 支持重发网络请求,方便后端调试。
  6. 支持修改网络请求参数。
  7. 支持网络请求的截获并动态修改。
  8. 检查HTML,CSS和RSS内容是否符合W3C标准。

Charles:爬虫必备抓包分析工具下载

Charles可以轻松地帮你为APP的爬虫抓取做铺垫,分析客户端的行为。 通过安装安全证书,Charles可以解析Https加密请求 甚至可以将抓取的数据自动导出为特定的格式实现数据的利用… 赶快下载安装试试吧!

image.png
image.png

英文版的破解方法:将charles.jar复制到安装目录的lib目录下覆盖原有jar包即可

链接:https://pan.baidu.com/s/14Lh3QUZURJnrXklWcXGPWw

除了Web网页,爬虫也可以抓取App的数据。App中的页面要加载出来,首先需要获取数据,而这些数据一般是通过请求服务器的接口来获取的。由于App没有浏览器这种可以比较直观地看到后台请求的工具,所以主要用一些抓包技术来抓取数据。

一些简单的接口可以通过Charles或mitmproxy分析,找出规律,然后直接用程序模拟来抓取了。但是如果遇到更复杂的接口,就需要利用mitmdump对接Python来对抓取到的请求和响应进行实时处理和保存。另外,既然要做规模采集,就需要自动化App的操作而不是人工去采集,所以这里还需要一个工具叫作Appium,它可以像Selenium一样对App进行自动化控制,如自动化模拟App的点击、下拉等操作。

工具:Charles、mitmproxy、mitmdump、Appium

Charles的安装

Charles是一个网络抓包工具,相比Fiddler,其功能更为强大,而且跨平台支持得更好,所以这里选用它来作为主要的移动端抓包工具。

破解版地址:https://blog.csdn.net/xc_zhou/article/details/85132847

下载Charles

我们可以在官网下载最新的稳定版本,如图1-43所示。可以发现,它支持Windows、Linux和Mac三大平台。

图1-43 Charles下载页面
图1-43 Charles下载页面

直接点击对应的安装包下载即可,具体的安装过程这里不再赘述。

Charles是收费软件,不过可以免费试用30天。如果试用期过了,其实还可以试用,不过每次试用不能超过30分钟,启动有10秒的延时,但是完整的软件功能还是可以使用的,所以还算比较友好。

pc证书配置(重要)

现在很多页面都在向HTTPS方向发展,HTTPS通信协议应用得越来越广泛。如果一个App通信应用了HTTPS协议,那么它通信的数据都会是被加密的,常规的截包方法是无法识别请求内部的数据的。

安装完成后,如果我们想要做HTTPS抓包的话,那么还需要配置一下相关SSL证书。接下来,我们再看看各个平台下的证书配置过程。

Charles是运行在PC端的,我们要抓取的是App端的数据,所以要在PC和手机端都安装证书。

Windows

如果你的PC是Windows系统,可以按照下面的操作进行证书配置。

首先打开Charles,点击Help→SSL Proxying→Install Charles Root Certificate,即可进入证书的安装页面,如图1-44所示。

图1-44 证书安装页面入口
图1-44 证书安装页面入口

接下来,会弹出一个安装证书的页面,如图1-45 所示。

图1-45 证书安装页面
图1-45 证书安装页面

点击“安装证书”按钮,就会打开证书导入向导,如图1-46所示。

图1-46 证书导入向导
图1-46 证书导入向导

直接点击“下一步”按钮,此时需要选择证书的存储区域,点击第二个选项“将所有的证书放入下列存储”,然后点击“浏览”按钮,从中选择证书存储位置为“受信任的根证书颁发机构”,再点击“确定”按钮,然后点击“下一步”按钮,如图1-47所示。

图1-47 选择证书存储区域
图1-47 选择证书存储区域

再继续点击“下一步”按钮完成导入。

Mac

如果你的PC是Mac系统,可以按照下面的操作进行证书配置。

同样是点击Help→SSL Proxying→Install Charles Root Certificate,即可进入证书的安装页面。

接下来,找到Charles的证书并双击,将“信任”设置为“始终信任”即可,如图1-48所示。

图1-48 证书配置
图1-48 证书配置

这样就成功安装了证书。

移动端安装证书(重要)

移动端同样也需要安装Charles证书,具体操作如下:

image.png
image.png

选择在移动端安装证书选项,Charles提示如下:

image.png
image.png

提示需要设置手机http代理为电脑ip,端口为8888,然后在手机浏览器上访问 chls.pro/ssl 下载安装证书。如果IOS 版本在10以上,必须在设置->通用->关于本机->证书信任设置中打开对根证书启用完全信任。

Android

如果你的手机是Android系统,可以按照下面的操作进行证书配置。

在Android系统中,同样需要设置代理为Charles的代理

代理设置
代理设置

设置完毕后,电脑上就会出现一个提示窗口,询问是否信任此设备,此时直接点击Allow按钮即可。

接下来,像iOS设备那样,在手机浏览器上打开chls.pro/ssl,我们为证书添加一个名称,然后点击“确定”按钮即可完成证书的安装。

iOS

如果你的手机是iOS系统,可以按照下面的操作进行证书配置。

首先,查看电脑的Charles代理是否开启,具体操作是点击Proxy→Proxy Settings,打开代理设置页面,确保当前的HTTP代理是开启的,这里的代理端口为8888,也可以自行修改。

代理设置
代理设置

接下来,将手机和电脑连在同一个局域网下。例如,当前电脑的IP为192.168.1.76,那么首先设置手机的代理为192.168.1.76:8888

 代理设置
代理设置

设置完毕后,电脑上会出现一个提示窗口,询问是否信任此设备。

提示窗口
提示窗口

此时点击Allow按钮即可。这样手机就和PC连在同一个局域网内了,而且设置了Charles的代理,即Charles可以抓取到流经App的数据包了。

接下来,再安装Charles的HTTPS证书。

在电脑上打开Help→SSL Proxying→Install Charles Root Certificate on a Mobile Device or Remote Browser。

证书安装页面入口
证书安装页面入口

此时会看到如图所示的提示。

提示窗口
提示窗口

它提示我们在手机上设置好Charles的代理(刚才已经设置好了),然后在手机浏览器中打开chls.pro/ssl下载证书。

在手机上打开chls.pro/ssl后,便会弹出证书的安装页面:

证书安装页面
证书安装页面

点击“安装”按钮,然后输入密码即可完成安装

安装成功页面
安装成功页面

如果你的iOS版本是10.3以下的话,信任CA证书的流程就已经完成了。

如果你的iOS版本是10.3及以上,还需要在“设置”→“通用”→“关于本机”→“证书信任设置”中将证书的完全信任开关打开

证书信任设置
证书信任设置

注:手机设置完成后若无法上网,极有可能是ios版本过高并没有开启对证书的完全信任、完全信任、完全信任 导致!!!

Charles配置

取消Windows代理

由于此次目标是抓取移动端微信小程序中的数据,取消此选项是尽量减少无关的数据量。

image.png
image.png
查看本机IP地址与配置相关端口号

默认端口号是8888,可以修改。 Help -> Local ip Address :

image.png
image.png

Proxy -> Proxy Settings :

image.png
image.png
ssl代理设置

安装完成ssl证书后,需要在Charles中开启ssl代理设置,在Proxy->SSL Proxying Settings中,勾选Enable SSL Proxying,

image.png
image.png

点击add,新增访问的目标地址,根据提示,空的host与port匹配所有的值,可以使用*与\?进行匹配,此处host与port均填写*。

image.png
image.png

至此,Charles相关的配置完毕。

Charles抓取小程序数据

手机与Charles均配置成功后,打开微信小程序,此时Charles会自动获取http与https访问,如下:

image.png
image.png

点击左边解析的链接,选择Contents,JSON Text,可以看到解析出来的微信小程序数据内容。

找到对应的api之后,程序请求api,需要带上安卓对应请求头信息。

问题集锦

网络问题:

网传手机与电脑链接的网段必须相同,但是也有不一致的说法

手机或电脑无法联网:

证书问题:证书未能正确安装,查看手机上是否始终信任证书!(多数情况下如此);电脑上查看证书是否安装在受信任的位置,浏览器中的证书是否正确添加。

防火墙问题:关闭Windows10的防火墙,取消阻止传入连接。

image
image

https加密的链接显示unknow

此问题遇到的可能性最大,导致的原因很多,

最有可能的原因在于证书的问题,证书未能正确安装,查看手机上是否始终信任证书!!(多数情况下如此,注意iOS版本问题,过高需要始终信任此证书);电脑上查看证书是否安装在受信任的位置。

当你发现这个问题的时候,就不要再费力去设置charles以及换各种姿势去装证书了,这些都是徒劳的,因为从Android 7.0开始系统默认不信任用户证书,因此即时你安装成功,证书对APP来说也是无效的。

目前腾讯对微信的权限管的很严,小程序在模拟器上无法使用是普遍现象

网传另外一种方式,使用TBS爬取微信小程序: https://my.oschina.net/sumiao/blog/1587350?utm_source=debugrun&utm_medium=referral

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-04-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Charles简介
  • Charles:爬虫必备抓包分析工具下载
  • Charles的安装
  • pc证书配置(重要)
    • Windows
      • Mac
      • 移动端安装证书(重要)
        • Android
          • iOS
          • Charles配置
            • 取消Windows代理
              • 查看本机IP地址与配置相关端口号
                • ssl代理设置
                • Charles抓取小程序数据
                • 问题集锦
                  • 网络问题:
                    • 手机或电脑无法联网:
                    • https加密的链接显示unknow
                    相关产品与服务
                    SSL 证书
                    腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档