技术社区
安全培训
技术社群
积分商城
先知平台
漏洞库
历史记录
清空历史记录
相关的动态
相关的文章
相关的用户
相关的圈子
相关的话题
注册
登录
ruoyi4.8后台RCE分析
1506847328721267
发表于 浙江
WEB安全
538浏览 · 2025-04-27 05:26
返回文档
利用需要知道profile目录
环境搭建
https://github.com/yangzongzhuan/RuoYi/releases
导入数据库,修改application-druid中的数据库账号密码
修改application中的文件路径及log存放路径
启动成功
漏洞分析
计划任务
根据提交数据包锁定后端路由
调试看一下具体做了什么
前几个都是在判断是否有包含rmi ldap http关键词,禁止对这些协议进行调用
还判断了是否有一些黑名单中的类
进入白名单的判断
提取出调用的类名,判断其中是否包含白名单字符串
白名单字符串为com.ruoyi.quartz.task
注意这里是用正则去匹配的,所以该字符串在任意位置都可以,所以存在可以绕过的可能
后续就会进入正常的保存计划任务流程
当启动任务时,会调用方法
获取需要调用的类名方法名参数值
在获取方法参数时进行了处理,只允许为字符串/布尔/长整/浮点/整形,无法传递类对象
接着会实例化该类,反射调用其方法
该方法为public修饰
我们想要利用需要达成的是
●
使用的类不在黑名单中
●
要存在com.ruoyi.quartz.task字符串
●
不可以使用rmi ldap http协议
文件上传
而在ruoyi中存在一个文件上传点
我们可以随便上传一个文件看看
那么我们可以上传一个名字包含com.ruoyi.quartz.task字符串的文件
结合导致RCE
在java中存在一种机制叫做JNI,可以通过加载外部链接库,从而执行其中的
构造函数
而com.sun.glass.utils.NativeLibLoader的loadLibrary方法就可以去加载链接库,也是public修饰
�
注意他会自动在后面添加dylib等后缀,在不同的系统中可能有不同的后缀,并且要注意架构问题
构造并上传链接库
编译后上传该文件
我们还需要修改文件名,可以使用RenameUtil类方法去对文件名进行修改
可以修改指定文件名
启动任务
文件名修改成功
尝试rce
2
人收藏
1
人喜欢
转载
分享
1
条评论
某人
表情
可输入
255
字
评论
发布投稿
热门文章
1
飞塔防火墙漏洞深度利用及调试环境搭建
2
Linux Shellcode开发(Stager & Reverse Shell)
3
Windows Shellcode开发(x64 stager)
4
Fuzz挖掘sudo提权漏洞:一次堆溢出如何逆向分析出提权思路
5
1.6K主机全域沦陷实录:从单点突破到域控接管的终极横向渗透链
近期热点
一周
月份
季度
1
飞塔防火墙漏洞深度利用及调试环境搭建
2
Linux Shellcode开发(Stager & Reverse Shell)
3
Windows Shellcode开发(x64 stager)
4
Fuzz挖掘sudo提权漏洞:一次堆溢出如何逆向分析出提权思路
5
1.6K主机全域沦陷实录:从单点突破到域控接管的终极横向渗透链
暂无相关信息
暂无相关信息
优秀作者
1
一天
贡献值:18800
2
T0daySeeker
贡献值:18700
3
1174735059082055
贡献值:15000
4
Yale
贡献值:14000
5
1674701160110592
贡献值:13000
6
LeeH
贡献值:10000
7
MeteorKai
贡献值:9000
8
熊猫正正
贡献值:8000
9
lufei
贡献值:8000
10
Bu0uCat
贡献值:8000
目录
环境搭建
漏洞分析
计划任务
文件上传
结合导致RCE
转载
标题
作者:
你好
http://www.a.com/asdsabdas
文章
转载
自
复制到剪贴板