-
-
[原创]飞致云MeterSphere未授权RCE漏洞复现
-
发表于: 2022-2-1 15:26 1278
-
影响范围:MeterSphere v1.13.0 - v1.16.3
可以去releases里面找以前的版本
或者直接在官网下载也可以,建议下载离线版本
随后下载到服务器并解压
直接运行install.sh即可
然后等待片刻即可,然后查看docker ps
然后这个时候访问ip:8081
端口即可,如果访问的时候提示超时或者其他情况,等待一下就行
账号为admin
密码为metersphere
我们访问到插件管理后,burp抓到一个包,一个list包
然后我们就可以发现,把cookie删掉,也是可以访问到这个接口
那么这样,我们随意上传一个插件试试
随后会抓到一个add的请求
那既然这样,大概的流程如下
通过在twitter中搜集信息和查看官方插件发现
都用了io.metershpere.plugin.DebugSampler
那么我们直接在github里面搜索, 然后选择code就会发现一个github
93eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6E0k6i4c8W2M7Y4y4H3K9r3g2J5k6g2)9J5c8X3#2W2N6r3g2J5M7%4m8Z5k6i4u0W2i4K6u0V1M7r3I4#2k6$3W2F1i4K6u0V1c8r3g2T1N6h3N6e0j5h3#2H3L8r3g2J5
随后我们先把这个项目下载到本地,mave重新打包一下
然后直接上传这个插件
然后点击查看脚本
会抓到如下请求
这里我想的是能否把这些返回信息改成返回执行的系统命令,或者去写那个自定义方法
我们可以看到这里留给了一个自定义的方法,可以编写自己的代码逻辑
因为Java不太行,所以这里感谢zhzyker提供的jar包
我们将插件上传后可以去docker中查看日志
我们可以看到这里的日志已经执行了
然后我们构造如下请求
即可执行任意命令
通过JD-GUI反编译jar包也可以看到,新建了一个cmd类,里面再customMethod方法里面写了执行请求过来的命令
然后我们看官方的修复,发现新增了一行代码(虽然没有自己debug和看)
并且删除了
poc编写比较简单,只需要判断/plugin/list
是否可读即可
tar
-
zxvf metersphere
-
offline
-
installer
-
v1.
13.0
.tar.gz
tar
-
zxvf metersphere
-
offline
-
installer
-
v1.
13.0
.tar.gz
.
/
install.sh
.
/
install.sh