海洋cms漏洞详情与修复建议

       海洋cms是为处理网站站长关键要求而设计方案的cms系统,一套程序流程响应式电脑上、手机上、平板电脑、APP好几个终端设备通道,无一切数据加密编码、安全性有确保,是最好的建网站专用工具。前不久见到微信朋友圈不仅一个盆友提及了seacms前台接待没有理由rce,想到自身最初学习培训编码财务审计时,也财务审计过这一系统软件,毛都没发觉一个,如今一年过去,想看一下自身有木有发展,因此又做一次财务审计,結果解析全过程中寻找一处自变量遮盖系统漏洞。因为基本上是全局性的,一切正常状况是有许多方式扩张危害的,想开展前台接待rce,可是因为系统软件过虑确实超级变态,迫不得已委屈求全,只能攘外必先安内了。

此外本一篇文章早已在cnvd上递交,且海洋cms也已公布了新的版本号修复漏洞了,本一篇文章仅用以行业交流,切勿故意运用。

文章正文

seacms存有全局性的自变量遮盖系统漏洞,最后造成滥用权力进到后台管理RCE。这儿以最新版v9.92为例开展演试(那时候是最新消息的版本号,这几天持续更了三个版本号到v9.95了)。

common.php文档是全部系统软件的关键文档,基本上全部的网页页面都是包括它,最先在22行处为了避免自变量遮盖,对恳求中的主要参数干了校检。

可是这儿忘了校检”FILES”,而115行处又有动态性赋值,造成这儿人们能够 申请注册$FILES自变量.

以后在200行处分辨是不是有$_FILES自变量,假如有得话就包括uploadsafe.inc.php

跟踪uploadsafe.inc.php

能够看见34行这儿又一个自变量遮盖,且这儿沒有对$key的值做限定,那样人们就能够 遮盖随意值了,无论是session還是cfg。可是特别注意的是因为21行有分辨,因此假如人们必须遮盖$SESSION['seaadminid'],必须在恳求中另外加上相匹配的别的三个主要参数,如图所示,恳求中递交以下五个主要参数能够 遮盖session中的seaadminid、seagroupid、及其sea_ckstr(登录必须应用到的短信验证码)。

如今开展重现系统漏洞,在前台接待申请注册一个用户test:123456,系统软件默认设置是打开vip会员作用的,即使没打开,也彻底能够 根据遮盖$cfg_user来避过,编码以下

这儿我不演试了会员注册了,成功注册后,前台接待登录抓包软件,结构如图所示恳求。

登录取得成功后,浏览后台管理详细地址将会立即进到后台管理且是访问权限。

后台管理RCE

后台管理rce就非常简单了,将会是好运气,进后台管理毫无疑问是想getshell嘛,因此先看过写配备的作用…..

adminconfigmark.php文档是解决图片水印设定的,19~23行中循环系统接受了恳求中的“photo_*”开展动态性申请注册自变量,随后拼接成字符串数组$configstr。

分享: