DVWA(一) —— 暴力破解

概念

  1. 暴力破解 = 穷举法
  2. 理论上可以破解任何有规律的隐私信息

准备

  • 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等级

  1. 打开phpStudy并启动
  2. 打开zap,本地代理设置在connection里,默认为8080端口
  3. 打开Firefox浏览器,配置Proxy Switcher,注意把不使用代理(Direct)里的内容删除
  4. 浏览器里打开DVWA,先把DVWA Security里的安全等级设为Low,点击 submit
  5. 选择暴力破解页面,输入用户名test和密码test
  6. 打开zap查看抓取到的包,在请求框里右键选择 Fuzzremove 掉右侧窗口里默认的值
  7. 选取左侧窗口里username后的参数和password后的参数,点击右侧 add 输入用户名和密码字典(可以直接在最后一个content里键入所有字典内容)
  8. 点击最下面的Start Fuzzer开始暴力破解
  9. 点击响应包列 Size Resp.Body,降序排序,得到破解结果(原理:成功和失败的破解结果是不相同的,通常可以通过响应页面的大小直观判断出来)

medium等级

  • 利用DVWA自带的查看源码(view source)功能,发现有代码实现了输入错误停顿一定时间的功能,增加时间成本

high等级

  • 抓包发现每次登录参数 user_token 都是动态改变且不可预测的随机字符串
  • 下一次的user_token会在上一次的响应包里返回给浏览器
  • 破解动作:访问首页,获得user_token参数,发送带user_token的登录数据包
  • 需要自己编写python脚本代码破解

impossible等级

  • 输入错误三次,锁定15分钟,后面无论输入正确还是错误,都是同一页面,无法判断
  • 验证码也可有效防止暴力破解

修复

  • 利用验证码技术

你可能感兴趣的:(DVWA)