Fiddler Web Debugger 利器使用
Fiddler Web Debugger能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。
Fiddler 是一款功能非常强大的web 调试利器,简单的说你可以使用它截断浏览器发送给服务器的数据包,并在修改后发送出去,这在调试SQL注入或者其他网站逻辑攻击漏洞中非常有用,当然也有其他工具可以实现数据包的截断与重放攻击,比如 socketexpert+NC或者burpsuite都可以实现。但是相比较而言,Fiddler的使用最为方便。
Fiddler是一款免费共享软件,你可以去官网下载(Fiddler官网)。Fiddler的原理如下图所示,从图中可以看出,Fiddler充当了Browser(浏览器)与Server(服务器)的中间代理人角色,因此,不难理解为什么Fiddler可以截断浏览器发送出去的数据包和修改服务器返回的数据包。
安装完成之后运行,界面如图
- 代理功能
Fiddler的大部分功能都是在其作为本地代理的基础上实现的,如上面介绍的原理图一样,如果想实现数据包截断功能必须要设置为代理,它的代理功能设置比较简单,Fiddler版本2以后都是默认自动开启代理并设置IE的使用该代理,端口为8888,代理地址127.0.0.1:8888。如果端口发生冲突需要修改端口,则依次选择“Tools->Fiddler options->connections”,修改“Fiddlers Listens on port”的值即可。除了设置端口以外,还可以选择代理的协议内容,可以增加对FTP协议的代理,根据自己的需要设置即可。
![](https://i-blog.csdnimg.cn/blog_migrate/507058485853270e53dcfeed2de5c176.png)
- 截断功能
Fiddler的重头好戏是截断数据包,首先需要设置截取数据包的类型,依次打开菜单“Rules->automatic breakpoints”,可以选择“before request”、“after response”两种类型的截断模式。“ before request ”用于在发送请求前修改HTTP请求的内容,常见的是修改表单数据,以跳过Browser的JS验证。“after response ”主要用于本地开发WEB程序的测试,比如修改AJAX请求返回的数据,查看本地的响应策略。
下面以百度搜索为例,说明截断的具体使用方法。
- 将Fiddler设置为“before request”模式。
- 用google浏览器打开www.baidu.com,搜索 “fiddler”,如下所示
- wd字段是搜索关键字字段,修改wd为“csdn”,然后点击绿色按钮“Run to completion”得到搜索页面如下图所示
![](https://i-blog.csdnimg.cn/blog_migrate/6fd17f61c48484d92a50498463048119.png)
这里只是举了一个小小的例子,利用Fiddler可以实现更强大的数据包截断功能,比如乌云上关于建行的积分兑换漏洞就用到了数据包截断(建行积分兑换漏洞)
- 命令行
我个人觉得Fiddler的命令行功能比较好,常用的命令有cls(清屏),bpu www.xx.com(截断xx网站的请求),bpuafter www.xxx.com(截断xx网站的响应)。 最常用的是bpu命令,这样可以做到定点投放,不会造成所有浏览器访问的页面都被截断,导致Fiddler刷屏。
- END
这里只是介绍了Fiddler的数据包截断功能,其实Fiddler还有很多有用的功能,比如:会话查询、会话比较、创建 AutoResponder规则,具体的参考其官方文档