loca1h0st's Blog
loca1h0st's Blog

CVE-2021-2109 插件编写

CVE-2021-2109 插件编写

影响版本

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://blog.mrtblogs.net/wp-content/uploads/2021/12/image-2-1024x606.png

实际上,依据分析(来源:https://xz.aliyun.com/t/9203)。

此次漏洞中JNDI注入的触发点,contenxt和bindName分别由getContext()和getBinding()方法得到,而跟进发现都调用了getComponent()方法。

跟进getComponent()方法,发现遍历serialized(也就是ObjectIdentifier)中的字符,然后累加到currentComponent中,每次碰到;这个字符, 就将currentComponent添加到list中,然后重置重新计算currentComponent。

https://xzfile.aliyuncs.com/media/upload/picture/20210209152753-52758094-6aa8-1.png

故实际上使用 aaa;123.com 此种方式也能调用成功,最终后台得到的实际地址应该为aaa.123.com


插件编写

有了验证原理,插件的编写就很简单了。

基本逻辑为生成可识别的随机数->添加到dnslog服务器域名前缀->发送payload->验证dnslog服务器上是否有双份随机数(此处需要兼容原先的反连查询方式)

关于扫描器及反连平台的验证,可参考站内扫描器编写的相关文章。

https://blog.mrtblogs.net/wp-content/uploads/2021/12/image-3-1024x614.png

扫描验证

https://blog.mrtblogs.net/wp-content/uploads/2021/12/image-4-1024x214.png

发表回复

textsms
account_circle
email

loca1h0st's Blog

CVE-2021-2109 插件编写
影响版本 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 环境搭建 看上面的…
扫描二维码继续阅读
2021-12-28