应用抓包之Fiddler抓包

应用抓包之Fiddler抓包,第1张

tcpdump抓包: 应用抓包之tcpdump命令抓包

1.抓包工具Fiddler(Windows版)

2.真机一个

3.预抓包的App一个(我们以app抓包为例)

Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。

1.打开Fiddler

2.设置端口(Tools->Fiddler Options)使用默认就行

使用1024之后的,0-1023周知端口,一般都是系统和一些与设置的端口,端口1024到49151为注册端口,分配给用户进程或应用程序

既然是代理,客户端的所有请求都要先经过Fiddler

3.让手机和PC处于同一网络下(连同一WiFi或同一网段即可)

查看PC的IP地址

4.到开手机WiFi设置

进入WiFi详细信息(不同手机选项可能不同)

手动设置代理(用的手机在高级设置里)

主机名就是PC的IP

端口就是在Fiddler设置的端口

5.刷新一下app要抓数据的页面

不小心抓了个用WebView的app,尴尬两秒钟

发现这个app会获取手机归属地,位置信息等

成功抓到数据

浏览器请求一下

6.新建个文本文件,保存抓到的接口。例如:

7.一个个界面去抓,分析出接口

抓完记得把手动设置代理关了,不然有可能上网很慢。

        合格的软件测试工程师,不仅仅需要能够发现bug,还需要能透过bug表象,分析出问题根本原因,从而提升bug的解决效率,通过fiddler可以抓取接口请求的request和response,通过对参数进行分析,可以定位是前端问题还是后台问题,直接找到对应的开发人员,可以快速解决问题。

        配置前提:手机与电脑在同一局域网

            1、Fiddler设置打开Fiddler, Tools->Options。选中"Allow remote computers to connect". 是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来(配置完后记得要重启Fiddler).

            2、获取电脑ip地址:cmd输入ipconfig,或者直接通过fiddler查看,鼠标放在fiddler界面右上角网络连接图标处,即可展示本机ip(如图)。

            3、打开手机, 找到你的无线网络连接, 打开HTTP代理,选择“手动”, 输入Fiddler所在机器的IP地址(比如:192.168.1.104) 以及Fiddler的端口号8888

            4、手机安装证书:首先要知道Fiddler所在的机器的IP地址,手机浏览器访问“ip地址:8888”,FiddlerRoot certificate" 然后安装证书并设置信任。

        在测试过程中,为了测试覆盖率,往往需要执行很多场景的用例来验证某一功能在各种场景下的业务处理能力,包括正常、异常的场景;而仅仅通过页面端来发起校验,往往是不能够模拟所有场景的。另外,如果系统调用的有外部接口,根据外部接口的不同返回结果进行不同的逻辑处理,那么就需要外部接口的提供方配合我们进行测试,而在实际 *** 作中这是很难做到的,这个时候我们就可以使用fiddler来篡改接口返回的数据,构造我们需要的测试场景,可以大大提高我们的测试效率。

        举例:boss后台模拟充值

        输入充值金额,提交前,进行断点设置,fiddler中选中Rules->Automatic Breakpoints->Before Requests;页面进行业务 *** 作,此时在fiddler页面可以看见对应的请求图标会有个红色通行标示,表示请求过程中设置了断点,客户端发出的请求被fiddler拦截了

在左侧点击这个请求,在右侧Inspectors->TextView或WebForms等界面下会看到请求发送的具体内容,直接修改需要模拟的测试场景数据,再点击右下页面的run to complete按钮即可。

此时再看接口,会发现接口向服务器发送的请求是我们篡改过的。此方法在充值,购物支付等重要场景可以对服务端的安全性进行校验。本质是绕过前端的限制直接向服务端发起请求,有多种应用场景

        举例:将“baidu”这个关键字跟本地电脑的一张图片绑定,再访问带有“baidu”关键字的地址,就会被劫            持,具体步骤如图所示:

        举例:

移动端测试,常常会对网络有一定要求,因为移动端使用的网络环境是多变的,传统方法要满足不同网络可能要将移动端置于不同网络的真实环境中,但是fiddler可以帮助实现此功能。

