SQL报错注入(下)


接SQL报错注入(上):

其他函数

Floor()函数

  • floor(),rand(),count(),group by联合使用
    • floor():向下取整
    • rand():生成一个0-1之间的随机数,不包括0和1
    • count(*):统计某个表下面一共有多少记录
    • group by XXX:按照一定的规则对XXX进行排序
  • 报错原理:group by和rand()联合使用的时候,如果临时表中没有该主键,则再插入的之前会再计算一次rand(),然后再由group by将计算出来的主键直接插入到临时表格之中,导致主键重复,然后报错。
    在这里插入图片描述
    请添加图片描述
    在这里使用group by的时候回生成一张临时表,也叫做虚拟表,而且表都是由主键的,作为主键的列是不能由重复的,好比第一个值的主键为1,那么就不能再有主键为1的值了,接下来可以再是2、3…
    在这里插入图片描述
    首先这是一个虚拟表,自然就有主键。当使用group by去读这些数据的时候,好比上面这个伪随机序列,读完第一列,发现主键之中没有0这个数字,于是就会记录这个主键,但是!他不会接着记录,而是会去读下一行,然后记录下一行的主键。如:现在读到第一行,想要记录数字0,但是他会先往下读一行,然后再进行记录,这个时候记录的就是1了,读到第三行还是1,不用记录且正常进行,读到第四行,发现是数字0了,于是按照它的机制,会往下读一行,然后进行记录,此时下一行就是1,于是就记录主键1,但是因为主键1之前已经记录下来了,所以此时发生主键冲突,就会产生错误了。

请添加图片描述
这里是个例子,将user()的位置换做别的,就可以显示出别的错误了。
爆库:
请添加图片描述
可以看到使用的security,后面的数字1是rand()函数产生的。
请添加图片描述
这里可以看到具体信息了。其实就是利用了count的统计与group by的合作,然后基于主键唯一的机制,然后造成了这个错误。

EXP()函数(数据库版本号[5.5.5,5.5.49])

  • 作用:计算以e为底的幂值
  • 语法:exp(X)
  • 报错原理:当参数X超过了710之后,exp函数就会报错。

实操

在这里插入图片描述
在这里插入图片描述
这里使用了limit进行查看,
在这里插入图片描述
可以在再后面添加表名进行查看列的信息:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小刘不忙!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值