首先,DVWA是需要登录进去的。
有些DVWA在下图红框处是有写出用户名和密码的。
但是我下载的靶机的DVWA上没有显示用户名和密码,我试了下,竟然被我试出来了,用户名和密码都是“admin”。有些DVWA用户名是“admin”,密码是“password”。大家都可以试试。
登录进去后,选择左侧Brute Force。出现登录画面后,可以先点击1号方框中的View Source,看下页面源码。之后打开Burp Suite,(确保Burp Suite中的配置都是设置好的),打开Proxy-Intercept-Intercept is on,然后填写下图中方框中2,3的内容,随便填写就好,点击login按钮去登录。
这时被Burp Suite抓住了请求包,并显示出来。
可以看到这个网络请求是get方法,并且传了三个参数过去。此时点击Action按钮,选择Send 头 Intruder。
点击后,方框中Intruder会变成红色,点击进入Intruder模块。
Intruder模块(爆破模块)上方有四个标签页,分别为Position,Payloads,Resource Pool,Options。
默认显示的是Position标签页。
此时Intruder模块Position标签页面显示的就是之前我们发送过去的请求,他默认会把所有的参数数值都会标记出来,但是我们不需要更改这么多参数,所以先点击clear,把标出的参数全部清除标记,之后在我们需要的两个参数那标记出来。即username和password。
然后选择username的值,图中即为112233,选择后点击右侧add按钮,再选择password的值,图中的112233.点击右侧add按钮。选择的参数,即为爆破的值,如果你知道用户名,那username的值就不用选择。
在Choose an attack type中选择一种攻击方式。
方式一共有四种:
Sniper:对单一变量进行爆破。(只能对一个变量来爆破)
Battering Ram:对多个变量同时进行爆破。(对每个变量,每次爆破的值都是一样,比如username为12的值,那么password的值也为12)
Pitchfork:每个变量对应一个字典,对应进行爆破。(比如username对应字典1,password对应字典2,依次进行爆破。)
Cluster bomb: 每个变量对应一个字典。进行交集爆破。(比如username对应字典1,password对应字典2,先爆破字典1的所有内容和字典2的第一个内容,之后再爆破字典1的所有内容和字典2的第二个内容。)
之后点击上方Payloads标签页,选择Payload set,这个显示是爆破的变量。如果前面的Attack type选择的是第一个Sniper类型,只能选择一个爆破变量。之后点击Load,可以加载一个弱口令文本(可以在网上查找弱口令,直接下载)。加载弱口令文本后,如果觉得哪一个弱口令不要,可以直接选择那一行的弱口令,再点击Remove,如果觉得需要添加哪个弱口令,可以在Add按钮右边的输入框输入后,再点击Add按钮进行添加。添加完成后就可以开始爆破了。点击右侧橙色的Start attack按钮,开始爆破。
我Load了一个弱口令文本,显示如下图:
如果选择的attack type是Sniper模式,那么结果是:
一共9个口令,爆破18次,会依次赋值去爆破,首先第一个参数,依次赋值弱口令字典的值,然后第二个参数为之前提交的默认参数,当时我写的密码是112233,所以前面9次爆破就是第一个参数依次赋值字典,第二个参数为112233,后面9次爆破就是第一个参数为当时我输入的112233,第二个参数依次赋值字典的值。
如果选择的attack type是Battering Ram模式,那么在结果是:
一共9个口令,爆破9次,如上图,两个参数同时赋值同样的口令。
如果选择的attack type是Pitchfork模式,那么在Payloads页签中需要配置第2个参数的字典。选择第2个参数,然后加载一个字典。中间的字典我加载的是同样的数据,然后把adminpass删除(用来对比数据)。
然后开始爆破,结果是:
第一个参数字典为9个,第二参数字典为8个(我手动删除了一个)。可以看见,上面是只请求了8次,以最小的字典数为准。而且是依次去请求。
如果选择的attack type是Cluster bomb模式,那么结果是:
第一个参数字典为9个,第二参数字典为8个(我手动删除了一个)。可以看见,上面是请求了8*9=72次。首先第一个参数依次第1个字典数去请求,第二个参数为第2个字典的第一个口令,等第一参数全部循环一遍后,再次循环,第二个参数此时变成第2个字典的第二个口令。依次循环请求。大家可以看到上图,第72次请求时,便是两个字典的最后一个数。之前我也说过,我测试了,用户名密码都是admin。然后大家可以看到,在Length返回长度那,有一个不同的,一般而言,这个就是爆破成功的参数。
那么这次,对于username和password的爆破便成功了。
此篇文章是楼主第一次写有关渗透测试的,在渗透测试方面,楼主还是有很多不懂的地方,如果大家发现有写错的地方欢迎指正!