Fiddler 抓包高级进阶篇-天罗地网抓包大法

简介:

ztvSR6YkPqHyK6oplEZ=lVhLJNB1Evls3ksx91io

阅读本篇内容之前,建议先对基础熟悉下

本文内容纲要如下


喜欢的话关注收藏评论转发比心么么哒!Python学习交流719-139-688内有大量的项目开发和新手教学视频PDF书籍的千人大群等着你来加入

1、模拟限速

2、篡改数据

3、重定向功能

4、发送自定义请求,模拟小型接口测试

5、APP端抓包

一、限速

背景:进行日常测试时通常网络情况都比较好(内网),所以有时会忽略在低速或网络状况不好的情况下系统页面的表现(前端是怎么处理的)

手机可以用2G、3G、4G,也是一种方式,但这都是网络模式,而Fiddler可以设置上传和下载的延时时间,这种控制非常灵活,可以帮助我们模拟低速网络情况下页面、APP的显示与交互情况,比如响应时间过长时是否有弹出网络不好的提示、页面crash以及显示错乱、session是否一致等。

设置限速时间

(1)打开 【Rules---Customer Rules】,Ctrl+F搜索(m_SimulateModem),默认发送数据是300毫秒,接收数据是150毫秒,根据实际情况限速后进行保存(Ctrl+S)

(2)启用限速:Rules---Performance---Simulate Modem Speeds

演示:对于发送数据(uploaded)每KB延迟30000毫秒,接受数据(downloaded)每KB延迟30000毫秒

打开浏览器,访问百度,搜索python,页面加载非常慢,等全部加载完成时可以到Statistics查看时间

PS:测试结束后记得取消限速

二、篡改数据

篡改分两种:

一种是修改请求数据,检查接口的处理情况,这种适用于不方便直接调接口,其不关心页面,只看接口处理是否正常,返回的数据对不对。

比如 Harbor House官网注册页面 用户名限制的字符长度是2-20 ,把字符加到21以上,看效果,根据前端页面的预期结果是提示用户名超长了,而实际结果是注册成功了。

于是去数据库查了下表结构,发现用户名字段的长度是50,所以重新注册下,字符超过50,看接口返回的信息,提示“信息输入有误”,OK,测试通过,说明接口在这块做了保护。

用刚注册成功的用户名进行登录,提示“账号长度只能在2-20位字符之间”,登录失败。

(引申:这些不会生效的数据,也会被称为脏数据,不改掉会影响到后续性能)

登录失败

在这里做个假设:

仍然是上面的例子,页面上注册时提示没成功,但实际数据库中已经保存数据了,这样就算bug了,前端不应该在用户捕获到超过长度的字符时还去调用接口。

理论上前后端对于输入参数的限制应该保持一致,但实际上数据库字段长度是要比前两者多的,因为要留有富裕的空间作为优化

再比如注册页面对用户邮箱有进行验证,Fiddler中修改后查看服务端是否有验证,有兴趣的朋友可以自己去尝试下。

修改页面请求值

构造请求数据,突破表单的限制,可以随意提交数据,避免页面JS和表单限制,从而影响相关调试(绕过前端)。

1、设置断点:

Fiddler菜单栏->Rules->Automatic Breakpoints->选择Before Responses,

也就是发送请求之后,在Fiddler代理中转之前是可以修改请求数据的。

2、观察inspector,页面内容出现变化后修改Body的Value值,然后点击 “Run To Complete“,回到浏览器查看响应结果

从案例分享中,可以知道运单号的长度需>=5,那么调试时就输入3个字符,看看页面的响应是否正常。

图中获取不到提示,显示undefined,说明并没有调用接口

另一种是修改返回包的数据,关心的是页面处理情况

比如理财app上显示金额,那么我们在测试时肯定要考虑金额的长度,此时可以通过篡改数据来看服务端返回不同的结果来看页面显示是否正常

修改页面响应结果(拦截响应数据,修改响应实体)。

1、设置断点:

Fiddler菜单栏->Rules->Automatic Breakpoints->选择After Responses,

