如何进行抓包测试

本文介绍了抓包测试的概念和重要性,特别是使用Charles和Fiddler这两个工具进行HTTP和HTTPS请求的抓取、分析、过滤、断点操作以及模拟弱网环境。抓包用于接口测试、安全检测和性能评估,同时讨论了如何通过断点模拟数据修改来测试前端响应。此外,文章还提到了防止应用被非法抓包的安全措施。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

抓包测试

1.概念:

 抓包就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全

2.为什么抓包测试?


        1:有时候公司中接口文档某几个信息可能不详细,要测试这些接口的请求参数与响应结果,以及数据传输是否安全,那么可以使用抓包工具
        2:通过抓取数据请求,可以放到Jmeter中对服务器做压力或者接口测试
        3:通过抓包工具,可以分析 接口的请求参数,响应结果,以及数据传输是否安全
        4:通过抓包工具,可以编辑请求或者响应,达到测试效果

3.抓包http请求原理

4.抓包工具之Charles

4.1charles安装与破解(未破解半小时退出)

1.双击安装charles-proxy-4.1.4-win64.msi

2.破解:

help-->register charles
            * https://zhile.io
            * 48891cf209c6d32bf4

3.关闭电脑的防火墙

4.2抓取http请求

设置charles允许代理 proxy-->proxy setting -->勾选enable....

 * 设置手机/模拟器手动代理 ip地址 端口号

操作手机,弹出是否允许的询问框,点击allow

4.3抓取内容分析:

 

4.4添加过滤器

4.5抓取https原理

4.6charles抓包完整设置

4.7断点

proxy-->breakpoints setting -->enable breakpoints(允许断点)

请求

响应

断点操作的原因

我们在做前后台联调测试的时候,需要修改后台数据库中的数据,来查看前台页面上数据是否对应的改变,但是很多情况下我们没有修改数据库的权限,可以借助于断响应的操作来模拟的修改后台数据


            * 1.把响应的数据 全部删除 再给app返回 .,...判断app有没有做非空校验,如果没有做app将会崩溃
            * 2.改变某一个字段的值 来查看页面上的数据是否会动态改变

注意 不做断点操作的时候 直接关闭断点

4.8弱网测试

原理:限制带宽
            proxy-->throttle setting-->勾选enable throttle-->only for select hosts(只限速选中的主机路径)

charles模拟弱网的原理是限制带宽;fiddler模拟弱网是延长时间
        charles可以只对某个主机路径进行限速;而fiddler是对所有的路径进行限速

        2G:15-20kb/s 
            * 一般设置10kb/s的速度
        注意:不使用的时候 一定关闭限速

4.9模拟本地数据MapLocal

不使用的时候 关闭map local : tools-->map local-->取消勾选enable map local
        * 
        什么时候map local模拟本地数据的功能?
            * 我们在做前后台联调测试的时候,需要修改后台数据库中的数据,来查看前台页面是否会    对应改变,但是没有数据库修改权限,可以借助map local的功能,通过修改本地数据来模拟的修改后台数据库数据

4.10模拟远程服务器MapRemote

4.11web_PC_小程序抓包

演示:

web网站抓包:12306

PC客户端:酷我音乐

* 注意,小程序抓包需要使用mumu模拟器,并且处于调试阶段才能抓取或者使用ios或者android7.0以后的系统,微信开发平台设置证书信任

4.12抓包常见问题

是不是所有的app都能被抓取到数据?
        * 如果一个上线的app能够被抓取到数据 本身就是不安全的
        * 一个上线的app是不应该被抓取到数据的
        避免被抓包的方式:
            1.可以判断是否使用了代理服务器,如果使用代理服务器不继续网络请求
            2.前台程序员还可以判断证书的正确性,如果是假证书不继续发送请求,也抓取不到
            3.让抓 但是抓取出来的请求 和 响应全都是加密的乱码数据,不是明文

        app抓取不到数据的表现:
            * 不开代理服务器charles,app正常能够使用
            * 开了代理服务器之后,发现app总是提示网络异常提示证书错误
        到公司之后 按照步骤设置手机 charles等,先抓取瓜子二手车,如果抓不到说明设置有问题;;;如果抓到了,但是你们公司的app抓不到,说明你们公司的app不让抓;需要程序员给你打包一个可以抓包的apk文件

