攻防世界 supersqli writeup
进入题目查看源码,提到sqlmap那就扫一扫
发现有注入,注入点为injiect=2’,接下来–dbs尝试查询数据库,只爆出supersqli,但无法爆出表。
回到题目
order by 判断只有两个字段(别人的writerup说–+被过滤,只能使用#,不知道为什么没有,最后发现是在查询框里过滤了,在url框里没有)
在使用union select时发现过滤关键字

把两个表里的列爆出在一串数字的表里见到了flag列,flag极有可能在其中。
而在words表里发现结构id与查询的出的数据类型相同,一个数字,一个字符串,所以猜测默认查询的就是words表,inject值应该赋给了id。
发现并没有过滤rename和alter等,即可改变表的结构。
构造语句 ;alter tables words rename to words1;
alter tables 反引号1919810931114514反引号 rename to words;alter tables words change flag id
varchar(100);–+
先把words表名改为其他名,再吧1919810931114514表名改为words,但是其中还缺少id列,因此可以添加一个id列或者吧flag改为id,这样这个表就成为了默认查询表
在查询框里查询 1’ or 1=1 #