
2.2 火狐浏览器56.0的HackBar和FoxyProxy
笔者使用的火狐(Firefox)浏览器版本是56.0,再配合HackBar插件,为后续审计代码过程中调试HTTP请求参数提供了方便。在代码审计过程当中,要审计的程序中可能有很多参数,使用HackBar这款火狐插件会很清晰地罗列出要审计的URL地址里面的参数。
FoxyProxy这款工具可以很方便地调整代理IP地址和端口,使用起来很方便。如果读者发现有更好用的工具,也可以使用,笔者采用这款工具只是为了演示。
2.2.1 安装火狐浏览器
本书使用Firefox56.0版本,读者如果使用新版本也是可以的。但是要注意,如果使用新版本的火狐浏览器,插件可能会出现不兼容的情况。如果出现此种情况,建议降低浏览器版本或重新安装,关闭浏览器自动更新功能,或者使用可兼容的新版本插件。
现在,在Firefox官网上只能下载最新的版本,但是官网的ftp中还是支持下载56.0版本。笔者提供如下链接供大家参考。
●Windows 32位版本:http://ftp.mozilla.org/pub/firefox/releases/56.0/win32/zh-CN/Firefox%20 Setup%2056.0.exe
●Windows 64位版本:http://ftp.mozilla.org/pub/firefox/releases/56.0/win64/zh-CN/Firefox%20 Setup%2056.0.exe
●MAC版本:http://ftp.mozilla.org/pub/firefox/releases/56.0/mac/zh-CN/Firefox%2056.0.dmg
●Linux 32位版本:http://ftp.mozilla.org/pub/firefox/releases/56.0/linux-i686/zh-CN/firefox- 56.0.tar.bz2
●Linux 64位版本:http://ftp.mozilla.org/pub/firefox/releases/56.0/linux-x86_64/zh-CN/ firefox-56.0.tar.bz2
读者可以自行下载所需版本并安装,如图2-13所示。

图2-13 安装火狐浏览器
安装完成后需要设置浏览器的“不允许自动更新”项,设置方法为选择“选项→常规→更新”,在打开的界面中设置“不检查更新(不推荐)”,如图2-14和图2-15所示。

图2-14 火狐软件自身更新设置

图2-15 禁用自身更新
如果重启(关闭火狐浏览器后重新打开)后还会自动更新,那么重新安装一次即可。
2.2.2 HackBar的安装与使用
HackBar是安全测试必备插件,支持Get、Post。该插件能帮助我们在测试和学习过程中快速构造SQL、XSS语句以及URL编码,在代码审计中便于构造测试Payload。
该插件下载地址为https://addons.mozilla.org/en-US/firefox/addon/hackbar/。
访问该插件的下载地址并点击“添加到Firefox”进行下载添加,如图2-16所示。

图2-16 添加插件
重启浏览器就可以看到安装好的HackBar,如图2-17所示。

图2-17 插件添加成功
在旧版本中添加插件的方法如图2-18所示,可以在“设置→附加组件→扩展”中搜索hackbar,选择需要的旧版本,按照如图2-19所示箭头1、2、3指示的步骤操作即可。

图2-18 旧版本插件选择

图2-19 旧版本插件添加
安装完成后重启火狐浏览器。
下面介绍一下HackBar这款插件的使用方法。首先介绍常用功能按钮,如图2-20所示。
●Load URL用于获取URL地址,结果显示在HackBar的Get编辑框里。
●Split URL用于将URL地址拆分,以便修改URL。
●Execute用于访问HackBar编辑框的地址。
●Enable Post data是要提交的Post数据参数。
●Enable Referrer是要提交的Referrer数据参数。

图2-20 HackBar功能简介
接下来看一下用Burp Suite抓取的post提交包,如图2-21所示。2.3节中会详细介绍Burp Suite这款抓包软件。

图2-21 post提交包中的HTTP字段
第一个箭头指的是Referer[1]数据,第二个箭头指的是Post参数。
2.2.3 FoxyProxy安装与使用
打开火狐浏览器,在“设置→附加组件→扩展”中搜索FoxyProxy来安装,如图2-22所示,安装完成后重启就能使用FoxyProxy插件了。
重启后点击地址栏旁边箭头1所指的按钮,可以设置代理,如图2-23所示。点击“新建代理服务器”或“编辑选中项目”后,点击“代理服务器细节”进行代理设置,如图2-23中箭头3所指,并且设置为Burp默认的代理,IP为127.0.0.1,端口为8080,设置完点击“确定”。

图2-22 重启浏览器使用FoxyProxy插件

图2-23 服务器代理设置
点击“常规”选项卡,可设置修改代理名称、颜色和缓存功能,如图2-24所示。
填写信息后保存,并选中代理,这样火狐浏览器的代理就设置成功了,如图2-25所示。
在Burp Suite中设置同一端口后开启数据包截取功能就可以正常进行抓包了,如图2-26所示。

图2-24 设置代理名称、颜色、缓存

图2-25 火狐代理插件设置成功

图2-26 Burp Suite抓包测试
[1] HTTP请求中的Referer是一个典型的拼写错误,历史悠久,可以预见还会一直错下去。也许以后Referer会变成一个专有名词也说不定。所以,一般涉及到读取HTTP请求头的场景,我们需要用Referer这种错误拼写;除此之外一般都要用Referrer这种正确的拼写。