00x01 漏洞背景
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。2019年10月31日下午,安全研究员s00py在推特上发了一个solr远程代码命令执行的另外一种方法。链接中指出,需设置Set "params.resource.loader.enabled" as true.时,导致命令执行漏洞触发。
00x02 漏洞复现
修改core
{
"update-queryresponsewriter": {
"startup": "lazy",
"name": "velocity",
"class": "solr.VelocityResponseWriter",
"template.base.dir": "",
"solr.resource.loader.enabled": "true",
"params.resource.loader.enabled": "true"
}
}
发送POC
POC地址:https://github.com/wyzxxz/Apache_Solr_RCE_via_Velocity_template
00x03 版本影响
已测7.0.1,7.7.2,8.1.1
00x04 修复建议
1、升级Solr版本;
2、对Solr后台进行身份认证,禁止未授权访问。