SQL注入之floor报错注入以及各个部分详细分析 + iwebsec 实例分析 + updatexml() 报错 + extractvalue() 报错

本文深入探讨了SQL注入中的floor报错注入原理,通过分析payload解释其工作方式,并使用iwebsec模拟实际注入过程。同时,介绍了updatexml()和extractvalue()的报错注入,以及在实验中发现的其他报错形式。然而,目前的问题是floor报错注入只能获取第一行数据。
摘要由CSDN通过智能技术生成


前言

本文为作者的学习笔记,主要介绍了floor注入原理,利用注入代码(payload)分析每个部分的作用以此来解释floor注入的原理。在解释过程中会使用phpstudy搭建的MySQL环境,并且利用iwebsec漏洞库来实践。最后顺带介绍updatexml和extractvalue报错注入。


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是floor报错注入

在这里插入图片描述

1 and (select 1 from (select 
count(*),concat(database(),
floor(rand(0)*2))x 
from information_schema.tables group by x)a)
// 注入的时候payload不要有回车

上述图片可以看到报错注入已经成功地把数据库的名称爆出来了。接下来我们将payload分成几块来详细的解释一下floor报错注入的原理。
首先我们探讨一下是什么导致了报错,真是floor()这个函数吗?
floor这个函数,它的作用是返回参数的最小整数。也就是向下取整(2.2 ==》)。很显然这个函数不可能导致报错。再者count(*)就是一个计数的函数,也不是。其实真正发生作用的是第二层括号里面的代码

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

Mysql在执行 select count() from XXX group by x这一类语句时会先创建一个虚拟表,然后在虚拟表中插入数据,key是主键,不可重复。记住,不可重复,这个是重点。key就是后面那个x
假设我们现在有这样一个表
在这里插入图片描述
那我们执行这样的语句
select age,count(
) from admins group by age
在这里插入图片描述

它的过程可以简化为如下图所示

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值