DVWA(三)——SQL注入

原理

将恶意的SQL语句注入到s合法的语句中

类型

1、字符型
2、数字型
3、搜索型

步骤

1、判断是否存在SQL注入,注入类型
2、猜解SQL查询语句中的字段数
3、确定显示位置
4、获取当前数据库
5、获取当前数据库的表
6、获取表中字段数
7、下载数据

使用场景

Low
1、判断是否存在SQL注入,注入类型
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
无显示结果,证明运行了1=2 ,为字符型
2、猜解SQL查询语句中的字段数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输入3时出错,字段数为2

3、确定显示位置

在这里插入图片描述
可以看到select1的位置在First name处,2的位置在Surname处

4、获取当前数据库

在这里插入图片描述

5、获取当前数据库的表

1' union select 1,group_concat(table_name) from information_schema.tables where table_schema='dvwa'#
在这里插入图片描述
可以看到,数据库dvwa中有两张表,分别是guestbook,users

6、获取表中字段数

一般用户的敏感信息存放在users中,先来查看一下users表
1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users'#
在这里插入图片描述
可以得到表中的所有列名

7、下载数据

1' union select user,password from users#
在这里插入图片描述
可以得到users表中所有的用户名,md5加密后的密码

8、解密,登录验证
md5在线解密工具:https://www.cmd5.com/

验证一下用户名为gordonb
在这里插入图片描述
在这里插入图片描述

Mediums

1、判断是否存在SQL注入,注入类型
在这里插入图片描述
在这里插入图片描述
这时可以使用Burp Suite 抓包,改包

导入到Repeater
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
数字型

2、猜解SQL查询语句中的字段数

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
字段数为2

3、确定显示位置

在这里插入图片描述

4、获取当前数据库

1 union select version(),database()#
在这里插入图片描述

5、获取当前数据库的表

1 union select 1,group_concat( table_name) from information_schema.tables where table_schema=database()

‘dvwa’ 此时的单引号被过滤

在这里插入图片描述

或者使用编码工具

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

6、获取表中字段数
在这里插入图片描述
在这里插入图片描述

7、下载数据
1 union select user,password from users
在这里插入图片描述
8、使用解密工具解密密文,登录验证,这里不再做演示。

High

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
其他的过程和Low级别的一样

Impossible

在这里插入图片描述
采用了PDO技术,将用户输入与源代码分隔开,把用户输入当作一个参数在表中查找,有则输出,无则不显示结果,这样输入与源码就不能拼接,从根本上禁止了SQL注入。

发布了40 篇原创文章 · 获赞 42 · 访问量 3611

猜你喜欢

转载自blog.csdn.net/per_se_veran_ce/article/details/100035571
今日推荐