今天在攻防世界平台上又搞了一道Web题——supersqli
1、进入题目所给的环境如下:
2、页面显示一个提交框,直接判断注入类型(忽略判断是否有注入点——这个不用想)
?inject=1' and 1=1--+回显正常,而?inject=1' and 1=2--+没有回显,判定为字符型注入。
3、使用Google插件HackBar,先查询回显点,用order by关键字
order by 3发现报错,那就把3改为2试试
果然,字段数为两个。
3、用select语句爆数据库名发现很多关键字都被正则替换了
4、这时就不得不尝试一下堆叠注入,拼接语句 ;show database();--+
刚好把所有数据库名都爆出来了
5、因为题目叫“supersqli”,那就直接找数据库“supersqli”,继续拼接SQL语句爆表名 ;use supersqli; show tables;--+
发现其中有两个表。
6、先从第一个表入手,继续拼接语句爆字段名 ; show columns from `1919810931114514`;--+ ,注意字符串为表名进行操作时要加反引号。
刚好里面的字段带有“flag”字样,方向又对了。
7、由于select等关键字被屏蔽了,上网搜了一下相关的绕过技巧,个人觉得handler这个方法挺不错。但是handler的功能范围比select小,并只能在MySQL中使用。
直接在后面拼接 ;handler 表名 open; handler 表名 read first;--+ 查看表中第一行数据
直接得到flag。。
标签:语句,攻防,show,handler,拼接,supersqli,--+,WP From: https://www.cnblogs.com/gsh23/p/17244829.html