dz论坛Discuz_X3.4最新网站漏洞

简介: 近期我们sinesafe安全部门审计discuz最新版的时候发现配置文件写入导致代码执行的问题。cms安装的时候一般会分为几个步骤去进行,其中有对配置文件config进行写入的步骤,当写入的时候未严格限制传入的参数就存在代码执行问题。

近期我们sinesafe安全部门审计discuz最新版的时候发现配置文件写入导致代码执行的问题。cms安装的时候一般会分为几个步骤去进行,其中有对配置文件config进行写入的步骤,当写入的时候未严格限制传入的参数就存在代码执行问题。

 

源码信息:Discuz_X3.4_GIT_SC_UTF8

问题文件: \upload\install\index.php

漏洞类型:配置文件写入导致代码执行

站点地址:http://www.discuz.net/forum-10-1.html 

直接看配置信息写入的代码段为 \upload\install\index.php

23.png

看到save_config_file()函数是保存写入配置信息的,配置信息为$_config这个数组,我们跟踪下这个数组;

还是这个文件,代码段为第266行;

34.png

这里的$forceinstall参数即为通过POST接收的配置信息数值为二维数组,看到里面的dbinfo了,这里程序本身未对传入的POST值进行任何过滤,也就存在代码执行问题了。

直接安装到写入配置信息的步骤;

23.png

填入正确的数据库用户名账号和密码之后抓包;

45.png

这时候看下具体配置文件,代码段为/upload/uc_server/data/config.inc.php;

56.png

我们以前缀dbinfo[table_pre]参数为利用,看到使用单引号和括号括起来,所以payload为;

payload = pre_’);phpinfo();//

发到上述抓包里点击安装即可写入配置文件;

这时候看这个配置文件;

24.png

直接访问这个文件即可执行;

http://127.0.0.1/Discuz_X3.4_GIT_SC_UTF8/dir_SC_UTF8/upload/uc_server/data/config.inc.php

46.png

 

这个漏洞原理比较简单,针对其防御方法是需要对传入的配置信息进行转义处理,这里只要转义单引号就可以了,但是刚开始我有疑惑的点就是这里的payload在实际情况下,我们需要通过类似“爆破”的思路去测试大量payload,但是由于“安装锁”的存在,安装一次就会锁定程序生成install.lock文件防止重装,也就是“爆破”不了,那么这个漏洞是不是就利用不了呢?为了解决这个疑问,我重新看了下安装时候的源码信息,发现这个漏洞还是可以利用的;

Clipboard Image.png还是在安装的文件里,第478行,可以看到在写入配置信息到config文件之后,下面还会判断当methon为ext_info的时候进行其他操作即生成安装锁文件进行锁定,到这个步骤才是完整的安装操作,也就是和之前的写入配置信息是“分开”进行的,也可通过抓包去看,比较明显,是两个不同的数据包,互相不会干涉,写入配置信息的数据包不会锁定安装程序,所以导致可通过“爆破”去利用,程序这么去设计也是业务逻辑的需求吧,如果写入配置信息的步骤即可生成安装锁文件并且结束安装的话,这个漏洞就利用不了了,除非存在任意文件删除漏洞可以去删除install.lock这个文件。

 

专注于安全领域 解决网站安全 解决网站被黑 网站被挂马 网站被篡改 网站安全、服务器安全提供商-www.sinesafe.com --专门解决其他人解决不了的网站安全问题.
相关文章
|
弹性计算 Linux 数据库
快速用Discuz搭建论坛网站教程
Discuz! 是全球成熟度最高、覆盖率最大的论坛网站软件系统之一,被200多万网站用户使用,本文教你一步一步快速用阿里云免费的Discuz官方系统搭建论坛网站。
43063 0
|
弹性计算 关系型数据库 MySQL
使用 Discuz 快速搭建论坛 | 学习笔记
快速学习 使用 Discuz 快速搭建论坛
122 0
使用 Discuz 快速搭建论坛 | 学习笔记
|
数据安全/隐私保护 云计算 开发者
使用 PHPWind 论坛 | 学习笔记
快速学习使用 PHPWind 论坛
85 0
使用 PHPWind 论坛 | 学习笔记
|
算法 安全 数据库
使用 Discuz 快速搭建论坛|学习笔记
快速学习 使用 Discuz 快速搭建论坛
152 0
|
安全 前端开发 Linux
最新网站漏洞修复对DiscuzX3.4论坛漏洞
Discuz!论坛目前最新版本为3.4版本,已经好久没有更新了,我们SINE安全在对其网站安全检测的同时发现一处漏洞,该漏洞可导致论坛的后台文件可以任意的删除,导致网站瘫痪,后台无法登陆。关于该网站漏洞的细节我们来详细的分析看一下:
267 0
最新网站漏洞修复对DiscuzX3.4论坛漏洞
|
PHP 数据库 数据安全/隐私保护
如何安装discuz论坛
如何安装discuz论坛
545 0
|
SQL PHP 数据库
PHPCMS V9调用dz x1.5 论坛数据教程
摸索了个把月的V9,目前的功能大致了解了。建站前计划要整合DZ X1.5的,在论坛搜索方法已经实现了同步,但是对于论坛帖子调用还没有得到更多帮助,可能是因为太简单了,没有人去写,我就献丑整理一下吧。如果有用麻烦给我个顶,俺小学生需要鼓励。
1446 0
|
Linux PHP 数据库
Linux服务器---论坛discuz
Discus        Discuz是一款免费的论坛管理系统,大量的使用了AJAX,内部有丰富的模板风格。 1、下载discuz软件(https://cn.wordpress.org/download/releases/")2、为discuz创建一个自己的数据库,我们起名为“discuz”3、...
1348 0
|
安全 测试技术 PHP
网站漏洞检测与修复之Discuz论坛3.4版本
Discuz!论坛目前最新版本为3.4版本,已经好久没有更新了,我们SINE安全在对其网站安全检测的同时发现一处漏洞,该漏洞可导致论坛的后台文件可以任意的删除,导致网站瘫痪,后台无法登陆。关于该网站漏洞的细节我们来详细的分析看一下: Discuz漏洞的检测与分析 该漏洞发生的位置在于source目录下的admincp文件夹里的admincp_forums.php代码里,我们用note编辑器打开查找到unlink函数调用的地方,就看到漏洞产生的原因了,直接搜索$_get{'replybgnew'],定位到代码。
2071 0
|
Web App开发 PHP 数据库
如何安装discuz论坛,discuz安装步骤
安装discuz论坛的方法: 首先,您需要去 http://www.discuz.net/ 下载一个合适的版本,然后通过FTP上传所需要的程序,运行安装程序,设置论坛 阿里云代金券1000元免费领取地址:https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=2a7uv47d 新老阿里云账户均可领取!可用于购买阿里云服务器ECS、云数据库RDS、虚拟主机、安骑士、DDoS高防IP等100多云计算产品。
3887 0