http---fiddler的高级应用2
Fiddler是一个强大的HTTP调试工具,可以用它来对WEB前端进行测试,诸如调试JSON,跟踪Ajax的工作。
当然,还可以用于渗透测试,因为它截取HTTP包,并可以对其中的内容进行修改。通过脚本的定制,甚至可以成为一个不错的渗透测试工具。
(笔者对渗透测试并不熟悉,只稍微研究过burpsuite,感觉在某些功能上burpsuite不如Fiddler脚本定制灵活)
关于它的介绍,我就不多说了。这里是百度百科的介绍:http://baike.baidu.com/view/868685.htm
而它的一些基本应用,已经有人写得比较详尽,所以也不加以说明。
这里是小坦克的关于Fiddler应用的博客地址:http://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728.html
其它类似的博客就不列举了,因为百度一下都能找到比较相似的内容。
然后是Fiddler的使用文档,在Fiddler官网上就有:http://fiddler2.com/documentation/Configure-Fiddler/Tasks/ConfigureFiddler
那么,以上这么多资料,基本上是可以满足不少人的要求了。
至少使用Fiddler进行断点、重发、调试等基本操作是完全没有问题的。
但这还不是Fiddler强大之处的极限,一个软件强大就强大在可以自由定制属于自己的功能。
而Fiddler毫无疑问是拥有这一特性的,Fiddler 是用C#写出来的。fiddler包含了一个强大的基于事件脚本的子系统,并且能够使用.net框架语言扩展。
参考资料:
一般来说,以上两个资料已经可以解决很多问题了。
那么我还是来介绍一下吧。
扩展Fiddler有两种方式
- 通过C#项目导入Fiddler的引用,然后使用其提供的功能开发自己的程序,这种方式是最自由、最灵活的,需要了解的是如何使Fiddler在C#项目中起作用,这在官网上有介绍。
- 通过安装Fiddler scirpt editor,在Fiddler的基础上,通过JScript.Net脚本定制自己的Fiddler需要的功能。
这里只介绍第二种方式。
首先当然是安装Fiddler scirpt ediot,只要启动Fiddler, 点击菜单Rules->Customize Rules...然后会询问是否需要安装,同意就行了。
这是Fiddler script的界面:

右边是一个简单的Fiddler常用类的介绍,里面有一些实用的方法。
而左边,就是我们可以进行定制的脚本内容了。
主要包括请求阶段处理定制,外观定制,命令控制台定制.
请求阶段处理定制
这是比较核心的部分了。
对Fiddler来说,对HTTP请求与响应分2个阶段,请求发出前(BeforRequest),请求发出后接收到响应前(BeforResponse)
在Fiddler script菜单->Go->OnBeforRequest,在函数OnBeforRequest,跳转到请求发到服务器前要做的处理,
此时相当于在请求发出前设置一个断点,然后可以对请求HTTP包进行header,cookie,context等修改.
例:修改百度一下的请求,使表单内容由搜索:"你好吗"变为"今天你吃了吗"。
而Go-<OnBeforResponse,在函数OnBeforResponse,则是请求发到服务器后,从服务器接收到响应后的处理
此时相当于在接到响应后设置一个断点,然后可以对响应HTTP包进行修改,这种修改只反应在本地,不会对服务器造成影响。
例:上一例中,把搜索"今天你吃了吗"返回的内容修改为"你今天好吗"返回的内容.(可以用断点测试一下效果)
外观定制
这个比较简单,就是对Fiddler界面的一些定制,如把捕捉的HTTP请求高亮显示,还可以自己写一个功能,并定制一个新功能区域。
不详细讲了,在参考资料里应该都有的。
命令控制台定制
这个实际上就是用一些命令执行一些功能,比如设置断点可以用快捷键F10,F11,也可以用命令控制台的bn、bpafter等一系列命令
这允许你写好了一个功能后,直接通过命令启动。
Fiddler的脚本定制就到此结束了。
本文并没有给出任何一个定制的实例,是因为个人觉得自己写的脚本不具有代表性,因为我目前用到Fiddler的地方只有日本手游的截包发包,以及自动脚本。
而在用Fiddler的过程中,我并没有找到国内Fiddler的论坛与较多的脚本定制资料,所以有了这一篇自己探索过程中找到的资源推荐篇。
当然,如果有什么问题也可以留言提出,我会在自己能力范围内回答~

浙公网安备 33010602011771号