也就是服务器响应之后,但是在Fiddler将响应中转给客户端之前是可以修改响应的结果。

2、观察inspector,页面内容出现变化(说明拦截成功)

d1FgOZT6iZbp6XooE5kT5=Fy2Xcs8hP9wyFkyilu

3、切换到TextView,修改message,然后点击 “Run To Complete“,回到浏览器查看响应结果。

tc1jiyMRo4QC9cjOjbnPyl75Cbju1qqQqKmkWu0s

PS:可以试着将message信息改的很长,页面变形了,那就能说明问题了

三、利用AutoResponder替换服务器的返回数据(即原资源)

AutoResponder:重定向功能,将HTTP请求重定向到本地的文件,进行调试。

1、比如 百度官网 logo,用户提出来要更新下,这时可以通过这功能实现,也就是不需要修改代码,就能预览换个logo图片文件的效果。

在右上角选择AutoResponder页签,勾选Enable rules、Unmatched requests passthrough 两个选项,点击Add rule 按钮,在下方填写替换的规则,编辑好之后,点击保存。

第一行填写地址完全匹配,也可以写正则表达式进行模糊匹配,也可以从左侧把请求数据拖过来。

第二行填写要替换的内容,下拉框有很多选项可以选择, 比如201、302、404,502等status code

1jQrh7nCmdR7JTkSRcNZnHZ7dLHK0ZjBslfmlKkp

设置好替换图片后点击重新访问百度,请求回来的数据已经是替换后的内容了。

2、修改Response数据时超时

设置断点【After Response】之后,修改响应数据,来实现修改Response的内容,但是这样容易造成请求超时。

超时:客户端发送一个请求出去,如果在指定的时间内,没有返回,那么就不会再来处理这个请求了。

假设修改内容的操作大于设置的超时时间,就算之后将断点放行,请求返回200,这个时候客户端也不会做任何处理,可以理解为修改的内容没有产生效果。

此时就可以利用AutoResponder的功能了,直接将修改之后的内容放到文件

步骤:

(1)查看该结果返回的数据内容及格式

选择请求,右击,Save -> Response -> Response Body ,保存响应体,可以是文本格式。

(2)修改响应体的数据,如图修改title,重新发送请求,发现title和响应头部信息都已经更新。

PS:强制刷新Ctrl+F5,获取最新资源

四、发送自定义请求(request-builder)

Composer:一个小型、简易的接口测试工具,可以填接口地址,设置请求参数、填写响应结果,也可以修改相应的头信息(如添加常用的accept,host,referrer,cookie,cache-control等头部)后execute。

1、比如 POST请求, Harbor House官网注册页面

先输入正常值,抓取请求数据,然后找到相应的请求,直接拖到Composer里面,然后在Copmposer中修改参数数据(此处为账号),点击Execute 就会产生一个新的请求,双击后可以看到返回的信息,提示账号已经存在。

2、比如GET请求,百度搜索python

双击请求,切换到Webview

百度搜索请求

PS:如果是乱码,请求header那设置 Content-Type:charset=utf-8

五、APP端抓包

前置条件

1、手机和电脑在同一局域网(PC端可以设置wifi热点)

2、完成Fiddler的配置(允许远程连接),端口默认8888,然后重启Fiddler使其生效

Tools——>Options——>Connections,勾选Allow remote computers to connect

接下来在CMD命令窗口,查看Fiddler进程是否能正常监听8888端口,如果服务没有正常开启,可以尝试使用其他端口,端口修改的位置,如上图位置。

以下两种方法都可以:

(1)执行 netstat -anop tcp

(2)执行 netstat -ano|findstr “8888”

PS:0.0.0.0:8888,4个0代表所有的ip都可以连接进来这个端口

mEpqgTkXppvXan6YaDz0XKXpfMo0x=k8CtaezS2q

3、查看本机的IP

(1)命令行中输入:ipconfig 查看 IPV4

Hu=MqtmIOTDBWahiDEGRjwANRWvTyu0B59UqX62R

(2)直接在Fiddler中查看

