当前位置: 首页 > news >正文

攻防世界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

总结:主要考查SQL注入,以及绕过筛选的能力

知识点:1.SQL注入的原理是后台会获取页面传过去的变量,从数据库里查询数据,当我们页面传入SQL语句时,后台会将SQL语句带入执行,导致不该被查询的数据反馈到页面。
2.–是注释符号,–后面的语句不会再执行
3.SQL语句一般会以’结尾
4.order by 是将查到的数据按降序或者升序排列,后面跟数字就是按照对应的字段查询数据,如果报错,说明没有这一列
5.SQL联合查询(UNION)是用于从一个或多个表中检索数据的高级特性。通过联合查询,我们可以将多个SELECT语句的结果组合成一个查询结果集并返回给用户。但是,请注意,为了联接,每个查询都必须具有相同的列数和数据类型。可以用来测试是否进行了关键字过滤
6.show databases:显示所有数据库
7.show columns:显示所有字段
8.rename:RENAME命令
RENAME命令用于修改表的名称,命令格式:rename table 原表名 to 新表名;

http://www.lryc.cn/news/512611.html

相关文章:

  • vue3学习笔记(10)-$subscribe,store组合式写法
  • 操作系统论文导读(八):Schedulability analysis of sporadic tasks with multiple criticality specifications——具有多个
  • 计算机网络与通信复习
  • 【Scala】图书项目系统代码演练3.1/BookService
  • 人工智能基础软件-Jupyter Notebook
  • C++ 设计模式:模板方法(Template Method)
  • GDPU Vue前端框架开发 跨年大礼包
  • 搭建一个高效且安全的APP分发平台
  • Leetcode打卡:二叉树中的链表
  • 大数据技术-Hadoop(四)Yarn的介绍与使用
  • 算法 class 004(选择,冒泡,插入)
  • linux---awk命令详细教程
  • 一个通用的居于 OAuth2的API集成方案
  • STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
  • QML学习(五) 做出第一个简单的应用程序
  • 深入解析Android Framework中的android.location包:架构设计、设计模式与系统定制
  • 【C++11】类型分类、引用折叠、完美转发
  • mongodb(6.0.15)安装注意事项,重装系统后数据恢复
  • union的实际使用
  • EKF 自动匹配维度 MATLAB代码
  • Oracle复合索引规则指南
  • JS - Array Api
  • 【JS】for-in 和 for-of遍历对象的区别
  • 【每日学点鸿蒙知识】ets匿名类、获取控件坐标、Web显示iframe标签、软键盘导致上移、改变Text的背景色
  • 深度学习blog- 数学基础(全是数学)
  • 最后100米配送
  • Linux的进程替换以及基础IO
  • 《计算机网络A》单选题-复习题库
  • 闲谭Scala(2)--安装与环境配置
  • Python基于卷积神经网络的车牌识别系统开发与实现