影响版本
Weblogic Server 10.3.6.0.0
Weblogic Server 12.1.3.0.0
Weblogic Server 12.2.1.3.0
Weblogic Server 12.2.1.4.0
Weblogic Server 14.1.1.0.0
环境搭建
看上面的漏洞影响版本包含12.1.3.0,可以直接采用vulhub的同类镜像搭建:
https://github.com/vulhub/vulhub/blob/master/weblogic/CVE-2020-14882/README.zh-cn.md
漏洞复现
目前所有的复现均只提供了基于IP的POC,其中IP地址的最后一个 .
需要被替换成 ;
例如如下的复现是将ldap://127.0.0.
1:389替换成ldap://127.0.0;
1:389
实际上,依据分析(来源:https://xz.aliyun.com/t/9203)。
此次漏洞中JNDI注入的触发点,contenxt和bindName分别由getContext()和getBinding()方法得到,而跟进发现都调用了getComponent()方法。
跟进getComponent()方法,发现遍历serialized(也就是ObjectIdentifier)中的字符,然后累加到currentComponent中,每次碰到;
这个字符, 就将currentComponent添加到list中,然后重置重新计算currentComponent。
故实际上使用 aaa;123.com
此种方式也能调用成功,最终后台得到的实际地址应该为aaa.123.com
插件编写
有了验证原理,插件的编写就很简单了。
基本逻辑为生成可识别的随机数->添加到dnslog服务器域名前缀->发送payload->验证dnslog服务器上是否有双份随机数(此处需要兼容原先的反连查询方式)
关于扫描器及反连平台的验证,可参考站内扫描器编写的相关文章。
发表回复