本教程是以DVWA为靶机,使用ZAP结合火狐浏览器插件Proxy Switcher and Manager,来实现暴力破解的目的。关于DVWA的安装教程,请查看我的博客“ZAP安装教程”文章。接下来我们开始吧。
1. 火狐浏览器插件的安装
当然你也可以不使用插件,也可以直接使用浏览器自带的代理功能,只要设置为127.0.0.1端口号为8080即可,本教程之所以使用插件,原因有二,其一是使用插件设备代理方便;其二是教大家插件的安装方法。接下来我们开始安装插件吧。
首先,打开火狐浏览器,在菜单中选择“附加组件”。
选择左侧列表中的“插件”项,在搜索处填写查找的插件Proxy Switcher and Manager。
在弹出的界面中,选择我们已经查找到的插件。
接下来添加到浏览器中。
在弹出的提示中选择确认“添加”插件。
在弹出的提示中“确定”即可。
此时插件已经安装完成。
2. 启动Proxy Switcher and Manager插件
接下来我们要将浏览器插件设置为代理模式,主要是为了后面的ZAP抓包使用。在浏览器工具栏上,选择小电脑图标,选择“Manaual Proxy”项,在“Profile:”处填写你的配置文件名称,并修改端口号为“8080”(端口一定要改,因为ZAP默认使用的代理端口为8080,这里是要连接ZAP的),我们要将代理模式必为HTTP模式,删除本地代理项,最后点击绿色对号即可设置为代理模式(这里比较麻烦,有7处操作项)。
3. DVWA启动与配置
phpStudy以及DVWA的安装与启动请查看“靶机安装教程(DVWA)”文章。我们成功登录DVWA后,需要将安全级别设置为低,这样就可以有效的实验暴力破解了。打开主界面,选择“DVWA Security”项。
在DVWA安全设置界面中选择安全级别为“Low”并点击“Submit”按钮来确认提交。
4. 切换到暴力破解界面
在DVWA主界面,选择“Brute Force”项,即为暴力破解实验页面。
这里模拟了用户登录的功能,我们随意输入一个用户名与密码,它的提示如下图所示:
如果输入了正确的用户名及密码,它会提示如下图所示(正确的用户名及密码为:admin/password):
5. ZAP实现暴力破解
打开ZAP后,关闭弹出的向导即可。
此时界面如下图所示:
接下来,假设我们不知道密码,这时我们切换到已经设置完代理的浏览器中,在暴力破解的界面中,随意输入帐户与密码(我输入的是mytest及mypassword),并点击“Login”登录。
切换回ZAP后,就可以看到截获的内容。我们选择“http://localhost”在“历史”选项卡中双击最后一项,就可以看到POST所发送的请求信息。其中包含我们输入的用户名及密码信息。
在这里,对于我们来说,最重要的是“username”及“password”,因为它是们是POST请求中发送用户名及密码的参数。在请求中,右键盘,选择“Fuzz”,如下图所示:
在界面中删除所有原有数据后再进行字典的添加,如下图所示,已经将HEAD头信息删除。
我们先对用户名添加字典,假设我们不知道用户名,同时需要根据下图所示操作提示进行操作:
(1)在“Fuzzer”界面中,选择用户名mytest(用鼠标划选或双击选择);
(2)在“Fuzzer”界面中,点击右上角的“Add”按钮来进行添加;
(3)在“Payloads”界面中,点击右上方Add”按钮来进行添加;
(4)在“Add Payload”界面,“Contents”列表中加入你设置的用户名;
(5)在“Add Payload”界面,点击右下角的“添加”按钮来完成添加操作;
(6)再回到Payloads”界面中,点击“OK”按钮确认添加。
我们再对密码添加字典,假设我们不知道用户名,同时需要根据下图所示操作提示进行操作:
(1)在“Fuzzer”界面中,选择用户名mypassword(用鼠标划选或双击选择);
(2)在“Fuzzer”界面中,点击右上角的“Add”按钮来进行添加;
(3)在“Payloads”界面中,点击右上方Add”按钮来进行添加;
(4)在“Add Payload”界面,“Contents”列表中加入你设置的密码;
(5)在“Add Payload”界面,点击右下角的“添加”按钮来完成添加操作;
(6)再回到Payloads”界面中,点击“OK”按钮确认添加。
设置完成后,就可以看到界面中你所添加的用户名及密码列表,接下来我们选择Fuzzer界面中的“Start Fuzzer”按钮来进行暴力破解。
等待一下,我们就可以在主界面中“Fuzzer”项中查看到结果。
暴力破解是逐个匹配,匹配的时间与字典的大小有关,接下来我们如何在列表中找到哪个是破解成功项,哪个是破解失败项呢,我们可以借助返回数据的大小来判别。我们选“Size Resp. Body”进行降序排序,在列中与其它大小不一样的(通常是大于其它的大小),即为我样成功破解的内容,我们就可以在“Payloads”列看到成功的用户名及密码“admin, password”。
以此为止,暴力破解已经完成。