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 --专门解决其他人解决不了的网站安全问题.
相关文章
PbootCMS的默认账号密码是什么?
PbootCMS的默认账号密码是什么?
1659 0
|
存储 Java
【JavaSE】基础笔记 - 图书管理系统(保姆教程,含源码)
【JavaSE】基础笔记 - 图书管理系统(保姆教程,含源码)
398 1
|
SQL 安全 前端开发
maccms网站被挂马 根源问题在于SQL注入远程代码漏洞
目前苹果CMS官方在不断的升级补丁,官方最新的漏洞补丁对于目前爆发的新漏洞没有任何效果。更新补丁的用户网站还是会遭受到挂马的攻击,很多客户因此找到我们SINE安全寻求网站安全技术上的支持,针对该漏洞我们有着独特的安全解决方案以及防止挂马攻击的防护,包括一些未公开的maccms POC漏洞都有修复补丁
1035 0
maccms网站被挂马 根源问题在于SQL注入远程代码漏洞
|
消息中间件 Kubernetes Cloud Native
云原生时代 RocketMQ 运维管控的利器 - RocketMQ Operator
RocketMQ Operator 现已加入 OperatorHub,正式进入 Operator 社区。本文将从实践出发,结合案例来说明,如何通过 RocketMQ Operator 在 Kubernetes 上快速搭建一个 RocketMQ 集群,并提供一些 RocketMQ 集群管理功能包括 Broker 扩容等。
云原生时代 RocketMQ 运维管控的利器 - RocketMQ Operator
|
6月前
|
数据采集 存储 监控
网站价格监控:动态价格数据的实时抓取案例
本案例展示了如何利用爬虫技术实时抓取京东等电商平台的商品信息、价格及用户评价,通过代理IP、Cookie和User-Agent确保数据稳定采集。关键数据分析包括价格动态监控、评价趋势分析和竞争情报获取,助力商家制定策略。代码从简单请求逐步演进为具备异常处理、数据解析等功能的完整体系,并设计了「技术关系图谱」,直观展示系统模块间的关系,为开发者提供全局视角和技术路径参考。
1008 0
网站价格监控:动态价格数据的实时抓取案例
|
SQL Web App开发 安全
Discuz历史漏洞分析(一)
Discuz是非常受欢迎的论坛型CMS,但是近年来DZ也爆出了很多经典漏洞,以下分析了几个不同类型的DZ历史漏洞(SQL注入、XSS、任意文件删除、弱加密算法、任意代码执行、HTTP HOST攻击等),提高安全人员的安全意识。
Discuz历史漏洞分析(一)
|
机器学习/深度学习 算法 数据挖掘
【机器学习】各大模型原理简介
【机器学习】各大模型原理简介
809 2
|
小程序 数据库
一款开源的答题考试小程序,功能丰富,页面美观!
一款开源的答题考试小程序,功能丰富,页面美观!
741 0