参考文章:新手指南:DVWA-1.9全级别教程之Brute Force

原理

Brute Force,即暴力(破解),是指黑客利用密码字典,使用穷举法猜解出用户口令,是现在最为广泛使用的攻击手法之一,如2014年轰动全国的12306“撞库”事件,实质就是暴力破解攻击

分析

Low

先看代码,进行审计,找出可暴力破解原因

代码只验证了login参数是否设置,没有进行任何过滤,有两种方法破解,下面会一一介绍
image.png

SQL注入

审计中,可以看到是单引号字符型注入

Username:admin’ or ‘1’=’1
password:空

拼接的语句:select from users where user=’*admin’ or ‘1’=’1‘ and password=’’;
image.png

burp暴力破解

直接抓包,发送到Intruder模块,导入字典,爆破(这里burp怎么破解自己网上去查)
image.png

手动验证
image.png

Medium

老样子,先看代码,进行审计,找出可暴力破解原因

这里在username和password参数中用mysqli_real_escape_string函数转义,基本上防止了注入
还顺便加密了一波密码

但是,还是没有对暴力破解做有效的过滤措施,直接爆破就出来了
image.png
image.png

High

老样子,先看代码,进行审计,找出可暴力破解原因

相比于Medium,加入了token值,预防了CSRF,爆破的时候每一次都要换token值

但是,还是可以绕过,使用脚本获取每次的token,然后爆破
image.png

由于弟弟的编程能力不是很强,这里lonehand神写了一个脚本,大家可以去试,文章第一行有

Impossible

老样子,先看代码,进行审计,找出不可暴力破解原因

这里相比于High,添加了PDO语句,杜绝了SQL注入

添加了防爆破机制,当检测到频繁的错误登录后,系统会将账户锁定,爆破也就无法继续
image.png