1、Fiddle概念:
fiddle是一个HTTP调试代理,可以记录http和https的所有请求,可以设置断点,修改输入输出的数据,帮助我们去测试一些异常场景。
2、fiddle主界面
Fiddler的主界面分为 工具面板、会话面板、监控面板、状态面板
3、工具面板按钮说明:
说明注释、重新请求、删除会话、继续执行、流模式/缓冲模式、解码、保留会话、监控指定进程、寻找、保存会话、切图、计时、打开游览器、清除IE缓存、编码/解码工具、弹出控制监控面板、MSDN、帮助。
两种模式:
1、缓冲模式:直到HTTP响应完成时才将数据返回应用程序,可以控制响应,修改响应数据。
2、流模式:会即使将HTTP响应的数据返回给应用程序。
result:HTTP响应的状态
Protocal:请求使用的协议
host:请求地址的域名
URL:请求的服务器路径和文件名,也包括get参数
body:请求的大小
caching:请求的过期时间或者缓存控制header等值
CONTENT-TYPE:请求响应类型
Process:发出此请求的windows进程及进程ID
【Comments】:用户通过脚本或者右键菜单给此session增加的备注
【Custom】:用户可以通过脚本设置的自定义值
图标说明:
4、Fiddler常用设置
2.1 HTTPS设置
打开Fiddler Tool->Fiddler Options->HTTPS 。 (配置完后记得要重启Fiddler).
选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求,第一次会弹出证书安装提示,若没有弹出提示,勾选Actions-> Trust Root Certificate
另外,如果你要监听的程序访问的 HTTPS 站点使用的是不可信的证书,则请接着把下面的 “Ignore servercertificate errors” 勾选上。
证书安装提示:
点击Yes,留意一下红框里面的内容,DO_NOT_TRUST_FiddlerRoot ,这个就是证书的名称。
点击是。
点击确定,这样Fiddler证书就已经添加成功了。
查看一下证书,Actions—>open windows certificate Manager
可以证书已经添加进去了,证书名称就是之前提醒大家留意的,【DO_NOT_TRUST_FiddlerRoot】
2.2 手机抓包测试
fiddler监听端口默认是 8888,你可以把它设置成任何你想要的端口。勾选上 “Allow remote computersto connect” ,允许远程设备连接。
为了减少干扰,可以去掉 “Act assystem proxy on startup” 。
手机端(客户端)设置
首先查看电脑的 IP 地址,确保手机和电脑在同一个局域网内
Android 手机上的配置
将 Fiddler 代理服务器的证书导到手机上才能抓这些 APP 的包。导入的过程:打开浏览器,在地址栏中输入代理服务器的 IP 和端口(即电脑的IP加fiddler的端口),会看到一个Fiddler 提供的页面,然后确定安装就好了
打开 WiFi 设置页面,选择要连接的 wifi ,并且长按,在弹出的对话框中,选择“修改网络”。在接下来弹出的对话框中,勾选“显示高级选项”。在接下来显示的页面中,点击“代理”,选择“手动”。代理服务器主机名设为 PC 的 IP ,代理服务器端口设为 Fiddler 上配置的端口 8888,点”保存”。
苹果手机上的配置
苹果手机上的配置其实跟 Android 手机基本是一样的。如图
至此已配置完成。
Fiddler应用——Fiddler过滤功能
Fiddler的过滤功能在Fiddler右面板处,点击Filters显示如图所示面板。
如图所示,Fiddler的过滤面板主要分为几个部分:
1、Use Filters:是否启用过滤器
2、Actions:过滤设置生效
3、Hosts:Hosts过滤
4、Client Process:客户端进程过滤
5、Request Headers:请求header过滤
6、Breakpoints:断点过滤
7、Response Status Code:响应状态码过滤
8、Response Type and Size:响应类型和大小过滤
9、Response Headers:响应header过滤
下面分别对这几个部分做一解释。
1、Use Filters
勾选该功能,Fiddler的过滤功能才能使用。
2、Actions
Run Filterset now:运行过滤设置
Load Filterset:加载过滤设置,将本地已有的过滤设置导入到fiddle中
Save Filterset:保存过滤设置,可将当前过滤设置保存至本地,方便后续使用,文件后缀为 " .ffx "
修改过滤面板中的过滤功能后,点击Run Filterset now就能使当前设置生效。
3、Hosts
No Zone Filter :无host过滤
Show only Intranet Hosts:只展示内网的Hosts
Show only Internet Hosts:只展示互联网的Hosts
Hide the following Hosts:隐藏如下Hosts;
Show only the following Hosts:只显示如下Hosts;
Flag the following Hosts:标记显示如下Hosts;
多个Hosts之间用半角逗号或者回车分隔。
当使用Show only the following Hosts配置的域名时,此时Fiddler抓取到的信息只展示www.baidu.com的信息,访问其他地址的过程信息不左侧面板展示。
4、Client Process:客户端进程过滤
Show only traffic from:只显示某个进程的请求;勾选该选项之后,再选择windows中目前的进程
Show only Internet Explorer traffic:只显示IE发出的请求;
Hide trafficfrom Service Hosts:隐藏来自service host的请求
5、Request Headers:请求header过滤
Show only if URLcontains:只展示包含的URL
Hide if URL contains:隐藏包含的URL
Flag requests with headers:标记包含特定header的请求
Delete requests with headers:删除包含特定header的请求
Set request header:设置请求header
在未使用Request Headers过滤时,访问登录页面的请求如图所示:
在选择Show only if URLcontains过滤后,展示如图所示:
6、Breakpoints:断点过滤
Break request on POST:给POST请求设置断点
Break request on GET with query string:给带有查询字符串的GET请求设置断点
Break on XMLHttpRequest:给XMLHttp请求设置断点
Break resquest on Content-Type:给特定 Content-Type设置断点
7、Response Status Code:响应状态码过滤
Hide success(2xx):隐藏响应成功的session(2xx)
Hide non-2xx:隐藏状态码非2xx的响应
Hide Authentication demands(401,407):隐藏未经授权被拒绝的session(401,407)
Hide redirects(300,301,302,303,307):隐藏重定向的session(300,301,302,303,307)
Hide Not Modified(304):隐藏无变更的session(304)
8、Response Type and Size:响应类型和大小过滤
Show all Content-Type:显示所有响应类型
Hide smaller than 【】KB:隐藏小于指定大小的session
Hide larger than 【】KB:隐藏大于指定大小的session
Time HeatMap:获得即时数据,根据不同响应时间给响应的session设置响应的背景色
Block script files:阻止脚本文件,显示为404
Block image files:阻止图片文件
Block SWF files:阻止SWF文件
Block CSS files:阻止CSS文件
如图所示,左面板上部分是没有Hide smaller than 【1】KB 的请求,下面是隐藏后的。可明显看到已经过滤掉小于1kb的请求。
9、Response Headers:响应header过滤
Flag responses that set cookies:标记设置cookie的响应;
Flag responses with headers:标记带有特定header的响应;
Delete responseheaders:删除响应header;
Set response header:设置响应的header;