DVWA系列之13蛮力代码分析与防御

之前已经分析过了级低别的蛮力代码,下面再分别分析一下介质和高级别的代码。

培养基级别代码:

 DVWA系列之13蛮力代码分析与防御

很明显就可以看到中等和低级别的区别,在这里对负责接收用户参数的变量$ user和$通过进行了过滤,过滤的方法仍然是使用mysql_real_escape_string()函数。这样密码绕过就行不通了,但对于暴力破解却是没有丝毫影响,利用Burpsuite仍然可以很快破解出密码。

下面再看下高级别的代码:

 DVWA系列之13蛮力代码分析与防御

高级别首先仍是对用户和通过美元变量进行了过滤,当然在过滤之前先使用stripslashes()函数清除了魔法引号的转义。再仔细观察一下与介质级别代码的区别,就会发现在如果语句其他的部分增加了一行代码“睡眠(3)”,也就是说如果密码输入错误,那么就需要等待3秒钟才可以继续输入。这个设计很明显是用来防御暴力破解的,在Burpsuite中测试一下就可发现密码破解的时间被大大延长了,这样如果将密码设置的稍微复杂一些,再加上适当的停顿时间,基本上就可以有效地防御暴力破解。

当然,防御暴力破解的最有效方法是在登录页面中加入验证码,虽然有些验证码也是可以被突破的,但如果将验证码也设置的稍微复杂一些,就像最近被吐槽的12306验证码,那么暴力破解基本上就是不可能了。

DVWA系列之13蛮力代码分析与防御