82.网络安全渗透测试—[SQL注入篇21]—Oracle+JSP-pipe.receive_message延时注入

本文深入探讨了Oracle+JSP环境下的SQL延时注入,包括DBMS_LOCK.SLEEP()函数的使用限制和如何实现内联注入。通过示例展示了如何判断注入存在、猜解长度和字符,提供了一种适用于多种场景的盲注入测试方法。

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

我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!!

一、Oracle+JSP 延时注入

1、简介

       DBMS_LOCK.SLEEP()函数可以让一个过程休眠很多秒,但使用该函数存在许多限制。首先,不能直接将该函数注入子查询中,因为Oracle不支持堆叠查询(stacked query)。其次,只有数据库管理员才能使用DBMS_LOCK包。

       在Oracle PL/SQL中有一种更好的办法,可以使用下面的指令以内联方式注入延迟:dbms_pipe.receive_message('RDS', 10)

       DBMS_PIPE.RECEIVE_MESSAGE()函数将为从RDS管道返回的数据等待10秒。默认情况下,允许以public权限执行该包。而DBMS_LOCK.SLEEP()与之相反,只有数据库管理员才能使用DBMS_LOCK包。

2、注入技巧

       延时注入 属于盲注入的一种,适用的场景较多,基本上任何注入都可以使用这种注入方式进行测试。

二、pipe.receive_message 延时注入示例

1、判断是否存在注入

(1)判断是否存在注入-payload1:?id=1 and 1=dbms_pipe.receive_message('RDS', 10)--

如果页面延时10秒返回,即存在注入。
在这里插入图片描述

2、猜解长度并逐个猜解字符

(2)猜解用户名的长度-payload2:?id=1 and 1=(select decode(length(user),6,dbms_pipe.receive_message('RDS',10),0) from dual)--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

qwsn

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

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

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

打赏作者

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

抵扣说明:

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

余额充值