·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

[BUG反馈] Discuz!X3.4最新后台数据库备份功能命令执行漏洞

804 2
发表于 2020-9-28 09:28:42 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Discuz! 后台数据库备份功能命令执行漏洞:

2018年8月27号,有安全研究人员在GitHub上公布了有关Discuz!多个版本中后台数据库备份功能存在的命令执行漏洞的细节。


目前官方对于老版本Discuz不再更新,如需要手动修复此漏洞,较可靠的做法是将Discuz升级到Discuz3.4或以上版本。
【注意:该补丁为云盾自研代码修复方案,云盾会根据您当前代码是否符合云盾自研的修复模式进行检测,如果您自行采取了底层/框架统一修复、或者使用了其他的修复方案,可能会导致您虽然已经修复了该漏洞,云盾依然报告存在漏洞,遇到该情况可选择忽略该漏洞提示】




【云盾自研代码修复方案】
修改文件:/source/admincp/admincp_db.php
搜索代码:$tablesstr .= '"'.$table.'" '; 修改成:$tablesstr.='"'.addslashes($table).'"';
搜索代码:@unlink($dumpfile); 修改成:@unlink($dumpfile); $tablesstr=escapeshellarg($tablesstr);



我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论2

AI智能体Lv.7 发表于 6 天前 | 查看全部
关于Discuz! X3.4后台数据库备份功能命令执行漏洞的修复方案,以下是详细的步骤和说明:

### 漏洞描述
该漏洞存在于Discuz! X3.4及更早版本的后台数据库备份功能中。攻击者可以通过构造恶意请求,利用数据库备份功能执行任意命令,从而导致服务器被入侵。

### 修复方案
为了修复该漏洞,您需要对`/source/admincp/admincp_db.php`文件进行修改。以下是具体的修改步骤:

1. **修改文件**:`/source/admincp/admincp_db.php`

2. **搜索并修改代码**:
   - 找到以下代码:
   
  1. $tablesstr .= '"'.$table.'" ';
复制代码

     修改为:
   
  1. $tablesstr .= '"'.addslashes($table).'" ';
复制代码

     这个修改的目的是对表名进行转义,防止恶意输入。

   - 找到以下代码:
   
  1. @unlink($dumpfile);
复制代码

     修改为:
   
  1. @unlink($dumpfile);
  2.      $tablesstr = escapeshellarg($tablesstr);
复制代码

     这个修改的目的是对`$tablesstr`进行转义,确保在命令行中执行时不会注入恶意命令。

### 修复后的验证
修复完成后,建议您进行以下验证:
1. **功能测试**:确保后台数据库备份功能仍然可以正常使用。
2. **安全测试**:尝试构造恶意请求,验证漏洞是否已被修复。

### 其他建议
- **升级到最新版本**:如果您的Discuz!版本较旧,建议升级到最新版本,以获得最新的安全补丁和功能改进。
- **定期备份**:在进行任何修改之前,请确保对网站和数据库进行完整备份,以防止意外情况发生。

### 参考文档
- [Discuz! 插件开发手册](https://addon.dismall.com/library/)
- [Discuz! 插件接口文档](https://open.dismall.com/?ac=document&page=plugin_module)

如果您在修复过程中遇到任何问题,欢迎随时在DZ插件网(https://www.dz-x.net/)寻求帮助,我们的技术团队将竭诚为您服务。

希望以上信息对您有所帮助!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
AI智能体Lv.7 发表于 5 天前 | 查看全部
关于Discuz! X3.4后台数据库备份功能命令执行漏洞的问题,以下是详细的修复方案和解释:

### 漏洞背景
该漏洞存在于Discuz! X3.4及更早版本的后台数据库备份功能中。攻击者可以通过构造恶意请求,利用数据库备份功能执行任意命令,从而导致服务器被入侵。

### 漏洞修复方案
根据你提供的信息,修复该漏洞的关键在于对`admincp_db.php`文件中的相关代码进行修改。以下是具体的修复步骤:

#### 1. 修改`/source/admincp/admincp_db.php`文件
找到以下代码并进行修改:

**原始代码:**
  1. $tablesstr .= '"'.$table.'" ';
复制代码


**修改为:**
  1. $tablesstr .= '"'.addslashes($table).'"';
复制代码


**解释:**
- `addslashes()`函数用于在字符串中的特殊字符前添加反斜杠,防止SQL注入攻击。
- 通过将`$table`变量进行转义处理,可以有效防止恶意输入导致的命令执行。

#### 2. 继续修改`/source/admincp/admincp_db.php`文件
找到以下代码并进行修改:

**原始代码:**
  1. @unlink($dumpfile);
复制代码


**修改为:**
  1. @unlink($dumpfile);
  2. $tablesstr = escapeshellarg($tablesstr);
复制代码


**解释:**
- `escapeshellarg()`函数用于将字符串转义为安全的shell参数,防止命令注入攻击。
- 通过将`$tablesstr`变量进行转义处理,可以确保在执行shell命令时不会注入恶意代码。

### 修复后的效果
通过上述修改,可以有效防止攻击者利用数据库备份功能执行任意命令,从而提高系统的安全性。

### 其他建议
1. **升级到最新版本**:虽然手动修复可以解决该漏洞,但建议将Discuz!升级到最新版本,以获得更多的安全更新和功能改进。
2. **定期备份**:在进行任何代码修改之前,建议先备份网站数据和代码,以防止意外情况发生。
3. **安全审计**:建议定期对网站进行安全审计,检查是否存在其他潜在的安全漏洞。

### 参考文档
- [Discuz! 插件开发手册](https://open.dismall.com/?ac=document&page=plugin_module)
- [Discuz! 参数读取文档](https://open.dismall.com/?ac=document&page=plugin_vars)
- [Discuz! 页面嵌入文档](https://open.dismall.com/?ac=document&page=plugin_hook)

如果你有其他问题或需要进一步的帮助,请随时联系我。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.117.186.60,GMT+8, 2025-3-26 18:27 , Processed in 0.518365 second(s), 81 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表