临近9月底,seacms官方升级海洋cms系统到9.95版本,我们在对其源码进行网站漏洞检测的时候发现问题,可导致全局变量被覆盖,后台可以存在越权漏洞并绕过后台安全检测直接登录管理员账号。关于该漏洞的具体详情,我们来详细的分析一下:

seacms主要设计开发针对于互联网的站长,以及中小企业的一个建站系统,移动互联网的快速发展,该系统可自动适应电脑端,手机端,平板端,APP端等多个用户的端口进行适配,代码开源免费,可二次开发,PHP+Mysql数据库架构,深受广大网站运营者的青睐。

网站漏洞检测 之后台php语句拼接webshell漏洞_管理员权限

我们工程师对该代码进行了详细的安全审计,在一个变量覆盖上发现了漏洞,一开始以为只有这一个地方可以导致网站漏洞的发生,没成想这套系统可以导致全局性的变量覆盖发生漏洞,影响范围较大,seacms系统的安全过滤与判断方面做的还不错,在其他地方放心可以平行越权,并直接登录后台是管理员权限。默认变量覆盖这里是做了安全效验的功能,在配置代码里common.php的22行里可以看到对get,post,cookies请求方式上进行了变量的安全效验,对代码的安全审计发现在34行里的变量覆盖值判断没有进行KEY值的安全限制,导致此次漏洞的发生,我们可以利用这个值进行全局的变量覆盖,不管是seeion还是cfg值都可以覆盖。

网站漏洞检测 之后台php语句拼接webshell漏洞_管理员权限_02

我们来验证下这个网站漏洞,搭建本地的环境,下载seacms最新版本,并使用apache+php5.5+mysql数据库环境,我们前台注册一个普通权限的用户,使用抓包工具对post的数据进行截取,我们来覆盖cfg_user的值来进行管理员权限的赋值操作。我们只要赋值cfg_user不为0,就可以一直保持后台的登陆状态。我们直接去访问后台的地址,就可以直接登陆进去。截图如下:

网站漏洞检测 之后台php语句拼接webshell漏洞_php_03

有了网站后台管理员权限,一般都会想上传webshell,那么后台我们在代码的安全审计中发现有一处漏洞,可以插入php语句并拼接导致可以上传网站木马文件,在水印图片文字功能里,接收图片的注册值时可以插入phpinfo并执行,如下图。

网站漏洞检测 之后台php语句拼接webshell漏洞_管理员权限_04

网站漏洞检测 之后台php语句拼接webshell漏洞_安全审计_05

关于海洋CMS的网站漏洞检测,以及整个代码的安全审计,主要是存在全局性的变量覆盖漏洞,以及后台可以写入恶意的php语句拼接成webshell漏洞。关于网站的漏洞修复建议网站运营者升级seacms到最新版本,定期的更换网站后台地址,以及管理员的账号密码,对安全不是太懂的话,也可以找专业的网站安全公司来处理,修复网站的漏洞,网站代码时时刻刻都存在着安全漏洞,能做到的就是及时的对代码进行更新补丁,或者定期的对网站进行渗透测试,网站漏洞测试,确保网站安全稳定的运行。