02.DVWA之暴力破解

DVWA之暴力破解

漏洞概述

暴力破解指攻击者枚举其准备的用户名和密码字典同时进行登陆,通过响应结果从而得到正确用户名和密码的过程

测试攻击

firefox浏览器,burpsuite

测试方法

LOW级别

  1. 设置DVWA安全级别为LOW

  2. 启动burpsuite并开启代理

    02.DVWA之暴力破解_第1张图片
    02.01.png
  3. 设置firefox浏览器代理为127.0.0.1:8080

    02.DVWA之暴力破解_第2张图片
    02.02.png
  4. 开启burpsuite拦截

    02.DVWA之暴力破解_第3张图片
    02.03.png
  5. 使用firefox浏览器发起登陆请求

    02.DVWA之暴力破解_第4张图片
    02.04.png
  6. 使用burpsuite进行暴力破解

    02.DVWA之暴力破解_第5张图片
    02.05.png
  7. 设置攻击方式和攻击位置

    02.DVWA之暴力破解_第6张图片
    02.06.png
  8. 准备用户名和密码字典

    02.DVWA之暴力破解_第7张图片
    02.07.png
  9. 设置playloads

    02.DVWA之暴力破解_第8张图片
    02.08.png
    02.DVWA之暴力破解_第9张图片
    02.09.png
  10. 开始攻击

    02.DVWA之暴力破解_第10张图片
    02.10.png
  11. 分析结果

    02.DVWA之暴力破解_第11张图片
    02.11.png
  12. 代码分析

    02.DVWA之暴力破解_第12张图片
    02.12.png

    说明:

    登陆过程直接将输入数据拼写到SQL字符串中进行执行,无任何保护措施,可任意尝试登陆以及使用'闭合的SQL注入(admin'或admin' or '1'='1)
    
  13. 自编Python脚本暴力破解

    02.DVWA之暴力破解_第13张图片
    02.13.png

    使用:

    + 从浏览器中copy登陆成功后的cookie信息
    + 使用python3运行脚本
    

    说明:

    + 遍历用户名和密码字典文件
    + 使用requests发送请求到dvwa,根据请求结果是否包含Welcome to password protected area字符串判断是否破解成功
    

MEDIUM级别

  1. 设置DVWA安全级别为Medium

  2. 启动burpsuite并开启代理

    02.DVWA之暴力破解_第14张图片
    02.14.png
  3. 设置firefox浏览器代理为127.0.0.1:8080

    02.DVWA之暴力破解_第15张图片
    02.15.png
  4. 关闭burpsuite拦截

    02.DVWA之暴力破解_第16张图片
    02.16.png
  5. 使用firefox浏览器发起登陆请求

    02.DVWA之暴力破解_第17张图片
    02.17.png
  6. 使用burpsuite进行暴力破解

    02.DVWA之暴力破解_第18张图片
    02.18.png
  7. 设置攻击方式和攻击位置

    02.DVWA之暴力破解_第19张图片
    02.19.png
  8. 准备用户名和密码字典

    02.DVWA之暴力破解_第20张图片
    02.20.png
  9. 设置playloads

    02.DVWA之暴力破解_第21张图片
    02.21.png
    02.DVWA之暴力破解_第22张图片
    02.22.png
  10. 设置结果匹配信息用以判断是否登陆成功

    02.DVWA之暴力破解_第23张图片
    02.23.png
  11. 开始攻击

    02.DVWA之暴力破解_第24张图片
    02.24.png
  12. 分析结果

    02.DVWA之暴力破解_第25张图片
    02.25.png
  13. 代码分析

    02.DVWA之暴力破解_第26张图片
    02.26.png

    说明:

    针对用户名和密码进行转义处理,预防SQL注入,同时对登陆过程失败的情况,休眠2秒返回结果,在一定程度上使破解攻击时间延长
    
  14. 自编Python脚本暴力破解

    02.DVWA之暴力破解_第27张图片
    02.27.png

    使用:

    + 从浏览器中copy登陆成功后的cookie信息
    + 使用python3运行脚本
    

    说明:

    + 使用线程池机制同时发起多个请求
    + 使用requests发送请求到dvwa,根据请求结果是否包含Welcome to password protected area字符串判断是否破解成功
    

