208 Star 1.8K Fork 582

www.iteachyou.cc / Dreamer CMS(梦想家CMS内容管理系统)

 / 详情

🛡️ 后台模板标签存在SQL注入

已完成
创建于  
2023-03-15 14:21

测试环境

CMS版本:Previous_Releases_4.0.1
JVM名称:OpenJDK 64-Bit Server VM
JAVA版本:1.8.0_362
操作系统名称:Linux
操作系统架构:amd64
数据库版本:8.0.32

漏洞效果

我们到模板管理中,任意修改模板文件,我这里我修改了index_about.html文件。
输入图片说明

<div class="aboutUs">
  {dreamer-cms:sql sql="SQL语句,只允许select开头。"}
	<div>[field:content/]</div>
	{/dreamer-cms:sql}
</div>

我们可以使用 select ... into dumpfile ...的SQL语句写入文件到/var/lib/mysql-files目录下。同样可以使用select获取数据库所有表的数据并输出出来。
输入图片说明
因为没有地方可以进行查询secure_file_priv属性,我直接通过连接 docker mysql 查看。
输入图片说明
当我们再次访问“关于我们”的页面。
输入图片说明
通过进入 docker 容器查看,发现文件已经写入。
输入图片说明
我们可以使用SELECT CONVERT(load_file('/var/lib/mysql-files/test1.txt') USING utf8) AS content FROM dual;SQL语句读取我们写入的文件。
输入图片说明
再次访问“关于我们”的页面发现将我们写入的文件读了出来。
输入图片说明

MySQL 8.0.11 版本引入了“禁用动态加载函数”功能,这是为了提高MySQL的安全性而引入的。当启用此功能时,MySQL将禁止使用UDF函数和UDF共享库加载机制,以防止潜在的安全威胁。这个功能默认是开启的,可以通过在mysqld启动时使用--disable-dynamic-loading选项禁用它。

系统使用了 Mybatis 并且在对应的SQL映射文件中没有设置allowMultiQueries=true所以我们不能使用堆叠注入。

评论 (0)

林建成 创建了任务
林建成 修改了描述
王俊南 任务状态待办的 修改为已完成
展开全部操作日志

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(1)
Java
1
https://gitee.com/iteachyou/dreamer_cms.git
git@gitee.com:iteachyou/dreamer_cms.git
iteachyou
dreamer_cms
Dreamer CMS(梦想家CMS内容管理系统)

搜索帮助

344bd9b3 5694891 D2dac590 5694891