暴力破解简介
暴力破解,是指黑客利用密码字典,使用穷举法猜解出用户口令,是现在最为广泛使用的攻击手法之一
LOW级别
使用BurpSuite进行暴力破解
抓包

将数据包发送到
Intruder
点击
Clear清除需要爆破的字段,选中password的值,然后点击Add,将其指定为需爆破的字段选择字典

开始破解
点击右上角
Start attack
判断破解出的密码

当使用
password进行破解时,响应包的长度与众不同,即可通过这种方式确定password为正确的密码
通过手工SQL注入进行无密码登陆
永真式注入
Username :
admin' or '1'='1Password :(空)

终止式注入
Username :
admin' #Password :(空)

Medium级别
Medium级别的代码主要增加了mysql_real_escape_string函数,这个函数会对字符串中的特殊符号\x00、\n、\r、\、'、"、\x1a)进行转义,基本上能够抵御SQL注入攻击
虽然SQL注入不再有效,但依然可以使用Burpsuite进行爆破,与Low级别的爆破方法基本一样
High级别
High级别的代码加入了Token,可以抵御CSRF攻击,同时也增加了爆破的难度,通过抓包,可以看到,登录验证时提交了四个参数:username、password、Login以及user_token

每次服务器返回的登陆页面中都会包含一个随机的user_token的值,用户每次登录时都要将user_token一起提交。服务器收到请求后,会优先做token的检查,再进行SQL查询
High级别的代码中,使用了stripslashes(去除字符串中的反斜线字符,如果有两个连续的反斜线,则只去掉一个)、mysql_real_escape_string函数对参数username、password进行过滤、转义,进一步抵御SQL注入
破解流程
首先请求
http://172.16.12.93/vulnerabilities/brute/,获取当前的user_token使用获取的
user_token,以及字典中的密码进行暴力破解
编写脚本进行暴力破解
编写Python2版本脚本xx.py,用于对password参数进行爆破
1 | from bs4 import BeautifulSoup |

使用BurpSuite进行暴力破解
首先,进行抓包

将其发送到
Intruder模块将
password字段、user_token字段设置为要破解的字段设置攻击模式为
Pitchfork
将
HTTP请求的线程数设置为1
设置
Grep-Extract处,选择Add
设置需要从响应中获取的信息
点击获取响应
选择
user_token的值,并复制点击
OK
设置
payloads第一个字典类型选择简单的列表,选择密码字典
第二个字典类型选择递归
grep,填写第一次请求所使用的payload,即上一步复制的user_token的值设置完成后,开始攻击

通过一段时间的暴力破解,即可破解出密码

Impossible级别
Impossible级别的代码加入了可靠的防爆破机制,当检测到频繁的错误登录后,系统会将账户锁定,爆破也就无法继续

采用了更为安全的PDO(PHP Data Object)机制防御SQL注入
暴力破解防御
使用高强度的密码(至少8位,数字、大写字母、小写字母、特殊符号)
设置登陆失败限制次数
设置密码历史,强制密码修改期限等密码策略
安装python第三方软件包bs4
在线安装
进入
python安装目录下的Script目录安装
1
pip install beautifulsoup4
离线安装
bs4官网下载tar.gz包将压缩包解压至
python安装目录下,进入解压文件后输入指令1
python setup.py install