Charles手机抓包教程

然后去填写对应的ip和端口号吗, 这里ios也是一样的,需要填写的端口是你charles中设置的代理的端口, 而ip是需要填写您对应的charles设备的ip, 我这里使用的charles设备也就是我的电脑的ip是192.268.14.222, 所以设置如下

Charles手机抓包教程

  • 然后退出您的电脑的charles中就会出现如下, 点击allow允许代理, 窗口中的192.168.14.238, 根据上图可以推理得出就是我使用的vivo手机的ip

    Charles手机抓包教程


  • Charles实战!!!

    抓包问题分析

    • 前端?
    • 后端?

    模拟具体实战问题:

    假如在某一个系统中进行了点击某个按钮后返回以下两种提示信息:

    1. 数据异常
    2. 弹出两次数据异常

    实施的具体步骤首先: Charles代理配置>客户端代理配置>操作客户端软件>分析请求数据

    使用抓包工具,根据请求数据来判断是否为前端还是后端问题…此处详解等待本周休息日我写一个模拟案例之后截图进行讲解

    https抓包

    • 首先判断Charles是否可以进行https抓包

      1. 我们打开https://azang.blog.csdn.net

        Charles手机抓包教程

      2. 这里说明我们是可以抓到https的报文的,但是因为「粗浅的解释:HTTP是超文本传输协议,信息是明文传输,HTTPS是具有安全性的SSL加密传输协议,所以HTTPS被报文被进行了加密」,所以对于Charles需要进行的一定的配置. 这里的解决方案就是安装SSL证书

    Windows证书配置

    1. 打开Charles,选择“help” -> “SSL Proxying” -> “install Charles Root Certificate”
    2. 在打开的证书框中, 点击“安装证书”, 选择“本地计算机”, 点击”下一步“
    3. 选择“将所有证书都存放下列储存”, 再点击“浏览”
    4. 选择“收信任的根证书颁发机构”, 点击“确定” -> “下一步” -> “完成”

    MacOS证书配置

    1. 打开Charles,选择“Help” -> “SSL Proxy” -> “Install Charles Root Certificate”
      Charles手机抓包教程
    2. 出现一个弹窗选择登陆然后添加
      Charles手机抓包教程
    3. 然后会有一个钥匙串访问在登录中找到对应证书,然后将使用此证书时选择始终信任

    Charles手机抓包教程

    Charles手机抓包教程

    1. 点击关闭窗口它会让输入密码,然后输入您的密码点击更新设置
      Charles手机抓包教程
    2. 这时候我们可以看见证书的状态发生了改变变成了加号
      Charles手机抓包教程

      Charles手机抓包教程

    Charles Https代理配置

    1. 在Charles窗口中点击菜单“proxy” -> “SSL proxying setting”

      Charles手机抓包教程

    2. 在打开的设置窗口中勾选“Enable SSL Proxying”,如果include中没有值的话

      Charles手机抓包教程

      点击add,下图中的host里面填写*表示所有的,如果您只需要特定的话填写特定的域名或者ip

      port是端口号,https默认的端口号是443

      Charles手机抓包教程
      Charles手机抓包教程

    3. 点击“OK”

    4. 我们重新打开网站https://azang.blog.csdn.net会发现我们可以得到报文了

      Charles手机抓包教程

    IOS证书配置

    1. 在电脑上运行Charles,并且IOS手机设置好代理,在浏览器中地址栏输入:
      http://charlesproxy.com/getssl

      Charles手机抓包教程

      Charles手机抓包教程

    2. 然后进入设置点击下载描述文件

      Charles手机抓包教程

    3. 点击安装

      Charles手机抓包教程

      Charles手机抓包教程

    4. 返回“通用”页面选择“关于本机”

      Charles手机抓包教程

    5. 点击“证书信任设置”,启用Charles Proxy CA证书并确认

      Charles手机抓包教程

    安卓(andriods)配置ssl证书

    1. 首先Charles -> help中下载ssl证书

      Charles手机抓包教程

    2. 然后传送到手机上接下来在手机上进行安装证书的操作

    3. 首先打开设置搜索证书, 且点击WlAN证书(这里使用的是vivo其他手机自行推理)

      Charles手机抓包教程

    4. 然后点击WLAN证书

      Charles手机抓包教程

    5. 接下来需要在你手机存储空间中找到对应的证书文件然后选择

      Charles手机抓包教程

    6. 然后编辑一个你可以记住的证书名称. 这里最主要还是示范演示写随便写了一个c

    Charles手机抓包教程

    1. 点击确定之后会提示你安装完成, 这里再去charles看https的请求的话那么就会发现内容不在是密文了

      不过同时一些细心的xdm也会发现有一部分的https请求,如果开了https代理甚至是无法通过的, 比如vivo手机中的对于你vivo.com.cn域名的请求就是无法通过的, 这里就是因为厂家的内部设置了, 暂时我也没有找到解决的方案, 如果有人找到方案的话可以评论区留言

    处理安卓(andriod)手机部分APP可能使用了flutter等框架导致http/https请求无法抓取

    在实际情况下, 以及现在各种框架百花齐放的. 有很多框架会因为安全考量去检测本机是否使用了wifi代理, 如果使用的话这要绕过wifi代理, 这对安全更好了, 但是对于测试产生了很大的难度, 一下就是解决方案

    众所周知🐶, wifi代理是代理的一种, 另一种代理是VPN, 我们可以代理所有的请求到一个ip:端口, 而VPN的代理原理是不同于wifi代理的

    这原理我也是看的没有深究过, 等深究完了再更一波, 挖个坑

    • 解决方案就是下载VPN, 通过VPN来做代理, 这里比较推荐的是使用Shadowrocket因为这个甚至可以代理ws的请求,不过因为我比较懒github上面只有源码和target没有直接的安装包, 小弟也是无能安卓了, 所以这里先介绍使用Drony(当然这个在github上也是只有源码的没有直接打包成安装包的target), 不过可以在CSDN上面随便找找找一个高版本的, 或者请贵公司的安卓大佬们帮忙打个包
    1. 首先下载并且安装Drony或者其他代理软件此处仅介绍Drony(请尽量找到高版本的因为低版本的话可能会出现问题)

    2. 打开软件转到设置

      Charles手机抓包教程

    3. 接下来我们填写需要代理的端口号这里是和WIFI代理一样的端口号填写方式是你charles里面设置的代理端口, 我这里是8888所以填写了8888

      Charles手机抓包教程

    4. 然后点开无线网络, 或者下面的不是无线网络

      这里需要注意, 因为安装包你是下载的, 你也不清楚那个老哥干了啥玩意, 我这个安装包出现的问题就是我即使连的是wifi但是我的无线网络列表中就是没有任何wifi显示, 所以就只能去不是无线网络中填写对应的数据, 但如果你的无线列表中有东西且有你连接的网络那么讲究直接填写就好了