我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!!
文章目录
一、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)--