CVE-2022-21445 Oracle JDeveloper ADF Faces反序列化漏洞影响众多Oracle产品

VSole2022-06-29 06:02:13

漏洞信息

Oracle JDeveloper 是一个免费的非开源的集成开发环境,通过支持完整的开发生命周期简化了基于 Java 的 SOA 应用程序和用户界面的开发。

近日监测到 Oracle JDeveloper ADF Faces 通报了一个反序列化漏洞 CVE-2022-21445 ,未经身份认证的远程攻击者可利用该漏洞实现不可信数据的反序列化,可在受影响的服务器中执行任意代码。从通报信息来看,任何基于 ADF Faces 框架开发的程序都受到此漏洞的影响,包括 Oracle 自身的多个产品:

  •  Oracle Business Intelligence
  •  Oracle Enterprise Manager
  •  Oracle Identity Management
  •  Oracle SOA Suite
  •  Oracle WebCenter Portal
  •  Oracle Application Testing Suite
  •  Oracle Transportation Management
  •  Oracle Access Manager

影响版本如下:

  •  Oracle JDeveloper == 12.2.1.3.0
  •  Oracle JDeveloper == 12.2.1.4.0

反序列化漏洞分析

首先从官网下载 Oracle JDeveloper 进行安装:

CVE-2022-21445 漏洞触发点位于 Oracle JDeveloper ADF Faces 的基础类 `org.apache.myfaces.trinidad.webapp.ResourceServlet` :

`ResourceServlet` 继承于 `HttpServlet` ,对应一个 Servlet HTTP 请求,比如在 Oracle JDeveloper 安装后默认例子的 `web.xml` 就存在相关的定义:

定位 `ResourceServlet#doGet` 函数:

根据 HTTP 请求对象 `request` 获取 `ResourceLoader` 对象,接着调用其 `getResource` 函数获取 `URL` 对象,然后调用 `URL#openConnection` 函数。我们跟进 `getResource` 函数:

函数 `findResource` 直接返回 `null` ,但是可以找到 `20` 个 `ResourceLoader` 类的子类重写覆盖了 `findResource` 函数:

注意到其中的一个子类 `RemoteApplicationResourceLoader` :

进入 `RemoteApplicationResourceLoader.RAStreamHandler` 类定义:

注意其 `openConnection` 函数里面调用了 `RemoteApplicationResourceLoader#RAURLConnection` 函数,进入:

参数是一路传递过去的,直接到达反序列化的触发点,存在反序列化漏洞的风险。

下面我们需要做的事情是如何确定访问 URL ,让请求进入 `RemoteApplicationResourceLoader` 进行处理。通过分析 `ResourceLoader` 的其他子类,发现在 `oracle.adfinternal.view.resource.rich.RenderKitResourceLoader` 类的构造函数中注册了大量 URL 规则,其中就包括 `RemoteApplicationResourceLoader` :

因此我们可以尝试构造 `/afr/test1/remote/test2/` 的 URL 格式使得请求进入 `RemoteApplicationResourceLoader` ,从而触发反序列化操作。

利用 Oracle BI 实现漏洞复现

前面都是利用 Oracle JDeveloper 对代码进行静态审计,因为众多 Oracle 官方产品都使用的 Oracle JDeveloper 库,所以漏洞影响面较大,比如前面我们分析过的 Oracle Access Manager :

CVE-2021–35587 Oracle Access Manager 反序列化漏洞
QCyber,公众号:【最新漏洞预警】CVE-2021–35587 Oracle Access Manager反序列化漏洞分析与命令回显构造

`7001` 端口就存在 CVE-2022-21445 反序列化漏洞,下面通过一个以前没有研究过的产品 Oracle Business Intelligence 来复现该漏洞。Oracle Business Intelligence 安装过程比较复杂,经过多次失败尝试后终于安装成功,为了避免小伙伴们踩坑,漏洞空间站介绍了详细的安装过程,有兴趣的小伙伴可以加入进行交流。

安装并配置完毕:


最终对外服务:

