简学-SQL注入(报错注入与堆叠注入)

本文详细介绍了SQL注入中的两种技术——报错注入和堆叠注入。报错注入利用MySQL的逻辑漏洞,如BigInt溢出、XPath语法错误等,通过触发错误获取信息。常见的报错函数包括rand()、count()、floor()和extractvalue()。堆叠注入则是将多条SQL语句一起执行,尽管使用场景较少,但威力巨大,可用于执行任意语句。
摘要由CSDN通过智能技术生成


0x09 SQL注入之报错注入

  • 一种 SQL 注入的类型,用于 SQL 语句报错的语法,用于注入无回显,但会提示报错信息的情况。返回的错误信息,即攻击者需要的信息。

0x09.1 报错注入的原理

  • MySQL 报错注入主要利用了 MySQL 的一些逻辑漏洞,如 BigInt 大整型数溢出、不同函数调用漏洞等,因此根据逻辑特点,可以将报错注入分为以下几点:
    • BigInt 等数据类型溢出
    • Xpath语法错误
    • count() + rand()*2 + group_by() 重复计数,导致临时表插入主键重复造成报错
    • 空间数据类型函数错误

0x09.2 报错注入常见的函数

  • 会导致 MySQL 报错并显示出数据函数:
    • rand() 函数:rand(N) 返回随机浮点数 a,范围是 0 <= a < 1.0;
    • count() 函数:count(x) 返回 x 数据集的数量;
    • floor() 函数:floor(x) 会返回一个不大于 x 的整数;
      • 由 floor() + rand() + group by 导致的主键冲突报错:
        	select count(*),concat((select user()),floor(rand(0)*2)) x from users group 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值