记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

微窗cms最新版任意代码执行漏洞分析

2016-08-05 07:50

漏洞分析

漏洞触发点其实是string2array()这个函数造成的,先来看一下这个函数体:

可以看到其中有个eval(),那么意思是我们只要能够控制住$data这个变量,那么就可以任意代码执行了。

在/addons/vip/site.php中第1245行:

可以看到这里有一个更新表的操作:

if ($this->ddb->update(table(‘vip_content’), array($type=>$val), array(‘id’=>$id))

这里的$type和$val都是通过POST传进来的,是我们可以控制的,那么就是说我们可以自由更新vip_content这张表的任意字段的值。

同样在/addons/vip/site.php中的第470行:

在这里我们可以看到对$row[“setting”]这个变量使用了string2array()这个函数,而这个$row[“setting”]的值是表vip_content中setting的值,但是从上文得知,我们可以更新表vip_content中任意字段的值,所以我们可以控制$row[“setting”],那么就可以造成任意代码执行了。

漏洞利用

首先我们注册一个账号并登录,然后到首页去创建一个公众号/服务窗,然后选择会员卡选项,如图所示:

1[1]

然后选择特权管理->发布会员特权,如图所示:

2[1]

然后标题和使用说明随便写,有效日期随便写,会员类型随便勾,如图所示:

3[1]

接着提交就可以了,然后我们开始更新vip_content表中的setting字段的值,编辑我们发布的特权:

4-1024x104[1]

这个时候需要记下url上的信息,例如我本地的是http://localhost/vwins/index.php/web/vip/privilegerelease/3/?ui=2&al=1&uf=5,我们需要记下的就是privilegerelease/3/? 中间的那个数字,我这里是3,这个就是信息在数据库中的id号,待会我们需要用到。

然后将这个url改一下,只需要将privilegerelease替换成editval就可以了。然后我们访问payload:

http://localhost/vwins/index.php/web/vip/editval/3/?ui=2&al=1&uf=5

POST: id=3&dosubmit=1&type=setting&val=array(1=>2);phpinfo()

这里的id就是上一步记下的id号。更改完后,我们回到特权列表,再次编辑我们发布的特权,可以发现,phpinfo()已经执行:

5-1024x413[1]

知识来源: 0day5.com/archives/3996

阅读:107289 | 评论:0 | 标签:PHP 任意代码执行 微窗cms 漏洞 cms

想收藏或者和大家分享这篇好文章→复制链接地址

“微窗cms最新版任意代码执行漏洞分析”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云

本页关键词