MeterSphere 未授权RCE-代码审计

本文详细剖析了MeterSphere 1.16.3及更早版本中的一个未授权远程代码执行(RCE)漏洞。通过分析代码,发现因/plugin/** 路由的权限问题,攻击者可以上传恶意jar包并利用customMethod方法执行自定义代码。文章介绍了漏洞利用过程,并探讨了classloader与Class.forName的区别,强调了安全风险和责任声明。

0x01 代码分析

版本<=1.16.3

查看修复日志

https://github.com/metersphere/metersphere/pull/9135/commits/9927d2c587a2b388ee5d633f6cc31346df4415de

图片

将/plugin/** 这个路由的未授权删除了,全局搜索/plugin定位到功能代码

图片
图片

跟进add方法中的pluginService.editPlugin(file)
图片
跟进
图片
图片

在loadJar方法中使用URLClassLoader来加载jar包,将jar包的类加载进来;

然后我们可以看到io.meters

### 使用方法 在rce - labs靶场中,grep是一个强大的文本搜索工具,基本语法为 `grep [选项] 模式 文件名`。以下是一些常见选项及用法: - `-i`:忽略大小写进行搜索。例如,要在文件`test.txt`中不区分大小写地搜索`hello`,可以使用命令 `grep -i "hello" test.txt`。 - `-r`:递归搜索指定目录下的所有文件。若要在当前目录及其子目录下搜索包含`error`的文件,可使用 `grep -r "error" .` ,其中 `.` 表示当前目录。 - `-n`:显示匹配行的行号。如 `grep -n "password" config.ini` 会显示`config.ini`文件中包含`password`的行以及对应的行号。 ### 案例 假设在rce - labs靶场中有一个日志文件`access.log`,需要找出所有包含`404`错误的请求记录。可以使用命令 `grep "404" access.log`。若日志文件分布在不同的子目录中,则使用递归搜索 `grep -r "404" /var/log/rce-labs/` 来查找所有相关的`404`错误记录。 ### 应用场景 - **漏洞排查**:在靶场中模拟攻击和防御时,通过grep搜索日志文件,查找可能的攻击迹象,如异常的请求、错误代码等。例如,搜索包含`SQL injection`关键字的日志记录,以检测是否存在SQL注入攻击尝试。 - **配置文件检查**:检查靶场环境的配置文件,确保配置符合安全要求。如搜索配置文件中是否存在不安全的默认密码设置,使用 `grep "password" /etc/rce-labs/config.conf`。 - **代码审计**:在靶场的代码文件中查找特定的函数调用或关键字,以发现潜在的漏洞。例如,搜索代码文件中是否存在未过滤用户输入的函数调用,使用 `grep -r "eval(" /var/www/rce-labs/`。 ```bash # 查找access.log中包含404的记录 grep "404" access.log # 递归查找/var/log/rce-labs/目录下包含404的记录 grep -r "404" /var/log/rce-labs/ # 查找config.conf中包含password的行并显示行号 grep -n "password" /etc/rce-labs/config.conf # 递归查找/var/www/rce-labs/目录下包含eval(的代码行 grep -r "eval(" /var/www/rce-labs/ ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值