HIGH级别

  1. 设置DVWA安全级别为High

  2. 启动burpsuite并开启代理

    02.DVWA之暴力破解_第28张图片
    02.28.png
  3. 设置firefox浏览器代理为127.0.0.1:8080

    02.DVWA之暴力破解_第29张图片
    02.29.png
  4. 关闭burpsuite拦截

    02.DVWA之暴力破解_第30张图片
    02.30.png
  5. 使用firefox浏览器发起登陆请求

    02.DVWA之暴力破解_第31张图片
    02.31.png
  6. 定义burpsuite规则同时配置宏动作,用于user_token自动提取和填充

    02.DVWA之暴力破解_第32张图片
    02.32.png
    02.DVWA之暴力破解_第33张图片
    02.33.png
    02.DVWA之暴力破解_第34张图片
    02.34.png
    02.DVWA之暴力破解_第35张图片
    02.35.png
    02.DVWA之暴力破解_第36张图片
    02.36.png
  7. 使用burpsuite进行暴力破解

    02.DVWA之暴力破解_第37张图片
    02.37.png
  8. 设置攻击方式和攻击位置

    02.DVWA之暴力破解_第38张图片
    02.38.png
  9. 准备用户名和密码字典

    02.DVWA之暴力破解_第39张图片
    02.39.png
  10. 设置playloads

    02.DVWA之暴力破解_第40张图片
    02.40.png
    02.DVWA之暴力破解_第41张图片
    02.41.png
  11. 设置结果匹配信息用以判断是否登陆成功

    02.DVWA之暴力破解_第42张图片
    02.42.png
  12. 开始攻击

    02.DVWA之暴力破解_第43张图片
    02.43.png
  13. 分析结果

    02.DVWA之暴力破解_第44张图片
    02.44.png
  14. 代码分析

    02.DVWA之暴力破解_第45张图片
    02.45.png

    说明:

    在每次请求检查随机参数token的正确性,在一定程度上增加了暴力破解的难度,同时对用户名和密码进行转义处理,预防SQL注入,在登陆过程失败的情况,休眠0-3秒返回结果,在一定程度上使破解攻击时间延长
    
  15. 自编Python脚本暴力破解

    02.DVWA之暴力破解_第46张图片
    02.46.png

    使用:

    + 从浏览器中copy登陆成功后的cookie信息
    + 使用python3运行脚本
    

    说明:
    + 首次请求登陆页面html同时解析user_token,在后续发起登陆请求时初始化user_token参数,并从响应的html中user_token作为下次请求参数的数据来源
    + 使用requests发送请求到dvwa,根据请求结果是否包含Welcome to password protected area字符串判断是否破解成功

修复建议

  1. 对于修改数据和登陆表单提交使用POST方式,同时数据通过POST方式读取

  2. 添加随机token预防csrf攻击

  3. 针对登陆功能可添加图形验证码,每提交一次数据,验证码改变一次,验证功能在服务端进行

  4. 针对登陆次数进行限制,可使用登陆远程IP或用户名两种方式进行锁定,登录错误次数5分钟之内超过3次锁定1-3小时

  5. 对于管理类系统配置登陆用户允许的IP范围

  6. 可使用短信验证和邮箱验证方式实现双因子认证,注意对短信轰炸和邮件轰炸的防御

  7. 密码等敏感字段进行加密后传输,例如密码使用加盐hash算法等加密后传输

欢迎添加公众号【扯淡er】学习交流

02.DVWA之暴力破解_第47张图片
扯淡er

你可能感兴趣的:(02.DVWA之暴力破解)