临近9月底,seacms官方升级海洋cms系统到9.95版本,我们SINE安全在对其源码进行网站漏洞检测的时候发现问题,可导致全局变量被覆盖,后台可以存在越权漏洞并绕过后台安全检测直接登录管理员账号。关于该漏洞的具体详情,我们来详细的分析一下:
seacms主要设计开发针对于互联网的站长,以及中小企业的一个建站系统,移动互联网的快速发展,该系统可自动适应电脑端,手机端,平板端,APP端等多个用户的端口进行适配,代码开源免费,可二次开发,PHP+Mysql数据库架构,深受广大网站运营者的青睐。
我们SINE安全工程师对该代码进行了详细的安全审计,在一个变量覆盖上发现了漏洞,一开始以为只有这一个地方可以导致网站漏洞的发生,没成想这套系统可以导致全局性的变量覆盖发生漏洞,影响范围较大,seacms系统的安全过滤与判断方面做的还不错,在其他地方放心可以平行越权,并直接登录后台是管理员权限。默认变量覆盖这里是做了安全效验的功能,在配置代码里common.php的22行里可以看到对get,post,cookies请求方式上进行了变量的安全效验,对代码的安全审计发现在34行里的变量覆盖值判断没有进行KEY值的安全限制,导致此次漏洞的发生,我们可以利用这个值进行全局的变量覆盖,不管是seeion还是cfg值都可以覆盖。
我们来验证下这个网站漏洞,搭建本地的环境,下载seacms最新版本,并使用apache+php5.5+mysql数据库环境,我们前台注册一个普通权限的用户,使用抓包工具对post的数据进行截取,我们来覆盖cfg_user的值来进行管理员权限的赋值操作。我们只要赋值cfg_user不为0,就可以一直保持后台的登陆状态。我们直接去访问后台的地址,就可以直接登陆进去。截图如下:
有了网站后台管理员权限,一般都会想上传webshell,那么后台我们在代码的安全审计中发现有一处漏洞,可以插入php语句并拼接导致可以上传网站木马文件,在水印图片文字功能里,接收图片的注册值时可以插入phpinfo并执行,如下图。
我们专注高端建站,小程序开发、软件系统定制开发、BUG修复、物联网开发、各类API接口对接开发等。十余年开发经验,每一个项目承诺做到满意为止,多一次对比,一定让您多一份收获!