Oracle注入—报错注入
Oracle注入—报错注入
1、Oracle报错注入知识扫盲
一、Oracle报错注入知识扫盲
报错注入
报错注入就是,输入的一些能让数据库出错的语句,数据库会把这个错误回显给我们
OK,,什么语句能让数据库出错???
先来个知识扫盲吧
Oracle数据库
Dual表,是Oracle数据库里的一个表,Dual是一个实表,也有人说是虚表,如果直接查询这个表格,它只显示一个X,列名DUMMY,那么要他有什么用呢?
它实际上是为了满足查询语句的结构而产生
比如 select 1,2,3,4 >>>> 数据库报错
Why 数据库有很多种,虽然很多种,但是在语法结构上是大同小异的,可以说大致相似,但又用区别,不完全相同
像,select 1,2,3,4 在MySQL数据库就是可以执行的 但是在Oracle数据库就不行,因为规定后面要 from 表名
没有 from 表名 当然会出错了
但是在注入的时候又不知道表名,不会又像Access数据库那样一个一个去猜吧,,
这个Oracle数据库相对来说比较友好,,在每个Oracle数据库里都有一个Dual表,那是不是就不用猜了
所以Dual表存在的意义就是满足sql语句的
Oracle数据库弱化了库的概念,强化了用户的概念
在Oracle里把用户来当做库的区分,简单理解,一个用户就是一个库
Oracle数据库的比较常用语法
查询用户名:select user from Dual
做加减法:select 9+1 FROM Dual >>> 10
select * from all_tables 查询出所有的表
select * from user_tables 查询当前用户的表
select * from all_tab_columns 查询出所有字段
select * from user_tab_columns 查询当前用户的字段
select * from v$version 查版本
rownum=1 限制查询返回的总行数为一条
对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,以此类推,这个伪字段可以用于限制查询返回的总行数
可以用rownum<3来要求它输出2条数据
只有1可以写= rownum=1
其他的只能写< rownum<2
rownum<3
rownum<4
......
<> 不等于符号
很多时候网站只允许输出一条数据,即使你遍历整个表,但是只能输出第一条数据,怎么办呢,,如何做到像,,MySQL数据库里的limit那样灵活呢
先看一个语句
select ronum r ,username form admin
思考一下输出的是不是一张表的呢,网站只是输出表里的数据,并不会把表给我们看,网站是查询表里的内容,但是在后台,它确实是一张表
ok,,那么我们可不可以form它呢 ,,of course
select username form (select rownum r ,username form admin) where rownum=1
再来看一个函数
CTXSYS.DRITHSX.SN(用户(查询内容))
这个函数就是报错注入使用的函数
在括号里面输入注入语句
返回报错信息,很简单,怎么讲呢,,你就想像这个是一个搜索框,搜索什么东西都搜不到,并告诉你没搜到括号里的值,并且会把括号里的值会返回给我们,
上面是帮助我们理解的 ,,其实是这样的‘查询对应的关键词,因为查询失败,爆出未查询到错误从而爆出查询内容,为什么会查询失败呢?,这个用户没用创建和修改的权限,我们随便输入一个用户名,在系统里大概率不会存在的用户,当然没有权限了,你想想,连这个用户都没有哪里来的权限呢’
举个例子
CTXSYS.DRITHSX.SN(1(select 1,2 form dual))
>>> '1,2'查找不到
大概就是这个意思
Oracle注入—报错注入的更多相关文章
- MSSQL手工注入 报错注入方法
例子:www.kfgtfcj.gov.cn/lzygg/Zixun_show.aspx?id=1[1]首先爆版本:http://www.kfgtfcj.gov.cn/lzygg/Zixun_show. ...
- SQL注入——报错注入
0x00 背景 SQL注入长期位于OWASP TOP10 榜首,对Web 安全有着很大的影响,黑客们往往在注入过程中根据错误回显进行判断,但是现在非常多的Web程序没有正常的错误回显,这样就需要我们利 ...
- sql注入 报错注入常用的三种函数
1.floor()函数 报错原因是 报错的原因是因为rand()函数在查询的时候会执行一次,插入的时候还会执行一次.这就是整个语句报错的关键 前面说过floor(rand(0)*2) 前六位是0110 ...
- ctfhub技能树—sql注入—报错注入
打开靶机 payload 1 Union select count(*),concat((查询语句),0x26,floor(rand(0)*2))x from information_schema.c ...
- 某SQL注入--报错注入payload
1.证明存在sql注入,根据这个报错语句,,有' 有% 2.payload 闭合语句 %' or (select extractvalue("anything",concat( ...
- 渗透之路基础 -- SQL进阶(盲注和报错注入)
SQL注入之盲注 实战过程中,大多情况下很少会有回显,这个时候就要去使用盲注技术 盲注,Blind SQL Injection,听这名字就感觉整个过程就是一个盲目的过程 当注入时,没有任何提示的时候, ...
- [原题复现][极客大挑战 2019]HardSQL(updatexml报错注入)
简介 原题复现: 考察知识点:SQL注入(报错注入,绕过过滤) 线上平台:https://buuoj.cn(北京联合大学公开的CTF平台 特别感谢!) 榆林学院内可使用信安协会内部的CTF训练平 ...
- Oracle报错注入总结
0x00 前言 在oracle注入时候出现了数据库报错信息,可以优先选择报错注入,使用报错的方式将查询数据的结果带出到错误页面中. 使用报错注入需要使用类似 1=[报错语句],1>[报错语句], ...
- 大哥带我走渗透4(中)----oracle报错注入
5/30 报错注入 0x01 准备阶段 1. 基础知识今天了解了,但是,只能看懂和最基本的理解,不能自己上路.所以,还是要不停学习基础.并且及时总结.这有一篇很详细的文章:https://www.cn ...
- oracle报错注入的一些函数
oracle 报错注入 select dbms_xmltranslations.extractxliff((select banner from sys.v_$version where rownum ...
随机推荐
- ARKit的理解与使用
AR概述 AR的意义:让虚拟世界套与现实世界建立联系,并可以进行互动. AR的技术实现:通过实时地计算摄影机输出影像的位置及角度,并在内部通过算法识别将场景中的事物,然后在内部模拟的三维坐标系中给识别 ...
- Delphi dbgrideh颜色设置
DBGridEh中分行分列.单元格的颜色设置(1)分行不同颜色设置:在DBGridEh1DrawColumnCell中写: if ADOQuery1.RecNo mod 2=0 then begin ...
- Go语言的100个错误使用场景(30-40)|数据类型与字符串使用
目录 前言 4. 控制结构 4.1 忽视元素在range循环中是拷贝(#30) 4.2 忽略在 range 循环中如何评估表达式(#31) 4.3 忽略在 range 中使用指针元素的影响(#32) ...
- 好书推荐之《JAVA编程思想》
名人推荐 真是一本透着编程思想的书. 上面的书让你从微观角度了解 Java,而这本书则可以让你从一个宏观角度了解 Java. 这本书和 Java 核心技术的厚度差不多,但这本书的信息密度比较大. 所以 ...
- 从零开始的微信小程序入门教程(三),有趣且好玩的数据绑定
壹 ❀ 引 我在从零开始的微信小程序入门教程(二),初识WXML与WXSS一文中简单介绍了小程序组件与小程序样式相关概念,在了解这两者之后,其实我们已经可以搭建出简单的静态页面,与书写HTML页面一样 ...
- NC213912 芭芭拉冲鸭~(续)
题目链接 题目 题目描述 芭芭拉这次来到了一棵字母树,这同样是一棵无根树,每个节点上面有一个小写字母. 芭芭拉想知道,自己从x冲刺到y,从x走到y收集所有字母,选择其中一部分字母组成一个回文串,这个回 ...
- Vue DevTools 安装和浏览器跳转到编辑器指定组件
Vue DevTools install and Open component in editor 1.在谷歌浏览器安装vue 插件 1.1下载vue插件 链接:https://pan.baidu.c ...
- IPFS的配置记录
IPFS 分布式文件系统, 原理类似于bt, 通过文件分块, 每个块对应CID以及各级Hash做存储和校验, 通过DHT(Distributed Hash Table)做查找和路由. IPFS文档 h ...
- Auxiliary Set题解
F Auxiliary Set 树上LCA + DFS 注意一下输出格式! #include<bits/stdc++.h> using namespace std; const int N ...
- 深入理解Go语言(01): interface源码分析
分析接口的赋值,反射,断言的实现原理 版本:golang v1.12 interface底层使用2个struct表示的:eface和iface 一:接口类型分为2个 1. 空接口 //比如 var i ...