SQL注入——知表名不知列明情景下查询数据

场景

有某些情况,可以查找到表名,但查找不到列名。
MySQL < 5 或 web过滤 information_scema

详解

select `1` from (select 1,2,3,4,5,6,7,8,9,10,11,12,13 union select * from 表名)a limit 1,1

子查询中select的数目为列数。

通过列数 1,2,3... 再union带出整张表数据。这一步的目的是改变/替换字段名(替换为1,2,3,4...)。

再通过select `1`带出第一列数据。

再加上limit 1,1 带出单一一个数据。

完整

and -1 union select 1,(select `1` from (select 1,2,3,4,5,6,7,8,9,10,11,12,13 union select * from 表名)a limit 1,1);

原文地址:https://www.cnblogs.com/huim/p/10783112.html

时间: 2024-10-06 20:06:17

SQL注入——知表名不知列明情景下查询数据的相关文章

Sql Server根据表名生成查询的存储过程(查询条件可选)

static void Main(string[] args) { string 表名 = "water_emstime"; string sql = "exec GetTableSelect " + 表名; string ConString = "server=xxx.xxx.xx.xx;database=newFW;uid=sa;pwd=sa"; SqlDataAdapter da = new SqlDataAdapter(sql, ConS

sqlserver2008新建查询,表名下出现红波浪线,显示“表名无效”,但仍然可以查询得到结果(转)

转:http://zhidao.baidu.com/link?url=82Xf_uK9VgIeYM_1kczmvKhiEQKLCqhN4_Tfe_cvriqkeP7Wggy5D60VTnMxFREwz5Q5SZ725Zt6CLjphr4TVK 问:sqlserver2008新建查询,表名下出现红波浪线,显示“表名无效”,但仍然可以查询得到结果?答:在 Microsoft sql server management studio 里点击“编辑”——“IntelliSense”——“刷新本地缓存”,

JPA中自动使用@Table(name = &quot;userTab&quot;)后自动将表名、列名添加了下划线的问题

一.问题 JPA中自动使用@Table(name = "userTab")后自动将表名.列名添加了下划线的问题,如下图: 二.解决 在application.properties文件中加入: spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl 如: #连接字符串 spring.datasource.driver-c

通过表名和时间查看hive分区表的数据

[linux-]$  /home/script/listHive.py  ta_name_1002_user_search_log_day  20180626 #!/usr/bin/env python # -*- coding: utf-8 -*- ########################################## # 通过表名和时间查看hive分区表的数据 # len(sys.argv)--输入参数个数 # sys.argv[1] -- 表名 # sys.argv[2] -

在oracle中查询已知表名的表中所有字段名,每个字段是否是主键,是否是外键,是否为空的sql语句

查询表的所有列及其属性:select t.*,c.COMMENTS from user_tab_columns t,user_col_comments c where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = women;查找表的主键:select cu.* from user_cons_columns cu, user_constraints au where cu.cons

SQL语句修改表名和字段名

今天有个临时任务,修改生产环境的数据库表名和字段名.以前要修改表名字段名都是在开发环境,直接打开 SQL Server找到对应的表或字段重命名就OK啦,可是这是线上数据库,再想直接F2修改是不可能的啦.怎么办?乖 乖写脚本呗.上网了解了一些相关资料,结合我自己操作过程中出现的一些实际问题简单作个总结,再次加深下印 象. SQL自带了一系列的系统存储过程.其中sp_rename就具有修改表名和列名的功能.对于sp_rename是这样定 义的:更改当前数据库中用户创建对象(如表.列或用户定义数据类型

分析sql语句所有表名及其别名的正则表达式

最近为了 写一个分布式的数据组件构想了很多的方案,最近一个简单易行的方案终于在脑袋里成型.昨晚想到凌晨1点多,发现方案虽简单,但所有的数据库工具就不能使用了 .除非自己写一下查询分析器来执行程序员自己的维护语句. 说做就做,事情也出乎顺利,居然半天时间做了一个基本的版本出来了:) 于是就想想能否加上智能提示字段.似乎难在分析程序员录入的语法.当然说白了也简单就是取出表的别名.家里的空调没钱换,为了省100大元,还要晚几天才有得用.于是今晚继续晚点睡,把这个正则表达式弄出来,明天上班就能继续开发查

解析sql中的表名

最近的项目需求中需要解析sql得表名,由于只需要表名我觉得应该用相对粗暴一点的方式来解析 初步思路: 1.转义字符:去除两个引号连在一起的 2.字符串: 去除所有被引号包裹的 3.括号:识别括号处理 4.关键字: 用关键字切割语句,去除与表名 无关的 5.解析与表名有关的切割分段得表名 先是粗暴的括号处理 def get_str(s): you = 0 st = [] re = '' max_you = 0 for ii in s: st.append(ii) while st: tmp = s

(1.12)SQL优化——mysql表名、库名大小写敏感

mysql表名.库名大小写敏感 关键词:mysql大小写敏感 原文地址:https://www.cnblogs.com/gered/p/10654141.html