fiddler抓包原理
配置
打开Fiddler Tool->Fiddler Options->HTTPS 。 选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求,第一次会弹出证书安装提示,若没有弹出提示,勾选Actions-> Trust Root Certificate
(配置完后记得要重启Fiddler)
点击Yes,留意一下红框里面的内容,DO_NOT_TRUST_FiddlerRoot ,这个就是证书的名称。
点击是。
点击确定,这样Fiddler证书就已经添加成功了。
查看证书,Actions—>open windows certificate Manager ,即可以查看到DO_NOT_TRUST_FiddlerRoot
手机端抓包配置
打开Fiddler Tool->Fiddler Options->Connections
fiddler监听端口默认是 8888,你可以把它设置成任何你想要的端口。勾选上 “Allow remote computersto connect” ,允许远程设备连接。为了减少干扰,可以去掉 “Act assystem proxy on startup” 。
手机端(客户端)设置
查看本机IP,windows+R,cmd进入终端命令窗口。输入
C:\Users\admin>ipconfig
将 Fiddler 代理服务器的证书导到手机上才能抓这些 APP 的包。
导入的过程:打开浏览器,在地址栏中输入代理服务器的 IP 和端口(即电脑的IP加fiddler的端口),会看到一个Fiddler 提供的页面,然后确定安装就好了
打开 WiFi 设置页面,选择要连接的 wifi ,并且长按,在弹出的对话框中,选择“修改网络”。在接下来弹出的对话框中,勾选“显示高级选项”。在接下来显示的页面中,点击“代理”,选择“手动”。代理服务器主机名设为 PC 的 IP ,代理服务器端口设为 Fiddler 上配置的端口 8888,点”保存”。
苹果手机上的配置
苹果手机上的配置其实跟 Android 手机基本是一样的。如图
Fiddler的使用
视图功能区域
会话的概念:一次请求和一次响应就是一个会话。
fiddler主界面
快捷功能区
1:给会话添加备注信息
2:重新加载当前会话
3:删除会话选项
4:放行,和断点对应,后面详细讲解
5:响应模式。也即是,当Fiddler拿到远程的response后是缓存起来一次响应给客户端还是以stream的方式直接响应。
6:解码。有些请求是被编码的,点击这个按钮后可以根据响应的编码格式自动解码。
7:查找会话。
8:保存会话。
9:截屏。截屏后,会以会话的方式返回一个截图。
接着来看看会话列表
1、[ # ]:HTTP Request的顺序,从1开始,按照页面的请求顺序递增
2、[ Result ]:HTTP的响应状态
3、[ Protocol ]:请求使用的协议,如http、https、FTP等等
4、[ HOST ]:请求地址的域名
5、[ URL ]:请求服务器的路径和文件名,也包括get参数
6、[ Body ]:请求的大小,以byte为单位
7、[ Cashing ]:请求的缓存过期时间
8、[Content-Type]:请求响应的类型
9、[Process]:发出此请求的windows进程及进程ID
快捷键
删除一条会话,可以在选中会话后,按del删除,如若要清空列表,可以用Ctrl+X
右侧tab分析
左键点击单条HTTP请求,可以在右侧的tab面板中看到如下信息:
-
Statistic。
关于HTTP请求的性能和其他数据分析:
-
Inspectors
提供headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息,分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。
a、ImageView标签
JPG 格式使用 ImageView 就可以看到图片,选择一条Content-Type是image/jpeg的回话
b、TextView 标签
HTML/JS/CSS 使用 TextView 可以看到响应的内容。
c、Raw标签
Raw标签可以查看响应报文和响应正文,但是不包含请求报文
d、Auth标签
Auth则可以查看授权Proxy-Authorization 和 Authorization的相关信息
e、Cookies标签
Cookies标签可以看到请求的cookie和响应的set-cookie头信息。
3.AutoResponder标签
Fiddler 的AutoResponder tab允许你从本地返回文件,而不用将http request 发送到服务器上。
4.Composer 自定义请求发送服务器
Composer允许自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求
Parsed模式下你只需要提供简单的URLS地址即可(如下图,也可以在RequestBody定制一些属性,如模拟浏览器User-Agent)
5.断点请求/响应
如图,箭头所指的位置时可以点击的。共三种状态:
空白:不设置断点。
箭头向上:表示断点请求。此时客户端的请求是无法直接到达目标服务器的,需要手动控制。
箭头向下:表示断点响应。此时目标服务器的响应是无法直接到达客户端的,需要手动控制。
断点请求并修改
如图,操作步骤:
设置断点请求,访问网页
点击对应的会话
查看请求报文信息
修改请求内容
完成断点,放行,把该请求发送给目标服务器。
图中Break On Response表示把请求发给服务器,但是服务器的响应被fiddler拦截,此时可以修改响应内容(和断点响应类似)
断点响应并修改
和断点请求操作类似,只是在响应区域修改报文信息即可。
在断点响应时,请注意超时时间。
6.过滤域名
指定的域名的请求包。
默认情况下,这个页面是灰色的,代表默认不过滤任何请求。现在我们勾选 Use Filters 。
一般常用的有三种过滤条件:
1.域名过滤,只显示特定域名的记录,设置好了后一定要点击Actions生效;
2.类型过滤,一般对各种图片、CSS、JS这类的静态素材也不需要看的情况下,直接全部过滤掉
.*.(bmp|css|js|gif|ico|jp?g|png|swf|woff)
3.根据返回状态码,比如只想显示200的状态,其他的不显示
Fiddler进行弱网测试
-
Rules – Customize Rules(快捷键Ctrl + R)打开Fiddler ScriptEditor
2.Ctrl + F 查找m_SimulateModem标志位
-
找到onBeforeRequest,修改上行上传速度/下行下载速度的 参数,如你要模拟上传速度100KBps的网络,那上传延迟就是1KB/100KBps=0.01s=100ms,就改成100
-
打开fiddler,Rules –> Performances –> Simulate Modem Speeds 勾当选中此选项网速就会变很慢,这样就实现了弱网络效果