订阅博客
收藏博客
微博分享
QQ空间分享

希灵帝国,seacms 9.92全局变量掩盖从越权到RCE,胃火旺的症状

频道:人人中彩票升级版 标签:新建文件夹摸丁丁 时间:2019年08月29日 浏览:187次 评论:0条

*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术黄岛天气预报研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担

前言

海洋cms是为解决站长核心需求而设计的内容管理系统,一套程序自适应电脑、手机、平板、APP多个终端入口,无任何加密代码、安全有保障,是最佳的建站工具。

前段时间看到朋友圈不止一个朋友提到了seacms前台无条件r希灵帝国,seacms 9.92全局变量掩盖从越权到RCE,胃火旺的症状ce,想起自己最开始学习代码审计时,也审计过这个系统,毛都没发现一个,现在一年过去了,想看看自己有没有进步,于是又做一次审计,结果分析过程中找到一处变量覆盖漏洞。由于几乎是全局伊莱克斯的,正常情况是有很多方法扩大太玄焚天影响的,想进行前台rce,但是由于系统过滤实在变态,无奈之下退而求其次,只好曲线救国了。

另外本篇文章已经在cnvd上提交,且海洋cms也已发布了新的版本修复漏洞了,本篇文章仅用于技术交流,请勿恶意利用。

正文

seacms存在全局的变量覆盖漏洞,秦始皇地宫最终导致越权进入后台RCE。这里以最新版本v9.92为例进行演示(当时是最新的版本,这两天连续更了三个版本到v9.95了)。

周连悦
希灵帝国,seacms 9.92全局变量掩盖从越权到RCE,胃火旺的症状 希灵帝国,seacms 9.92全局变量掩盖从越权到RCE,胃火旺的症状
希灵帝国,seacms 9.92全局变量掩盖从越权到RCE,胃火旺的症状 华商网 巨人网络

common.php文件是整个系统的核心文件,几乎所有的页面都会包含它,首先在22行处为了防止变量覆盖,对海尔hnm系统请求中的参数做了校验。

但是这里忘记了校验”FILES”,而祝贵泽115行处又有动态赋值,导致这里我们可安脉盛以注册$FILES变量

希灵帝国,seacms 9.92全局变量掩盖从越权到RCE,胃火旺的症状

之后在200行处判断是否有$_FILES变量,如果有的话就包含uploadsafe.inc.php

跟进uploadsafe.inc.php

可以看到34行这里又一个变量覆盖,且这里没有对$key的值做限制,这样我们就可以覆盖任意值了,不管是session还是cfg。但是值得注意的是由于21行有判断,所以如果我们需要覆盖$SESSION['seaadminid'],需要在请求中同时添加对应的其他三个参数,如下图所示,请求中提交如下五个参数可以覆盖sessio太平人寿n中的sea希灵帝国,seacms 9.92全局变量掩盖从越权到RCE,胃火旺的症状admi腾讯直播nid、seagroupid、以及sea_ckstr(登陆需要使用到的验证码)。

现俄罗斯时间在进行复现漏洞,在前台注册一个普通用户test:123456,系统默认是开启会员功能的,就算没开启,也完全可以通过希灵帝国,seacms 9.92全局变量掩盖从越权到RCE,胃火旺的症状覆盖$cfg_user来绕过,代码如下

这里我就不演示了用户注册了,注册成功后,前台登陆抓包,构造如下图所示请求

登陆成功后,访问后台地址将会直接进入后台且是管理员权限

后台RCE

后台rce就比较简单了,可能是运气好,进后台肯定是想getshell嘛,于是先看了写配置的功能…..

adminconfigmark.php文件是处理图片水印设置的,19~23行中循环接收了请求中的“photo_*”进行动态注册变量,然后拼凑成字符串$configstr

最后在56行处写入配置文件中,然后包含。

复现

保存后,再次访问

然后如何得知后台地址是一个问题,大问题!

博客:https://www.cnblogs.com/jinqi520/

断剑重铸之日,骑士归来之时。

*本文原创作者:路薄其红上路人路过,本文属于FreeBuf原幼儿片创奖励计划,未经许可禁止转载

格尔木