美文网首页程序员
【软件测试】抓包工具charles

【软件测试】抓包工具charles

作者: 燕姐的学习之路 | 来源:发表于2022-06-07 20:48 被阅读0次

    简介

    Charles是一款抓包修改工具,抓取http/https协议的包

    tips:当手机有安装vpn,记得将vpn链接去掉,否则会抓不到包(网络会出现直接走vpn线路)

    一、手机如何代理环境

    查看本地IP地址

    a.打开charles,点击 help—>ssl proxying—>Install charles ……—>获取ip地址,如图示的IP地址为192.168.1.7

    b.在 Charles 的菜单栏上选择 “Proxy”->”Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的设置。如下图所示:

    MAC抓包https

    在菜单栏选择 『Help -> SSL Proxying -> Install Charles Root Certificate』,会自动导入 Charles Proxy CA 证书并打开 Keychain Access,

    双击新导入的证书弹出证书信息页面,将 Secure Sockets Layer(SSL) 设置为Always Trust,关闭页面后弹出密码提示,输入密码更新系统信任设置。

    如果还是无法抓包,关闭浏览器重启后看下。

    1. iPhone http代理设置

    设置 -> 无线局域网 -> 当前连接的wifi 最右侧 详细信息按钮 -> 最下面的http代理填入IP,端口

    注意:ios 10.3及以上系统,需要在手机:设置-》通用-》关于本机-》证书信任设置里面启用完全信用Charles证书

    2. Android http代理设置

    取消当前wifi网络,重新连接,高级选项,http代理,手动,填入IP,端口

    android7以上使⽤charles抓取https 会出现unknown,即使安装了证书

    安装证书:在⼿机浏览器打开 chls.pro/ssl 地址安装证书

    解决⽅案:

    安装charles证书

    安装VirtualXposed

    将需要调试的app安装在VirtualXposed上

    charles Proxy>SSL Proxying Setting 添加需要查看的请求host

    解决⽅案⼆(推荐)

    ⼿机上安装charles证书

    项⽬中增加android:networkSecurityConfig配置,允许android7.0以上设备https抓包

    Charles SSL Proxying Settings中配置host,如果需要针对全部host⽣效,host配置为*即可

    配置代码如下

    <application android:networkSecurityConfig="@xml/network_security_config">

    <?xml version="1.0" encoding="utf-8"?>

     <network-security-config> // 配置后就可以通过charles抓取https(android 7.0以下设备默认是这种配置)

    <base-config cleartextTrafficPermitted="true" >

    <trust-anchors>

     <certificates src="system" />

    <certificates src="user" />

     </trust-anchors>

     </base-config> // 以下配置只针对debug包有效,不推荐这种⽅式

     <!-- <debug-overrides>-->

     <!-- <trust-anchors>-->

     <!-- &lt;!&ndash;信任⽤户安装的证书&ndash;&gt;-->

     <!-- <certificates src="system" />-->

     <!-- <certificates src="user" />-->

     <!-- </trust-anchors>-->

     <!-- </debug-overrides>-->

     </network-security-config>

    3. wifi环境下使用手机连接电脑需要注意以下几点:

    手机和电脑需要连接不同的wifi。因为网管有做隔离所以相同的wifi无法连接代理 。

    电脑防火墙需要处于关闭状态。

    手机上的浏览器无法抓包时可以尝试清空缓存,特别是UC浏览器

    4. 手机查看https内容

    iOS:

    ios手机浏览器访问chls.pro/ssl,安装证书后,进入设置-通用-关于本机-证书信任设置-选择刚才安装的证书-开启信任

    Android:

    电脑导出charles证书,传送到手机上,手机上在设置里面选择从存储设备安装证书,安装完就可以了

    5.Charles确认连接

    手机上任意打开一个网址,这是Charles会弹出一个框让你确认是否代理,点击allow就可以了,然后你就会在Charles上发现手机上的请求了。

    二、常用功能

    1.过滤功能

    主要用来过滤掉不需要的域名的抓包信息。

    操作步骤:

    菜单栏->proxy->recording setting

    include:需要抓取的域

    exclude:不需要抓取的域

    选择相应的选项后点击add按钮,弹出的界面中protocol选择相应的协议http或者https,在Host填入需要的域。

    例如:protocol:http Host:newupload.baidu.com

    2.网速模拟功能

    可以看在低网速下的相关功能的表现。

    操作步骤:

    菜单栏->proxy->throttle settings

    勾选enable throttling选项后选择需要的网速

    Bandwidth(带宽)、Utilistation(利用百分比)、Round-trip(往返延迟)、MTU(字节)(MTU的说明请看百度百科)

    配置后可以使用测速软件测试下现在的网速,确保生效

    3.断点功能

    可以绕过客户端判断,直接往服务器发消息。测试接口的各种边界情况,比如出错、超时等表现,Charles的断点+随意篡改。

    操作步骤:

    菜单栏→proxy→breakpoints

    预先设置需要断点的接口。根据相应的选项填入即可

    右键→breakpoints

    选中抓到的接口后右键选择breakpoints。下次执行时即可断住

    设置对应域名的断点:菜单栏→proxy→breakpointssettings(相当于该接口无法请求)

    4.Map Remote功能

    Map Remote 功能:是将指定的网络请求重定向到另一个网址;可以切换测试环境

    操作步骤:

    菜单栏->tools->Map Remote

    进入Map Remote勾选enable Map Remote

    add--》进入edit Mapping

    举例将美拍线上接口指向pre环境接口

    protocol:协议类型

    Host:需要的域名

    prot:对应端口

    ps:线上api对应https和443端口,beta和pre对应到http和80端口(其他项目需要自个了解后再做定向处理)

    5.Map Local功能

    Map Local:将某个网络请求重定向到本地的某个文件

    操作步骤:

    菜单-Tools-Map Local

    进入Map Local 勾选enable Map Local

    add–进入edit Mapping

    填入需要映射本地文件的协议,主机地址,端口号

    本地文件可以是自己造的测试数据,也可以是接口返回的数据保存到本地再进行修改,只需先将接口返回数据进行保存到本地:点击某接口response,右击save response。

    使用map local功能,请求并不会请求到服务端,会请求本地文件,这是和断点功能不同的地方

    6.批量执行功能

    可以批量执行或重复执行相同的接口。

    操作步骤:

    右键→repeat

    重复执行接口,只执行一次

    右键->repeat advanced

    重复执行多次或并发执行

    iterations:迭代次数

    concurrency:并发数

    concurrency为1时,重复执行iterations的次数

    concurrency不为1时,并发执行concurrency的次数

    7.模拟发送请求功能

    charles也可以模拟发送请求,选择你想要改造的接口,点选上面的钢笔进入编辑(可以改参数header任何你能改的信息)

    编辑成功后点击Execute执行请求

    8.允许重写某个地址的对应key信息

    charles允许重写对应域名的key信息,比如更改网页的cookie或是token过期时,方便复现对应问题

    9.电脑也允许抓包

    Mac :Help--SSL Proxy--Install Charles Root Certificate--这时会打开【钥匙串访问】--解锁系统根证书--找到Charles Proxy CA--打开--选择信任–使用此证书时:始终信任

    windows: Help--SSL Proxy--Install Charles Root Certificate--安装证书--下一步--将所有证书放入下列存储--浏览选择受信任的根证书到颁发机构--完成

    相关文章

      网友评论

        本文标题:【软件测试】抓包工具charles

        本文链接:https://www.haomeiwen.com/subject/zjzemrtx.html