随着互联网技术的不断发展,网站安全问题越来越受到重视。在众多CMS系统中,DEDECMS因其简单易用而备受青睐。然而,由于其代码可能存在一些漏洞,因此需要及时进行修复以确保网站的安全性。本文将详细介绍如何解决DEDECMS中因SESSION变量覆盖而导致的SQL注入问题。

补丁文件:
/include/common.inc.php

漏洞描述:
DEDECMS的/plus/advancedsearch.php文件中,直接从SESSION[SESSION[sqlhash]]获取值作为$query带入SQL查询。这个漏洞的利用前提是session.auto_start = 1,即开启了自动SESSION会话。云盾团队在DEDECMS的变量注册入口进行了通用统一防御,禁止SESSION变量的传入。

解决方法:
以下是针对DEDECMS SESSION变量覆盖导致SQL注入问题的具体解决方案:

第一步:
打开/include/common.inc.php文件,搜索如下代码(通常位于第68行):


if( strlen($svar) > 0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE)#', $svar) )
    

第二步:
替换第68行代码,将原有代码替换为以下内容:


if( strlen($svar) > 0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE|_SESSION)#', $svar) )
    

注意事项:
在修改之前,请务必备份原始文件,以防万一出现问题可以迅速恢复。完成修改后,将新的/include/common.inc.php文件上传到阿里云服务器上,覆盖原有的文件即可解决问题。

总结:
通过上述步骤,您可以有效解决DEDECMS中因SESSION变量覆盖而导致的SQL注入问题。定期检查和更新您的CMS系统,是确保网站安全的重要措施。希望本文对您有所帮助!

如果您还有其他疑问或需要进一步的帮助,请随时联系我们。