4.13抓包工具能干什么


        * 分析接口响应时间及响应速度是否满足要求(2-5-8原则),接口响应时间一般1s内
            举例:其他页面打开都会正常显示,但是其中一个页面需要等待5s左右才显示?
                1.接口响应时间长 2.前台程序员接受到数据之后,解析渲染到页面的时间长
        * 分析接口中关键的数据(请求+响应)有没有进行加密传递 --- 安全性
        * 抓包工具还可以进行断点操作,可以判断app有没网络重连机制
        * 断请求可以修改请求方式 请求参数等 来达到接口测试效果
        * 断响应可以通过修改响应的数据来模拟修改后台服务器的数据,来查看前台页面是否对应改变
        * map local可以通过修改本地数据,来模拟修改后台服务器数据,来查看前台页面是否对应改变
            前后台联调测试的时候
        * 可以模拟弱网来进行弱网测试
        * 可以定位bug是在前台还是后台????
            举例:进入页面展示空白,其他页面都没有问题,bug属于前台还是后台?
            * 定位bug过程::::::!!!!!!
                1.抓取请求,分析请求参数 路径 方式等,跟接口文档中的接口进行对比,如果有问题,说明前台程序员发送的请求是有问题的,bug在前台
                2.查看响应内容,如果有问题说明后台返回数据有问题,bug属于后台
                3.如果后台返回数据也正常,说明前台程序员在接受到数据之后的解析展示有问题,bug属于前台

5.抓包工具Fiddler

双击安装FiddlerSetup.exe

  1. 抓取http请求,设置fidder


                * tools-->options-->connections-->勾选allow remote computer to connect(允许远程设备连接到fiddler上)

  1. 设置手机上网经过代理服务器(模拟器/真机):

* 必须保证手机网络和电脑网络在同一个网络内(要么连接同一个wifi,要么电脑开wifi,手机连接)
* 长按-->修改网络-->显示高级选项-->手动代理-->电脑ip和fiddler端口号



通过以上设置,可以进行http请求的抓取
      * 以抓取 儿歌多多 为例-->http请求

  1. 抓取内容的分析

 

  1. 添加过滤器

filter-->勾选use filter-->show only the following hosts(只展示下面的主机)-->填写主机名,分号隔开


            * 过滤器不使用的时候取消勾选

  1. 抓包https

         

在抓取http设置的基础上进行以下的设置fiddler
       tools-->options-->https
       勾选decrypt https....> 可能会弹出安装证书的询问框(信任fiddler证书吗?)


如果不弹框,action-->reset all ca(重置 删除证书)

在手机上安装证书(在抓取http设置基础上)
           浏览器上输入ip+端口号,进行证书下载安装

                瓜子二手车为例 

  1. 断点操作

rules-->automatic breakpoints-->

  1. 断请求


    * before request 请求之前 :修改请求方式 请求路径 请求头 请求参数等...
                编辑请求的内容 查看对应的响应结果,来达到接口测试的目的

  1. 断响应

      * after response 响应之后: 修改响应内容 响应头....
                有时需要修改数据库中的数据,查看页面内容是否动态跟随改变,但是不是所有人都有数据库操作权限,此时可以借助断点编辑响应的内容 查看页面展示内容是否动态改变

 

断点可以查看app里面网络有没有重连机制,,,一个网络健壮的app是应该有重连机制的

  1. 模拟弱网

rules--->custome rules
            搜索m_Simulate


            if (m_SimulateModem) {
                // Delay sends by 300ms per KB uploaded.
                //1000/300=3.3kb/s 1000/1kb/s=1000ms
                oSession["request-trickle-delay"] = "300"; 
                // Delay receives by 150ms per KB downloaded.
                oSession["response-trickle-delay"] = "300"; 
            }

            1000/想要的速度(kb/s) = 延时毫秒值--->1000/0.2kb/s = 5000

            * fiddler限速的原理是通过延长请求/响应的时间进行上行 下行的限速


            让规则起作用,打开规则
                * rules-->performance-->勾选 simulate modem speed(启用限速规则) 

  1. 模拟本地数据

6.抓包常见bug

1.抓取数据过程中,发现其他接口响应时间正常,有一个接口返回数据量不是特别大,但是响应时间已经超过了1S
    * 在抓我们公司app的时候,发现线上的版本也能抓取数据,并且是明文传递 --- 登录接口(12306)
    * 在抓包过程中,断请求或者响应发现我们app刚开始没有网络重连
    * 通过断响应把响应的数据删除或者删除了部分数据,破坏了原来后台返回的json内容,前台发生崩溃,说明前台程序员没有对后台返回的数据进行判断
    * 通过断响应修改某个字段的内容,例如商品的名称/价格,发现app页面上没有动态改变,原因前台程序员把商品名称/价格在前台写的是固定的
    * 在抓包工具模拟弱网的时候 数据返回延时 程序崩溃等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彭雨晏

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值