举例:APP弱网测试

fiddler中选中Rules->Cutomize Rules,Ctrl+F搜索关键字:m_SimulateModem;

首先修改m_SimulateModem值为true,开启网络模拟

    修改uploaded、downloaded的数据来模拟不同的弱网场景:

上传1KB需要300ms,转化一下上传速度:1Kb/0.3s = 10/3(KB/s),如果想设置上传的速度为50KB/s,你则需要设置Delay 时间为 20ms(=1000/50)

2G一般上行/下行速率约为:2.7、9.6kbs,模拟设置为:uploaded 约 2962 ms,downloaded 约 833 ms(弱网一般指2G网络)

3G一般上行/下行速率约为:384、2560kbs,设置为:uploaded 约 2.6 ms,downloaded 约 0.39 ms

有些需求,我们需要验证下后台接口是否对请求做了只能处理一次的限制,以防止漏洞产生

解决办法:

1.Reply:点击该按钮可以向服务器重新发送选中的请求,他可以帮助我们验证接口是否屏蔽了重复请求的情况

2.模拟多次重复点击,点击“Reissue Requests”的同时按下SHIFT键会d出提示对话框,要求指定每个请求应该被重新发送的次数。

抓包工具有很多,小到最常用的 web 调试工具 firebug ,大到通用的强大的抓包工具 wireshark .为什么使用 fiddler ?原因如下:

a. Firebug 虽然可以抓包,但是对于分析 http 请求的详细信息,不够强大。模拟 http 请求的功能也不够,且 firebug 常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存。

b. Wireshark 是通用的抓包工具,但是比较庞大,对于只需要抓取 http 请求的应用来说,似乎有些大材小用。

c. Httpwatch 也是比较常用的 http 抓包工具,但是只支持 IE 和 firefox 浏览器(其他浏览器可能会有相应的插件),对于想要调试 chrome 浏览器的 http 请求,似乎稍显无力。

而 Fiddler2 是一个使用本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler 。

Fiddler 是位于客户端和服务器端的 HTTP 代理,也是目前最常用的 http 抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP 请求,可以针对特定的 HTTP 请求,分析请求数据、设置断点、调试 web 应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是 web 调试的利器。

既然是 代理 ,也就是说:客户端的所有请求都要先经过 Fiddler ,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过 Fiddler 然后发送到客户端,基于这个原因, Fiddler 支持所有可以设置 http 代理为 127.0.0.1:8888 的浏览器和应用程序。使用了 Fiddler 之后, web 客户端和服务器的请求如下所示:

Fiddler主界面的布局如下:

主界面中主要包括四个常用的块:

启动 Fiddler ,开始设置。

点击“ Tools-->Options ”

设置HTTPS选项。在设置过程中会有d框,请允许。

设置connect选项,记住代理端口号,后面会使用。在设置过程中会有d框,请允许。设置完之后记得一定要重启Fiddler软件,不然不能使用。

通过ipconfig查看PC的IP地址。(快捷键“win+r”,输入cmd,d出黑框,然后输入ipconfig)。我的IP地址为192.168.1.9,需要记下

设置手机端。所有的Android机应该都可以长按wlan图标,然后进入网络连接,在连接详情里面设置代理。代理的主机名为上面查到的ip地址,比如我的为192.168.1.9,端口为connect是设置的,默认为8888。图片是华为p20截图。

然后手机端访问"192.168.1.9:8888"(你自己的ip地址和端口号),如果出现响应页面说明成功。

fiddler 抓手机 app 的请求,现在已经可以愉快的玩耍了,但是如何只抓来自 app 的请求呢?

把来自 pc 的请求过滤掉,因为请求太多,这样会找不到重要的信息了。

抓APP上的 HTTPS 请求

设置过滤

2.打开 fiddler>Tools>Fiddler Options>HTTPS>...from remote clients only ,勾选这个选项就可以了

...from all processes :抓所有的请求

...from browsers only :只抓浏览器的请求

...from non-browsers only :只抓非浏览器的请求

...from remote clients only :只抓远程客户端请求


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12064965.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存