本文将在本地环境下,开展登录框的暴力破解实验,涉及的软件包括:DVWA、phpStudy、FireFox、BurpSuitePro。
1、首先安装上述软件并进行相关配置,本文不再具体介绍。
2、配置FireFox的代理,将所有的HTTP协议报文代理转发到端口。
3、BurpSuite的代理监听端口默认是,因此本地FireFox请求到端口的所有报文,都会被BurpSuite监听到。
4、启动phpStudy,登录dvwa,将安全级别设置为Low。
5、点击浏览器上的BureForce,在页面上录入admin+任意密码,点击登录。
6、此时在BurpSuite可以捕获到登录请求报文,选中,右击“SendtoIntruder”,将报文发送到Intruder模块。
7、清除所有payload,将选中密码“”,点击“add”,设置为payload。
8、加载密码库字典,点击“startattack”,开始遍历密码库进行匹配。
9、在请求响应报文列表中,找到长度不一样的报文,即为正确的密码。如果将DVWA的安全级别调高,爆破难度将会越来越大,有兴趣的可以试试。
接下来看看DVWA自带的代码中最高级别安全的登录框是如何校验的。
1、增加user_token校验
2、清理用户名、密码所包含的特殊字符
3、判断账号是否已被锁定,如已锁定,则返回错误提示
4、判断用户账号的请求登录错误次数是否超出N次,如果是则返回错误提示,并限定该账号只能在M个小时后再次请求
5、匹配账号密码,如果失败,则更新已经请求失败的次数,如果超出N次则锁定账号。如果更新成功,则将登录失败次数清零。
当然现在互联网上的登录模块,较少只校验账号密码,一般都会附加其他形式的校验,形成多重/交叉校验,但上述的设计思路,依然值得借鉴。