目录
- 预备知识
- 关于web的一些基础知识
- 实验目的
- 实验环境
- 实验步骤一
- 实验步骤二
- 实验步骤三
预备知识
关于web的一些基础知识
要分析Fiddler抓取的数据包,我们首先要熟悉HTTP协议。HTTP即超文本传输协议,是一个基于请求/响应模式的、无状态的、应用层的协议,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。
HTTP目前最新版本为1.1,无状态指web浏览器与web服务器之间不需要建立持久的连接,意思是web浏览器向服务器发起一个请求,服务器响应以后连接就被关闭了,所以,HTTP请求只能客户端发起,服务器不能主动向客户端发送数据。
Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作的,fiddler默认使用的代理地址是:127.0.0.1,端口默认为8888,安装后会默认监听IE浏览器的数据包,我们也可以通过设置代理服务让Fiddler抓取其他浏览器的数据包。
当然,Fiddler可以抓取支持http代理的任意程序的数据包,如果要抓取https会话,要先安装证书。
实验目的
通过该实验了解fiddler的使用方法,能够熟练运用fiddler拦截HTTP/HTTPS请求,掌握几个fiddler命令的基本用法并成功设置断点拦截网站请求,运用fiddler的编码器功能对进行解码以及学习fiddler会话编辑器的用法。
实验环境
客户端:Windows 10,IP地址:随机分配。
测试服务器:centos69,IP地址:10.1.1.155。
辅助工具:fiddler5。下载地址:http://tools.hetianlab.com/tools/Fiddler.zip
实验步骤一
我们的任务分为8个部分:
1)认识fiddler界面,学会判断有用信息。
2)使用fiddler过滤器对流量进行过滤。
3)使用fiddler抓包,掌握http请求包的结构并对服务器响应包进行分析,掌握响应包的组成。
4)安装HTTPS证书,并抓取HTTPS通信包。
5)设置断点,更改HTTP/S请求/响应包。
6)使用fiddler解码功能对数据进行解码。
7)使用Fiddler会话编辑功能。
8)Fiddler插件。
任务描述:打开fiddler并开启监听模块,对数据进行监听,提取HTTP关键信息。
1.下载fiddler后一路默认安装至完成,在安装路径或开始菜单启动fiddler。这里有一个点需要注意,fiddler安装之后默认会在IE浏览器中装一个fiddler的插件,所以它对IE及国内基于IE内核的各类浏览器都能实现监听,要监听其它浏览器需要先打开代理,设置为127.0.0.1,端口号为8888(fiddler默认)。使用浏览器访问目标站点(实验环境内访问10.1.1.155,只做简单访问用),可以看到fiddler监听到了很多web文件(CSS、图片、HTML、Js、flash文件等),图示为Fiddler的一些基本信息。下面黑色的框是命令框,怎么用后文会讲到。
todo
2.好在fiddler为我们提供了强大的过滤显示功能。我们在fiddler中可以定义显示出来什么样的数据包。先在命令框中输入cls,清空所有会话,然后在右侧filters的response typeand size中选择Show only HTML保留html数据包,去除其他无用的会话,可以看到,fiddler过滤以后的信息更容易让我们分析了。
3.点击随意一个会话,在右侧点击Inspectors,可以看到请求数据包及相应数据包。
4.单击响应包Text View可以看到web的相应内容(我们能看到排版是因为浏览器成功解析了代码),单击headers可以看到响应包的头信息,请求包同理。
单击Hex可以看到16进制的请求/响应包的16进制内容。
实验步骤二
任务描述:成功分析HTTP数据包后,应该学会抓取并分析HTTPS数据包。
1.虽然fiddler成功抓取了HTTP的数据包,但是访问一个https协议主机fiddler却什么反应都没有,下面开始fiddler抓取https的实验。
2.单击Fiddler菜单栏的Tools,选择options,选择https选项,勾选Decrypt HTTPS traffic复选框,如图(若出现证书问题,一路确定即可):
再次访问https协议主机,这时候我们会看到fiddler成功监听到了HTTPS数据包。
实验步骤三
任务描述:学会使用fiddler设置断点,更改https的请求/响应包。
方法1:选择fiddler菜单栏的rules,Automatic Breakpoints,可以看到三个选项:Before Request(请求之前),After Response(请求之后),Disabled(不拦截)。
方法2:通过命令,例如需要对www.baidu.com的请求进行拦截,在命令框(黑色那一条)中输入:
bpu www.baidu.com
执行以后,所有发向www.baidu.com的请求都会进行拦截,访问其他网站则不会。
可以看到,没有响应包,说明fiddler成功拦截。一旦被拦截,网站就会处于阻塞状态,fiddler则会自动跳转到Inspectors模块。
1.回到fiddler中,看到拦截成功后的request信息后,我们就可以随意对数据进行修改了,例如想要修改header,便可以在headers模块中右键想要修改的内容,选择Edit header。若是表单信息,则可以直接选择webforms模块,对数值进行修改。
2.修改完成后,可以选择Run to competion进行发送,也可以选择break on response,但是若选择Break on response,则fiddler会在服务器收到请求后返回响应包时拦截响应包并对其进行修改。如图aaaa为成功修改响应包的内容。
3.fiddler编码器:
单击fiddler菜单栏的tools,选择TextWizard,这时候就可以将一些web中被加密过的数据进行解码了。或者在请求/响应包对应的数据进行右击,选择Send to TextWizard,十分方便。
4.Fiddler会话编辑器:
Composer意为编辑器,他可以针对URL进行会话分析,在会话编辑器中,可以方便地进行调试,特别是在测试XSS漏洞与SQL注入漏洞时,直接修改测试字段,单击Execute进行发送,很方便。具体操作为:
在左侧会话框选择需要分析的URL,将其拖入右侧composer框内,编辑器就会自动分析请求。发送请求后,fiddler仍然会记录会话,想要查看详细信息,双击会话即可。
5.插件支持(因试验机为断网状态,这一部分了解即可):
Fiddler可以在http://fiddler2.com/fiddler2/extensions.asp获得相应的fiddler插件,也提供了一些对外接口,方便渗透测试人员进行插件开发。下面介绍一些fiddler常用插件:
1)Intruder21,功能类似于burp suite中的Intruder模块。
2)X5s可以帮助渗透测试人员快速发现跨站脚本漏洞。
3)Ammonite是一款安全扫描插件,可以有效地检测SQL注入漏洞,命令注入漏洞,缓冲区溢出漏洞,文件包含漏洞等web安全漏洞。