WEB 服务器调试利器 Tamper Data
一. 简介
作为 Firefox 的插件, Tamper Data 简单易用,功能强大,可以用来查看和修改 HTTP/HTTPS 的头部和 POST 参数;可以用来跟踪 HTTP 请求和响应并记时;可以对 WEB 站点进行某些安全测试,从而为调试 WEB 配置带来了极大的便利,是网站维护人员不可多得的实用工具。
二. 安装
Tamper Data 的安装很简单,如下所示:
第一步:打开 Firefox,进入 google.cn,搜索 “tamper data”,并点击搜到的 "Tamper Data :: Firefox Add-ons-"项。如下图所示:
第二步:进入 Tamper Data 安装页面后,找到下面的位置并点击,开始安装:
第三步:安装完后后,可以在 Firefox 菜单栏的“工具”菜单项里面找到 Tamper Data,如下图所示:
三. 使用
Tamper Data 的使用也比较简单,下面介绍了其主要的用法:
点击 Firefox 菜单栏上“工具”菜单项里面的“Tamper Data”,就会弹出 Tamper Data 的主窗口,如下图所示:
可以看出,其主窗口主要分成三部分,分别如图中的 1,2,3 所示。当我们打开 Tamper Data 后,我们浏览网页时发出的每一个 HTTP 请求及其对应的响应都会被 Tamper Data 记录下来。第 1 部分显示每一个 HTTP 请求及其对应的 HTTP 响应的概要信息,其中包括了大量有用的信息,比如页面元素大小,HTTP 请求的方法,HTTP 响应的状态值,等等。最值得注意的是“Duration”和“Total Duration”这两个字段的值,他们显示出了打开每一个页面元素所花费的时间和打开该页面花费的总时间。根据这些时间值,就可以判断出打开我们页面的速度如何,是哪些页面元素影响了整个页面打开的速度,从而为我们进一步优化页面提供宝贵的信息。当我们在第 1 部分选中某条概要信息后,第 2 部分会显示出对应的 HTTP 请求的头部信息,第 3 部分会显示出对应的 HTTP 响应的头部信息。
如果我们比较喜欢查看图型化的统计信息,那么可以在 Tamper Data 主窗口的第 1 部分单击右键,在弹出的菜单上点击“Graph All”,如下图所示,那么这些每个页面元素及其打开它们所花费的时间,就会以图形的方式,直观地显示出来。具体的图形,就不提供了。
接下来,我们看看几个实际的例子。
第一个例子:我们把 APACHE 配置为,当用户第一次浏览我们的网站时,向用户的浏览器写入一个 Cookie,以方便对他们的访问行为的跟踪,然后,我们需要验证配置是否正确。于是,我们开启 Tamper Data,然后再访问我们网站的某个页面,接着分析 Tamper Data 所记录的数据。可以从第 3 个窗口看到,我们的 APACHE 服务器确实向我们的浏览器写入了预先配置的 Cookie,如下图所示:
接下来,我们去体会 Tamper Data 的真实含义,即“ 篡改数据”(或者说定制 HTTP 请求):截取浏览器发出的每一个 HTTP 请求,提示我们选择是要进行定制,还是不做定制而直接提交请求,还是终止当前被截取的请求,然后根据我们的选择决定是打开定制窗口,还是直接向 WEB 服务器提交请求,还是终止当前的请求。
默认情况下,Tamper Data 不会截取对图片的请求,所以,如果我们需要对获取图片的请求进行定制,那么需要一点点修改,点击 Tamper Data 主窗口上的“Option”,会出现下面的窗口,勾选“Tamper with Images etc.”就可以了。
顺便提一下,从下面窗口的内容可以看出,Tamper Data 还提供了一些进行 XSS(跨站脚本)攻击和 SQL 注入攻击的代码,而且允许我们加入自己的攻击代码,极大地方便了我们对 WEB 站点进行安全测试。
是该进行“Tamper”的时候了。
点击 Tamper Data 主窗口上的“Start Tamper”,开启对 HTTP 请求的截取。
一旦开启了对 HTTP 请求的截取,对于浏览器发出的每一个请求,Tamper Data 都会截取,然后显示出下面的窗口,要求我们作出选择:
在此我们选择“Tamper”,准备对 HTTP 请求进行定制,对我们的 WEB 服务器配置进行测试和调试。
点击率“Tamper”之后,会出现下面的窗口。可以看到,窗口的顶部,显示当前被截获的 HTTP 请求,左边窗口显示的是浏览器发出的 HTTP 请求的头部各字段,右边窗口显示的是浏览器发出的 HTTP 请求的 POST 参数。在这两个窗口里面,我们可以修改浏览器提交的 HTTP 请求头部字段/POST 参数,删除某些 浏览器提交的 HTTP 请求头部字段/POST 参数,或者添加其他合法的 HTTP 请求头部字段/POST 参数。很强大吧?
现在,我们想测试自己配置的图片防盗链是否正常起作用。于是我们添加一个 Referer 头部字段,并输入 www.cisco.com ,如下图所示,点击“OK”提交后,发现我们的请求被重定向到 go_way.html 页面,可见我们的配置是正确的。
下面是测试我们配置的防恶意浏览器访问。在下面的窗口,修改浏览器提交的 User-Agent 字段,将其设置为我们禁止的恶意访问浏览器之一,比如 sogou spider,点击“OK”提交后,发现我们的请求被禁止了,可见我们的配置是正确的。
这样的例子,还可以写很多,在此就不再讲述了。有兴趣的读者可以去深入研究 Tamper Data。
四. 总结
Tamper Data 是我见过的最好用的 WEB 调试工具之一,既可以统计每个页面及其元素的打开速度,又可以定制 HTTP 请求,对我们的网站进行安全测试。作为网站维护人员,实在是有必要掌握它,为自己的兵器库增加一种厉害的兵器。
附:本文提到的 APACHE 配置,可以参考我的另外一篇文章《我这样装 APACHE 》