欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

「能说工具」系列之抓包神器-Fiddler

程序员文章站 2024-01-31 18:05:22
...

 

「能说工具」系列之抓包神器-Fiddler
            
    
    博客分类: 学点工具 fiddlerWiresharkPostman抓包Smsniff 

工欲善其事,必先利其器。 ——子曰。
接下来的一段时间,我会介绍一些平时使用的工具,主要还是日常程序开发中的工具,感兴趣的同学可以关注下我的微信订阅号 能叔,为感。

网络抓包对于探究神秘互联网世界的真相是必不可少的技能,工具有很多,最有名的要算 wireshark¹,这工具功能确实强大,但学习成本相对也较高,有兴趣的可以买本《wireshark网络分析就这么简单》自己慢慢研究。当然也有简单的,比如 Smsniff²,强烈推荐没啥基础且不想投入时间的朋友用。

以上两个软件我都不介绍,这里我主要想讲下 Fiddler³,介于前面两者之间,味道刚刚好。

Fiddler允许你监视,设置断点,甚至修改输入输出数据,你越使用它就会离网络世界的真相更进一步,你越了解它就越会爱上他,可谓开发工程师、测试工程师、网络工程师居家旅行必备之工具。

其实很多内容在官网的 Fiddler Doc 上都有很详细的介绍了,可能有些人英文不好(我也是),我从实用的角度捡几个重要的点简要说下。另外英文实在不认识你的话,就下载 Fiddler2中文手册 吧!


1、原理介绍

Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,默认端口:8888。

「能说工具」系列之抓包神器-Fiddler
            
    
    博客分类: 学点工具 fiddlerWiresharkPostman抓包Smsniff 

举个栗子,比如访问 www.qq.com

「能说工具」系列之抓包神器-Fiddler
            
    
    博客分类: 学点工具 fiddlerWiresharkPostman抓包Smsniff 

当然你看着8888端口不舒服(强迫症),想改也是可以的。

「能说工具」系列之抓包神器-Fiddler
            
    
    博客分类: 学点工具 fiddlerWiresharkPostman抓包Smsniff 

2、基本界面

Fiddler2的UI功能介绍我就不一一罗列了,大伙自己打开来看看就知道了,这里就上一张整体图,有个感性的认识就好了!
「能说工具」系列之抓包神器-Fiddler
            
    
    博客分类: 学点工具 fiddlerWiresharkPostman抓包Smsniff 

3、捕获浏览器会话

能支持HTTP代理的任意程序的数据包都能被Fiddler嗅探到,Fiddler的运行机制其实就是本机上监听8888端口的HTTP代理。 Fiddler2启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的。

  • chrome设置
    建议下载个proxy SwitchySharp的插件,代理设置、过滤、切换都非常的方便!
  • firefox设置
    点击: 「工具」 -> 「选项」, 在「选项」对话框上点击 「高级」 tab -> 「网络」 tab -> 「设置」.

这些设置都很简单,就不上图占用大家流量了(毕竟运营商喊了半天的“提速降费”,但流量还是挺贵的),其它什么360安全浏览器,什么XX浏览器,我就不一一讲了,大同小异。

4、捕获JAVA应用

这里不管你是Eclipse开发也好, intellij idea也罢,甚至有人还在使用Jbuilder我也忍了,设置都是一样,有两种方式:

1、启动配置应用的JVM环境

jre -DproxySet=true -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8888
或者
jre -DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=8888 MyApp

2、代码设置JVM代理设置

System.setProperty("http.proxyHost", "127.0.0.1");
System.setProperty("https.proxyHost", "127.0.0.1");
System.setProperty("http.proxyPort", "8888");
System.setProperty("https.proxyPort", "8888");

但是如果你程序中使用 Apache HttpClient 来发送请求的话,我不得不遗憾的告诉你,上述两种方式都没用,你必须在HttpClient上做代理设置,形如:

RequestConfig.custom().setProxy("127.0.0.1","8888").build();

5、捕获HTTPS

真的很简单,打开工具栏->Tools->Fiddler Options->HTTPS
「能说工具」系列之抓包神器-Fiddler
            
    
    博客分类: 学点工具 fiddlerWiresharkPostman抓包Smsniff 

如果你想知道原理,可参考 浅谈HTTPS以及Fiddler抓取HTTPS协议 ,反正我是不求甚解。

6、手机上抓包

要在手机上抓包的前提是: 要抓包的手机和安装Fiddler的电脑在同一个局域网上。 接下来就简单了,三步走:

  1. 配置Fiddler, 允许"远程连接" 
    Tools-> Fiddler Options 。(配置完后记得要重启Fiddler)。 
    选中"Allow remote computers to connect",是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来 。
    「能说工具」系列之抓包神器-Fiddler
            
    
    博客分类: 学点工具 fiddlerWiresharkPostman抓包Smsniff 

  2. 给手机安装Fiddler证书
    使用手机浏览器访问http://【电脑IP地址】:【fiddler设置的端口号】,既可以下载fiddler的证书并安装。啥?电脑IP怎么看?把电脑反过来,底部右下角就能看到,如果还是看不到,请用橡皮擦一下。

  3. 给手机设置代理
    打开HTTP代理, 输入Fiddler所在机器的IP地址(比如:192.168.1.104) 以及Fiddler的端口号8888。

7、操作会话

  • 查找会话
    有些时候,会话列表中一堆的会话,眼睛都要看瞎了的时候,它就派上用场了,用快捷键Ctrl+F打开Find Sessions对话框,输入关键字查询会话,查询到的会话会用黄色显示(当然你也可以配置换个颜色)。
  • 过滤会话 这个其实和查找会话类似,就是个加强版的“查找会话”,只不过可以选项更多。在任务面板的Filters tab中,里面有很多选项, 可以自己研究下,大概就知道怎么了。
  • 比较会话
    有些时候,我们想比较下两个会话的区别,选中2个会话,右键然后点击Compare,就可以用WinDiff来比较两个会话的不同了(当然需要你安装WinDiff)。
  • 保存会话
    有些时,候我们需要把会话保存下来,以便发给别人或者以后去分析。那么选择你想保存的会话,然后点击File->Save->Selected Sessions,搞定。

8、断点修改request、response

这属于高级技能,本期略,有时间再续。

9、快速命令行QuickExec

这属于高级技能,本期略,有时间再续。

10、其它小cookie

  • 有用的“十”字架
    绝对的傻瓜操作,比如你想抓指定的程序的包,比如只想抓“印象笔记”,那就点击按住“十”字架,然后拖到印象笔记的窗口放开就可以了。它能指定进程进行抓包,指哪打哪,排除不必要的干扰。
    「能说工具」系列之抓包神器-Fiddler
            
    
    博客分类: 学点工具 fiddlerWiresharkPostman抓包Smsniff 

  • 编码小工具
    点击Fiddler2工具栏上的TextWizard,这个工具可以Encode和Decode string,妈妈再也不用担心我的编码了。
    「能说工具」系列之抓包神器-Fiddler
            
    
    博客分类: 学点工具 fiddlerWiresharkPostman抓包Smsniff 

  • Composer作曲家
    这玩意和 Postman⁴ 一样,可以来模拟你的http请求,你可以自己构建一个美妙的曲子。
    「能说工具」系列之抓包神器-Fiddler
            
    
    博客分类: 学点工具 fiddlerWiresharkPostman抓包Smsniff 


附录


欢迎关注我的个人微信公众号:能叔

「能说工具」系列之抓包神器-Fiddler
            
    
    博客分类: 学点工具 fiddlerWiresharkPostman抓包Smsniff