概念
暴力破解 = 穷举法理论上可以破解任何有规律的隐私信息
准备
Firefox、Proxy Switcher、DVWA、OWASP ZAP、JDK
OWASP ZAP
需要依赖Java环境用途:可以处理并代理网络端口的数据包官方下载地址:www.owasp.org下载安装JDK,配置环境变量(path添加一个bin目录),验证Java环境(java -version和javac),官网搜索zap下载,启动安装时若弹出找不到JDK目录时,手动选择JDK的bin目录下的java文件
小知识
JDK11和JDK12在以前版本基础上,改动有点大,安装后默认是没有JRE的。 【解决方法】:使用bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre命令手动生成jre
破解过程
low等级
打开phpStudy并启动打开zap,本地代理设置在connection里,默认为8080端口打开Firefox浏览器,配置Proxy Switcher,注意把不使用代理(Direct)里的内容删除浏览器里打开DVWA,先把DVWA Security里的安全等级设为Low,点击 submit选择暴力破解页面,输入用户名test和密码test打开zap查看抓取到的包,在请求框里右键选择 Fuzz,remove 掉右侧窗口里默认的值选取左侧窗口里username后的参数和password后的参数,点击右侧 add 输入用户名和密码字典(可以直接在最后一个content里键入所有字典内容)点击最下面的Start Fuzzer开始暴力破解点击响应包列 Size Resp.Body,降序排序,得到破解结果(原理:成功和失败的破解结果是不相同的,通常可以通过响应页面的大小直观判断出来)
medium等级
利用DVWA自带的查看源码(view source)功能,发现有代码实现了输入错误停顿一定时间的功能,增加时间成本
high等级
抓包发现每次登录参数 user_token 都是动态改变且不可预测的随机字符串下一次的user_token会在上一次的响应包里返回给浏览器破解动作:访问首页,获得user_token参数,发送带user_token的登录数据包需要自己编写python脚本代码破解
impossible等级
输入错误三次,锁定15分钟,后面无论输入正确还是错误,都是同一页面,无法判断验证码也可有效防止暴力破解
修复
利用验证码技术