hqD5W1eviWAzVZlSqoNAqwL1GBjw8MUfbiUn8CSh

4、手机配置代理(我用的iPhone手机)

(1)设置——>无线局域网——>选择wifi——>设置HTTP代理(输入IP,端口是Fiddler的代理端口8888)

(2)打开手机浏览器Safiri下载证书 就可以抓取https的请求了

  • 输入:http://本机的IP:8888,下载FiddlerRoot certificate

  • 安装并进行验证

5、操作app进行抓包

如果只想看移动端数据,也很简单,只需关闭pc端的代理就可以了(关闭Fiddler的“Capuring”开关)

wkDjUUMDL6J=aUw2L3Wal9iUEsNQYtgbSbAKls2s

关闭Fiddler的“Capuring”开关.png

PS:抓包之后记得关闭手机代理,以免手机上不了网


目录
相关文章
|
2天前
|
缓存 监控 前端开发
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(3)-再识Fiddler让你感性认识一下
【2月更文挑战第5天】《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(3)-再识Fiddler让你感性认识一下 上一篇通过宏哥的介绍想必各位小伙伴或者童鞋们对Fiddler已经有了一个理性地认识,今天宏哥在从Fiddler的外貌介绍和分享一下,让小伙伴们或者童鞋们再对Fiddler有一个感性的认识,今天主要是对Fiddler的界面进行一个详细的介绍。
126 1
|
应用服务中间件 nginx
wireshark抓包入门使用教程
wireshark抓包入门使用教程
790 0
wireshark抓包入门使用教程
|
2天前
|
监控 前端开发 网络协议
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(5)-Fiddler监控面板详解
【2月更文挑战第7天】《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(5)-Fiddler监控面板详解 按照从上往下,从左往右的计划,今天就轮到介绍和分享Fiddler的监控面板了。监控面板主要是一些辅助标签工具栏。有了这些就会让你的会话请求和响应时刻处监控中毫无隐私可言。监控面板是fiddler最核心的功能之一。记录了来自于服务器端(webServer)的请求会话。包括页面的请求和静态文件的请求。状态面板主要显示的是会话及会话的状态。位于软件界面右边的这一大块面板,即为辅助标签 + 工具,宏哥称之为监控。
60 0
|
2天前
|
安全 Android开发 iOS开发
《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(8)-Fiddler如何设置捕获会话
【2月更文挑战第9天】《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(8)-Fiddler如何设置捕获会话
48 5
|
2天前
|
XML JSON 网络协议
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(7)-Fiddler状态面板-QuickExec命令行
【2月更文挑战第8天】《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(7)-Fiddler状态面板-QuickExec命令行
29 5
|
2天前
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(6)-Fiddler状态面板详解
【2月更文挑战第7天】《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(6)-Fiddler状态面板详解
53 0
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(6)-Fiddler状态面板详解
|
2天前
|
Web App开发 监控 前端开发
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(2)-初识Fiddler让你理性认识一下
【2月更文挑战第4天】《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(2)-初识Fiddler让你理性认识一下 今天的理性认识主要就是讲解和分享Fiddler的一些理论基础知识。其实这部分也没有什么,主要是给小伙伴或者童鞋们讲一些实际工作中的场景,然后隆重推出我们的猪脚(主角)-Fiddler。在这个网络信息时代里,计算机安全始终是一个让人揪心的问题,网络安全则有过之而无不及。许多电脑高手 经常利用 Fiddler 可以作为代理的这个功能去抓取会话并进行修改达到自己想要的目的。Fiddler是一个强大并且跨平台的HTTP(S)抓包神器,你可别拿去做坏事。它的英文名叫:Fiddler,
74 2
|
5月前
|
Web App开发 安全 前端开发
『Fiddler数据抓包功攻略』| 如何使用Fiddler进行数据抓包与分析?
『Fiddler数据抓包功攻略』| 如何使用Fiddler进行数据抓包与分析?
103 0
|
9月前
|
API Android开发 数据安全/隐私保护
《协议测试》抓包工具Fiddler实战教程 2
《协议测试》抓包工具Fiddler实战教程