美文网首页
08.DVWA之SQL盲注

08.DVWA之SQL盲注

作者: imsilence | 来源:发表于2019-02-19 13:26 被阅读0次

漏洞概述

SQL盲注是指不能根据报错和回显来判断是否存在SQL注入时,攻击人员通过提交逻辑条件来观察响应结果来判断是否存在SQL注入的方式

测试工具

firefox浏览器,burp suite,sqlmap

测试方法

LOW级别

  1. 设置DVWA安全级别为LOW

  2. 启动burpsuite并开启代理

    08.01.png
  3. 设置firefox浏览器代理为127.0.0.1:8080

    08.02.png
  4. 关闭burpsuite拦截

    08.03.png
  5. 使用firefox浏览器发起查询请求

    08.04.png
  6. 使用burpsuite进行SQL注入攻击

    08.05.png
  7. 使用Decoder模块生成payload

    08.06.png

    分别对以下数据进行URL数据编码payload

    • 1 or 1=1
    • 1 and 1=2
    • 1' or '1'='1
    • 1' and '1'='2
  8. 使用重放模块进行SQL注入测试

    08.07.png

    分别将提交数据修改为生成的四个payload进行请求操作,并发送到比较模块

  9. 使用比较模块分别对整数类型/字符串类型逻辑and和or之间的响应结果进行比较

    08.08.png
  10. 分析结果

    08.09.png

    针对字符串类型比较结果中,逻辑or请求的结果显示数据存在,逻辑and请求的结果显示数据不存在,从而判断存在SQL注入

  11. 使用sqlmap进行测试

    08.10.png 08.11.png
  12. 代码分析

    08.12.png

    说明:

    查询条件直接拼写提交数据到SQL语句中,此处存在字符串类型注入,针对查询结果进行抑制错误输出并根据查下结果数量控制显示结果,此处无法根据查询结果数量和错误输出进行是否存在SQL判断,需要采用盲注方式

MEDIUM级别

  1. 设置DVWA安全级别为Medium

  2. 启动burpsuite并开启代理

    08.13.png
  3. 设置firefox浏览器代理为127.0.0.1:8080

    08.14.png
  4. 关闭burpsuite拦截

    08.15.png
  5. 使用firefox浏览器发起查询请求

    08.16.png
  6. 使用burpsuite进行SQL注入攻击

    08.17.png
  7. 使用重放模块进行SQL注入测试

    08.18.png

    分别将提交数据修改为以下的四个payload进行请求操作,并发送到比较模块

    • 1 or 1=1
    • 1 and 1=2
    • 1' or '1'='1
    • 1' and '1'='2
  8. 使用比较模块分别对整数类型/字符串类型逻辑and和or之间的响应结果进行比较

    08.19.png
  9. 分析结果

    08.20.png

    针对整数类型比较结果中,逻辑or请求的结果显示数据存在,逻辑and请求的结果显示数据不存在,从而判断存在SQL注入

  10. 使用sqlmap进行测试

    08.21.png 08.22.png
  11. 代码分析

    08.23.png

    说明:

    查询条件直接拼写提交数据到SQL语句中,此处存在字符串类型注入,针对查询结果进行抑制错误输出并根据查下结果数量控制显示结果,此处无法根据查询结果数量和错误输出进行是否存在SQL判断,需要采用盲注方式

HIGH级别

  1. 设置DVWA安全级别为High

  2. 启动burpsuite并开启代理

    08.24.png
  3. 设置firefox浏览器代理为127.0.0.1:8080

    08.25.png
  4. 关闭burpsuite拦截

    08.26.png
  5. 使用firefox浏览器发起查询请求

    08.27.png

    点击submit按钮提交数据服务器将提交数据通过set-cookie存储到浏览器中,刷新页面查询id通过cookie再次提交到服务器

  6. 使用burpsuite进行SQL注入攻击

    08.28.png
  7. 使用重放模块进行SQL注入测试

    08.29.png

    分别将cookie提交数据修改为以下的四个payload进行请求操作,并发送到比较模块

    • 1 or 1=1
    • 1 and 1=2
    • 1' or '1'='1
    • 1' and '1'='2
  8. 使用比较模块分别对整数类型/字符串类型逻辑and和or之间的响应结果进行比较

    08.30.png
  9. 分析结果

    08.31.png

    针对整数类型比较结果中,逻辑or请求的结果显示数据存在,逻辑and请求的结果显示数据不存在,从而判断存在SQL注入

  10. 使用sqlmap进行测试

    08.32.png 08.33.png
  11. 代码分析

    08.34.png

    说明:

    查询条件直接拼写从cookie中提交数据到限制查询结果SQL语句中,此处存在字符串类型注入,针对查询结果进行抑制错误输出并根据查下结果数量控制显示结果,此处无法根据查询结果数量和错误输出进行是否存在SQL判断,需要采用盲注方式

修复建议

  1. 使用预处理方式将数据和操作分离(在SQL中使用?占位数据)

  2. 对数据严格进行类型和格式检查(url,post data,cookie等用户可以控制的数据)

  3. 使用安全函数对数据进行转义

  4. 避免web服务器启动和数据库操作用户权限过高

相关文章

  • 08.DVWA之SQL盲注

    漏洞概述 SQL盲注是指不能根据报错和回显来判断是否存在SQL注入时,攻击人员通过提交逻辑条件来观察响应结果来判断...

  • 盲注

    盲注:1.基于布尔的SQL盲注。 2.基于时间的SQL盲注。 3.基于报错的SQL盲注。 布尔SQL盲注:逻辑判断...

  • DVWA之SQL Injection(Blind)

    ————SQL Injection——(Blind)—— SQL Injection(Blind),即SQL盲注,...

  • SQL注入之布尔盲注

    title: SQL注入之布尔盲注date: 2019-05-25 14:05:48tags:- SQL注入- 布...

  • sql注入之盲注

    传送门: sql注入那些事儿——如何优雅地进行SQL注入(1) sql注入那些事儿——如何优雅地进行SQL注入(2...

  • sql注入之盲注

    所谓的盲注即是在sql注入后在前端没有出现报错信息,无法判断是否注入成功。所以需要盲注进行判断 盲注分为基于布尔型...

  • 【SQL注入】如何提高盲注的效率

    0x01 SQL注入之盲注 提到SQL注入,我想懂安全的小伙伴们应该都知道的,那么今天就来聊一聊关于如何提高盲注效...

  • 2019-02-24 sql注入

    sql注入主要分为显注和盲注,显注就是你注入的sql语句可以显示的显示到界面上,告诉你的语句对还是错。盲注就是不会...

  • sql盲注学习笔记

    sql盲注 在刚接触sql注入的时候还不太清楚sql盲注是什么,很多东西都要自己去体会才能知道到底是什么样子的。 ...

  • sql注入-盲注

    注入源代码 1.left()判断数据库版本

网友评论

      本文标题:08.DVWA之SQL盲注

      本文链接:https://www.haomeiwen.com/subject/fnixyqtx.html