代码拉取完成,页面将自动刷新
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
所以我们不能使用堆叠注入。