2011年11月6日星期日

Fiddler:Web Debuging Proxy

 

Technorati 标签: ,

 

发现一个不错的软件:Fiddler

What is Fiddler?

Fiddler is a Web Debugging Proxy which logs all HTTP(S) traffic between your computer and the Internet. Fiddler allows you to inspect allHTTP(S) traffic, set breakpoints, and "fiddle" with incoming or outgoing data. Fiddler includes a powerful event-based scripting subsystem, and can be extended using any .NET language.

Fiddler is freeware and can debug traffic from virtually any application, including Internet Explorer, Mozilla Firefox, Opera, and thousands more.

简单说,Fiddler就是HTTP proxy,通过把browser的proxy指向Fiddler,Fiddler可以对HTTP/HTTPS traffic进行monitor/debug/hack HTTP request和response。

首先最让我心动的是它可以很完美的做man-in-the-middle的HTTPS inspect,关键还是free的哦,虽然HttpWatch之流也能很好地做这种工作,但掏钱买这种tool对于我来说还不是一个option~~~

有了这个,最直接的用途是做协议分析啦,比如要去看看Google wave/gmail等HTTPS的应用协议和交互过程~~~

其次,除了常规的查看HTTP(s) request/response细节、修改request/response等功能外,Fiddler有意思的地方还在于:它是一个可扩展的框架:

  • 首先它支持script扩展,可以通过JScript.NET定义customized rule,比如我们可以把所有具有特殊header的HTTP request自动dump到文件中
  • 复杂一点你可以写个CSharp的dll,然后在Fiddler的script里调用CSharp的API(事实上所有的.NET的dll都是可以的),参见Extending FiddlerScript using .NET
  • 再复杂一点,彻底抛弃script了,你可以完整地用CSharp(或其他.NET)写个Fiddler Extension,通过实现一些接口IFiddlerExtension、IAutoTamper、IHandleExecAction…来扩展Fiddler的功能

OK,你除了能够扩展Fiddler外,还可以直接把Fiddler的功能集成到你自己的Application(Fiddler称之为FiddlerCore),想想通过给自己的代码加上简短的几条代码就能具备HTTP(s) interpret功能,还是很酷的~~~(不过还没想好要它干吗~~~)

另外一些有意思的话题是,可以用Fiddler做UI automation test(没深入看,似乎通过ExecAction);可以把Fiddler配置成Reverse Proxy…总之Fiddler提供了一个Proxy的框架,可以在这个基础上做些security auditing/intrusion detection的原型开发还是很方便的。

有兴趣的TX可以看看已有的一些Fiddler扩展,其中很有名的Watcher(Passive Security Auditor)x5s(Automated XSS Security Testing Assistant)对于想研究web security的都可以看看。

没有评论:

发表评论

Test Ads
Hello World