漏洞概要
关注数(24)
关注此漏洞
漏洞标题:YXCMS前台getshell(有条件)
提交时间:2014-12-14 15:51
修复时间:2015-01-20 15:52
公开时间:2015-01-20 15:52
漏洞类型:文件包含
危害等级:高
自评Rank:20
漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞
Tags标签:
无
漏洞详情
披露状态:
2014-12-14: 细节已通知厂商并且等待厂商处理中
2014-12-19: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2015-02-12: 细节向核心白帽子及相关领域专家公开
2015-02-22: 细节向普通白帽子公开
2015-03-04: 细节向实习白帽子公开
2015-01-20: 细节向公众公开
简要描述:
YXCMS前台getshell,有条件,非鸡肋。
详细说明:
0x00 介绍
YXcms是一款基于PHP+MySql开发的网站管理系统。采用轻量级MVC设计模式,使得系统更加小巧灵活,避免了使用大型框架构建系统的笨重;APP应用方式使系统各功能板块之间耦合更低,易于安装卸载;自定义表功能,使得网站数据结构设计更加灵活,方便自定义各种留言、报名等功能,也可以将图集、文章拓展成为其他例如:产品、下载等栏目;独特的图片处理功能可以将图片管理细致到每个像素;独特的分类算法,实现了栏目无限分类的同时,又避免了普通递归分类算法造成的系统资源消耗。
而从1.2.1.5版本开始,yxcms开始增设前台用户上传图片功能,给我们本次漏洞形成提供了一个条件。
0x01代码分析
//index.php
直接看core.php 242行,调用了网址路由解析的函数urlRoute()
而后在244行调用函数appConfig()来加载app配置
利用证明:
poc:
环境:GPC=Off
0x01 前台注册一个账号
0x02 制作一个插入一句话木马的图片
0x03 上传头像 获得上传地址
upload/member/image/20141214/thumb_1418542014.jpg
0x04 包含之,漏洞exploit构成。
http://192.168.163.128/yxcms/index.php?r=..\..\upload\member\image\20141214\thumb_1418542014.jpg%00
0x05 解释
因为
只是用/来分割参数r提交来的数据,但是我们知道\跟/所代表的功能是一样的,只要能用\来提交就能绕过这个过滤。
此外
只是判断webroot/apps/$app/config.php是否存在,存在就包含
但是如果gpc=off的情况下
我们可以用thumb_1418542014.jpg%00截断后面的字符,那么is_file()检测的文件就是
webroot/apps/..\..\upload\member\image\20141214\thumb_1418542014.jpg,而这个文件就是我们刚才上传的带dirty code的图片,显然存在。漏洞形成。
该漏洞的唯一限制就是php的gpc开启与否,但是鉴于windows+php平台下,大部分默认没有开启gpc,还是有很大的用户量的。漏洞危害很大。
漏洞证明:
0x00 介绍
YXcms是一款基于PHP+MySql开发的网站管理系统。采用轻量级MVC设计模式,使得系统更加小巧灵活,避免了使用大型框架构建系统的笨重;APP应用方式使系统各功能板块之间耦合更低,易于安装卸载;自定义表功能,使得网站数据结构设计更加灵活,方便自定义各种留言、报名等功能,也可以将图集、文章拓展成为其他例如:产品、下载等栏目;独特的图片处理功能可以将图片管理细致到每个像素;独特的分类算法,实现了栏目无限分类的同时,又避免了普通递归分类算法造成的系统资源消耗。
而从1.2.1.5版本开始,yxcms开始增设前台用户上传图片功能,给我们本次漏洞形成提供了一个条件。
0x01代码分析
//index.php
直接看core.php 242行,调用了网址路由解析的函数urlRoute()
而后在244行调用函数appConfig()来加载app配置
利用证明:
poc:
环境:GPC=Off
0x01 前台注册一个账号
0x02 制作一个插入一句话木马的图片
0x03 上传头像 获得上传地址
upload/member/image/20141214/thumb_1418542014.jpg
0x04 包含之,漏洞exploit构成。
http://192.168.163.128/yxcms/index.php?r=..\..\upload\member\image\20141214\thumb_1418542014.jpg%00
0x05 解释
因为
只是用/来分割参数r提交来的数据,但是我们知道\跟/所代表的功能是一样的,只要能用\来提交就能绕过这个过滤。
此外
只是判断webroot/apps/$app/config.php是否存在,存在就包含
但是如果gpc=off的情况下
我们可以用thumb_1418542014.jpg%00截断后面的字符,那么is_file()检测的文件就是
webroot/apps/..\..\upload\member\image\20141214\thumb_1418542014.jpg,而这个文件就是我们刚才上传的带dirty code的图片,显然存在。漏洞形成。
该漏洞的唯一限制就是php的gpc开启与否,但是鉴于windows+php平台下,大部分默认没有开启gpc,还是有很大的用户量的。漏洞危害很大。
修复方案:
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2015-01-20 15:52
厂商回复:
最新状态:
暂无