当前位置:首页 > 行业动态 > 正文

如何有效应对dedecms中/include/common.inc.php文件的安全破绽问题?

升级到最新版本,修改文件权限,定期备份数据,使用安全插件。

DEDECMS安全破绽之/include/common.inc.php破绽解决办法

受影响版本及描述

受影响版本:DEDECMS 5.7、5.6、5.5。

破绽文件:/include/common.inc.php。

破绽描述:DEDECMS的全局变量初始化存在破绽,可以任意覆盖任意全局变量,破解可以通过此破绽来重定义数据库连接,通过此破绽进行各种越权操作构造破绽直接写入webshell后门。

临时解决方案

在 /include/common.inc.php 中找到注册变量的代码:

foreach(Array('_GET','_POST','_COOKIE') as $_request) {
foreach($$_request as $_k => $_v) ${$_k} = _RunMagicQuotes($_v);
}

修改为:

foreach(Array('_GET','_POST','_COOKIE') as $_request) {
foreach($$_request as $_k => $_v) {
if( strlen($_k)>0 && eregi('^(cfg_|GLOBALS)',$_k) ){
exit('Request var not allow!');
}
${$_k} = _RunMagicQuotes($_v);
}
}

修改后上传。

长期解决方案

备份文件:在进行任何修改之前,务必备份include/common.inc.php文件,以防止意外情况发生。

更新文件:下载最新的织梦dedecms版本,并将include/common.inc.php文件替换为最新版本的文件,确保从官方来源下载文件,以获取最新的安全修复。

检查文件权限:确保include/common.inc.php文件的权限设置正确,建议将文件权限设置为只读(644)。

输入验证:在include/common.inc.php文件中,对用户输入进行严格的验证和过滤,确保只接受预期的输入,并对输入进行适当的转义或过滤,以防止代码注入攻击。

禁用危险函数:在include/common.inc.php文件中,禁用危险的PHP函数,如eval()、exec()等,这样可以限制攻击者执行任意代码的能力。

更新安全补丁:定期检查织梦dedecms的官方网站,以获取最新的安全补丁和更新,及时应用这些安全补丁,以确保系统的安全性。

示例说明

4.1 输入验证

在include/common.inc.php文件中,我们可以添加输入验证来防止反面用户执行任意代码,以下是一个示例代码片段,用于验证用户输入的参数:

// 获取用户输入的参数
$param = $_GET['param'];
// 验证参数是否符合预期
if (preg_match('/^[azAZ09]+$/', $param)) {
    // 参数合法,继续处理
    // ...
} else {
    // 参数非规,拒绝处理
    die('Invalid parameter');
}

4.2 禁用危险函数

在include/common.inc.php文件中,我们可以禁用危险的PHP函数,以防止反面用户执行任意代码,以下是一个示例代码片段,用于禁用eval()函数:

// 禁用eval()函数
if (function_exists('eval')) {
    die('eval() function is disabled');
}

通过以上示例,我们可以看到如何在include/common.inc.php文件中应用输入验证和禁用危险函数的方法来解决织梦dedecms的安全破绽,请根据实际情况选择适合的解决方法,并确保及时更新和修复系统破绽,以保护网站的安全性。

FAQs

5.1 为什么需要备份include/common.inc.php文件?

在对include/common.inc.php文件进行修改之前,备份这个文件是为了防止意外情况发生,如果在修改过程中出现问题或者修改后的效果不如预期,可以通过恢复备份文件来恢复到原始状态,避免造成更大的损失。

5.2 如何确保include/common.inc.php文件的安全性?

要确保include/common.inc.php文件的安全性,可以采取以下措施:

下载并安装最新的织梦dedecms版本,使用官方提供的最新安全补丁。

对用户输入进行严格的验证和过滤,防止代码注入攻击。

禁用危险的PHP函数,限制攻击者执行任意代码的能力。

定期检查官方网站,获取最新的安全补丁和更新,及时应用这些安全补丁。

Dedecms 安全破绽之/include/common.inc.php 破绽解决办法

破绽

Dedecms 是一款常用的PHP内容管理系统,但其中的/include/common.inc.php 文件存在安全破绽,可能导致远程代码执行(RCE)等安全问题。

破绽原因

该破绽通常是由于以下原因造成的:

1、用户上传的文件没有经过严格的检查和过滤。

2、系统配置不当,允许用户执行特定的PHP代码。

解决办法

1. 代码审查

/include/common.inc.php 文件进行全面审查,确保所有用户输入都经过适当的过滤和转义。

检查文件上传部分的代码,确保对上传文件进行严格的安全检查。

2. 参数过滤

使用PHP的htmlspecialcharsstrip_tags 等函数对用户输入进行过滤,防止XSS攻击。

使用preg_replacefilter_var 对用户输入进行正则表达式匹配或类型过滤。

3. 配置文件修改

修改common.inc.php 中的配置,关闭不必要的PHP函数执行权限。

设置$_SERVER['HTTP_REFERER'] 的检查,确保请求来源合法。

4. 使用安全函数

使用get_magic_quotes_gpc() 检查并启用 magic quotes,虽然不是完全安全的解决方案,但可以作为辅助措施。

使用addslashesmysql_real_escape_string 对数据进行转义,防止SQL注入。

5. 文件权限设置

确保所有上传目录的权限仅允许必要的用户访问。

使用chmod 命令设置目录权限,例如设置为755。

6. 更新和升级

定期检查并更新 Dedecms 到最新版本,以修复已知的安全破绽。

升级 PHP 到最新版本,并确保所有扩展库都是安全的。

7. 使用安全插件

安装并启用 Dedecms 的安全插件,如安全防护、SQL注入防护等。

实施步骤

1、备份/include/common.inc.php 文件。

2、逐行审查文件,确保所有用户输入都经过过滤。

3、修改配置文件,关闭不必要的PHP函数执行权限。

4、设置文件权限,确保上传目录的安全。

5、更新 Dedecms 和 PHP 到最新版本。

6、安装安全插件,增强系统安全性。

通过以上步骤,可以有效解决 Dedecms/include/common.inc.php 破绽,提高系统的安全性,请定期检查系统安全,确保网站的安全运行。

0