【软件安全技术】

操作实验:引用Fiddler工作分析HTTP连接过程。实验内容如下。

1) 比较分析常用的抓包工具Fiddler、Burp Suite、Firebug、HttpWatch、Charles、Microsoft Message Analyzer以及经典的Wireshark,了解Fiddler进行HTTP抓包分析的优势,并分析其工作原理。

2) 从官网 http://www.telerik.com/fiddler 下载并安装Fiddler

3) 使用Fiddler分析HTTP请求

4) 使用Fiddler模拟HTTP请求

5) 使用Fiddler分析HTTPS协议

6) 使用Fiddler对Android应用中的HTTP请求进行抓包分析。

完成实验报告。

1) 常用抓包软件的比较及其工作原理

Fiddler[1]是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯提供了一个用户友好的格式。

 

Burp Suite[2] 是用于攻击web 应用程序的集成平台,包含了许多工具。Burp Suite为这些工具设计了许多接口,以加快攻击应用程序的过程。所有工具都共享一个请求,并能处理对应的HTTP 消息、持久性、认证、代理、日志、警报。

Firebug[3]经停止开发的自由及开放源代码的Mozilla Firefox网页浏览器扩展,是一个网页开发工具,用户可以利用它除错、编辑、删改任何网站的CSS、HTML、DOM与JavaScript代码。

       HttpWatch[4]是强大的网页数据分析工具.集成在Internet Explorer工具栏.包括网页摘要.Cookies管理.缓存管理.消息头发送/接受.字符查询.POST 数据和目录管理功能.报告输出.HttpWatch 是一款能够收集并显示深层信息的软件。它不用代理服务器或一些复杂的网络监控工具,就能够在显示网页同时显示网页请求和回应的日志信息。甚至可以显示浏览器缓存和IE之间的交换信息。集成在Internet Explorer工具栏。

Charles[5]是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)

Microsoft Message Analyzer[6]微软出品,必属精品

Wireshark[7] (前称Ethereal)是一个免费开源的网上数据包分析软件。网上数据包分析软件的功能是截取网上数据包,并尽可能显示出最为详细的网上数据包数据。

 

fiddler的工作原理

第一步, fiddler向服务器发送请求进行握手, 获取到服务器的CA证书, 用根证书公钥进行解密, 验证服务器数据签名, 获取到服务器CA证书公钥。

第二步, fiddler伪造自己的CA证书, 冒充服务器证书传递给客户端浏览器, 客户端浏览器做跟fiddler一样的事。

第三步, 客户端浏览器生成https通信用的对称密钥, 用fiddler伪造的证书公钥加密后传递给服务器, 被fiddler截获。

第四步, fiddler将截获的密文用自己伪造证书的私钥解开, 获得https通信用的对称密钥。

第五步, fiddler将对称密钥用服务器证书公钥加密传递给服务器, 服务器用私钥解开后建立信任, 握手完成, 用对称密钥加密消息, 开始通信。

第六步, fiddler接收到服务器发送的密文, 用对称密钥解开, 获得服务器发送的明文。再次加密, 发送给客户端浏览器。

第七步, 客户端向服务器发送消息, 用对称密钥加密, 被fidller截获后, 解密获得明文。

由于fiddler一直拥有通信用对称密钥, 所以在整个https通信过程中信息对其透明。

2) 从官网下载并安装Fiddler

3) 使用Fiddler分析HTTP请求

 

 

4) 使用Fiddler模拟HTTP请求

Fiddler的断点有两种:请求前断点(Before Request) 和 响应后断点(After Response)。

顾名思义,Fiddler截获到请求暂停、截获到响应暂停。为什么要暂停呢?就是为了修改请求或响应的报文呀。开启两种断点的方式如下:

 

下面演示一下开启请求前断点的例子:

开启断点后,刷新一下百度首页(因为百度网页协议 https 的,若要修改内容的话,就要开启https解密功能),有:

 

注意到会话的图标是红色的(左上角),因为会话被请求前断点给暂停了,所以出现了类似于程序的断点标识。

切换到 RAW 的tab查看原始数据(如上),把里边的 User-Agent 的值修改为 iPhone 的web标识,如:

Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4

再点击(选中)刚才暂停的会话,接着按住 Shift 键(或者干脆把断点给关了,不然后面还要点击若干次 GO),点击工具栏的 GO ,Fiddler就会把修改后的请求发给百度的服务器,所以你可以看到下面的响应结果:

 

这是一个手机端的web页面,是的,我们成功篡改了报文内容并达到目的。

5) 使用Fiddler分析HTTPS协议

默认Fiddler是不支持解密 https 的报文内容的,能捕获到报文,但是报文加密了,打开就是一串乱码。如果你是本机测试的话,不妨用Fiddler的证书替换原有的SSL所需的证书。既然使用Fiddler自己的证书,那相当于它自己也那里一把钥匙,随时可以解密报文,看到报文内容。这对于调试来说特别方便。

按如下配置使能https的解析,

选择 Tools -> Telerik Fiddler Options ,设置如下:

再刷新网页可以看到解析出 form 表单的内容了:

 

6) 使用Fiddler对Android应用中的HTTP请求进行抓包分析。

# 相关材料:

1.[fiddler](https://www.telerik.com/fiddler )

2.[Burp Suite](https://portswigger.net/burp )

3.[firebug](https://getfirebug.com/ )

4.[httpwatch]( https://www.httpwatch.com/ )

5.[Charles]( https://www.charlesproxy.com/ )

6.[Microsoft Message Analyzer](https://www.microsoft.com/en-us/download/details.aspx?id=44226 )

7.[wireshark](https://www.wireshark.org/download.html)

8.[Fiddler 工作原理]: (https://blog.csdn.net/DreamTL/article/details/70405368)

9.[Fiddler进行http抓包和调试]:https://blog.csdn.net/e62ces0iem/article/details/72935158

10.[用Fiddler对Android应用进行抓包详解](https://blog.csdn.net/Yyongchao/article/details/73302357)

11. [Fiddler 教程](http://www.cnblogs.com/FounderBox/p/4653588.html?utm_source=tuicool&utm_medium=referral)

猜你喜欢

转载自www.cnblogs.com/shengwang/p/9878259.html