WebLogic Console : http://***:9500/consoleWebLogic Enterprise Manager: http://***:9500/emBI publisher: http://***:9502/xmlpserverBI Analytics: http://***:9502/analytics

完成环境搭建并启动后,首先搜索下触发漏洞的关键类 `org.apache.myfaces.trinidad.webapp.ResourceServlet` 被调用的情况:

存在多处调用。我们可以参考 Oracle Access Manager CVE-2021–35587 反序列化漏洞利用的构造方式,继续使用 CVE-2020–14644 利用链。因为 Oracle Business Intelligence 也是运行在 Weblogic 之上,所以我们可以利用 Weblogic 框架自带的 `Request` 和 `Response` 对象实现命令回显。

`9500` 端口对应的 `Enterprise Manager` 实现命令执行回显:

`9502` 端口对应的 BI Composer 实现命令执行回显:

oracleoracle函数
本作品采用《CC 协议》,转载必须注明作者和本文链接
本文主要讲述Dnslog这种攻击手法在SQL注入中的实战运用,虽然网上对于Dnslog在SQL注入方面运用的文章也不少。但是很多文章都只是片面的提到了这个攻击方式,或者只是用某个简单的payload做了简单的验证。然而在实际的运用中,因为环境的差异,利用也不同。本文详细的记录了在多种常见数据库实际运用过程的一些细节,包括POC的编写和原理,和一些网上没有公开的利用POC。
数据库注入提权总结
2022-08-09 16:49:49
select * from test where id=1 and ;布尔盲注常见的布尔盲注场景有两种,一是返回值只有True或False的类型,二是Order by盲注。查询结果正确,则延迟3秒,错误则无延时。笛卡尔积延时大约也是3秒HTTP头注入注入手法和上述相差不多,就是注入点发生了变化HTTP分割注入常见场景,登录处SQL语句如下
例如,攻击方可能会使用无人机进行监视、运输非法物品,或通过侵入机场上方的封闭空域造成经济损失。该fuzzer发现了可用于获得根访问权限,目前大疆已修复所有错误。鉴于大疆的实际重要性,本研究的工作重点关注该供应商在 200 克到 1 千克之间的消费级无人机。逆向工程结果证实了这些发现。
看雪论坛作者ID:roadicing
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小微机环境。它是一种高效率的、可靠性好的、适应高吞吐量的数据库方案。
Oracle数据库的基本知识Oracle数据库介绍Oracle Database,又名Oracle RDBMS,或简称Oracle
本周CNVD接到的涉及党政机关和企事业单位的事件型漏洞总数10876个,与上周环比增加57%。本周,CNVD发布了《Oracle发布2022年7月的安全公告》。表1 漏洞报 送情况统计表 本周漏洞按类型和厂商统计 本周 ,CNVD收录了347个漏洞。表2 漏洞按影响类型统计表 图6 本周漏洞按影响类型分布
亟需运用密码技术构建数据安全防护体系,维护数据的完整性、保密性和可用性,保障我国数字经济健康发展。2021 年 9 月 1 日施行的《中华人民共和国数据安全法》明确指出,需采取必要措施确保数据处于有效保护和合法利用的状态,以及具备保障持续安全状态的能力 。数据安全已成为总体国家安全观的重要组成部分,采用密码技术保障数据安全是数据存储保护的必然趋势。
oracle注入绕狗
2021-10-14 15:03:05
0x00 前言最近学习了oracle注入,和mysql比语法差异还是有的,做下小记录,后面是尝试绕狗。0x01 简单fuzz空白符%09 %0A %0B %0C %0D. 当注入类型为数字型即id=1union select 全字符url编码fuzz一遍后,发现%2E %44 %46 %64 %66这些字符添加不影响SQL语句运行
一个经过完整而优秀开发的应用一般来说你是看不到错误提示的,所以你是没办法从Union攻击和错误中提取出数据的 一般盲注,你不能在页面中看到响应,但是你依然能同个HTTP状态码得知查询的结果 完全盲注,你无论怎么输入都完全看不到任何变化。你只能通过日志或者其它什么的来注入。虽然不怎么常见。
VSole
网络安全专家