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

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

缺陷编号:wooyun-2014-051677

漏洞标题:startbbs设计缺陷可能导致数据库面临泄露风险

相关厂商:startbbs.com

漏洞作者: 寂寞的瘦子

提交时间:2014-02-24 16:20

修复时间:2014-05-25 16:21

公开时间:2014-05-25 16:21

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:12

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

努力挖掘中.....

详细说明:

有的时候勤劳害死人啊有木有,等下回看到~~
在管理员的后台集成了数据库备份的功能,这是好事,极大的提高了bbs的易用性。

QQ图片20130222104733.jpg

QQ图片20130222104810.jpg


然后这边数据库的备份文件是任意用户可以访问并且下载之的,当时肉眼一看就能看出这个命名是多么的有规范!
看源码/app/controllers/admin/db_admin.php第61行

$this->load->dbutil();
$backup=$this->dbutil->backup($prefs);
$file='mysql'.time().'.sql';
if(write_file(FCPATH.'data/backup/'.$file, $backup)){
$this->session->set_flashdata('error', '备份数据库'.$file.'成功!');
redirect('admin/db_admin/backup');


$fiel也就是我们的数据库备份文件是一个字符串mysql加上一个unix时间戳命名的!
这被穷举起来是多么轻松的一件事(PS:轻松个蛋)

漏洞证明:

只要写个脚步就可以了,因为你访问一个不存在的链接是返回404,而当我们访问存在的时候是200或者304,302这些。正好burp某扩展可以帮助我们完成这些。具体过程我就不再赘述,wooyun上太多了。

QQ图片20130222110231.jpg


这边的771就是我刚才备份的文件尝试访问

QQ图片20130222110356.jpg

修复方案:

加一个随机函数进去就可以了,现在知道管理员备份太勤劳不记得是一件好事....
越勤劳离我们的攻击范围越广越迅速!

版权声明:转载请注明来源 寂寞的瘦子@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:5

确认时间:2014-02-26 23:13

厂商回复:

如果随机从1-9,a-z中生成文件名的话,会不会好一些呢?

最新状态:

2014-03-04:谢谢提醒,已从模板中去掉这个调用


漏洞评价:

评论

  1. 2014-02-25 18:39 | 梧桐雨 认证白帽子 ( 核心白帽子 | Rank:1576 漏洞数:184 | 关注技术与网络安全)

    看了下代码 不知道楼主说的是不是时间戳的问题...

  2. 2014-02-25 18:56 | 寂寞的瘦子 ( 普通白帽子 | Rank:242 漏洞数:53 | 一切语言转汇编理论)

    @梧桐雨 恩是的,目测正确~~

  3. 2014-02-25 19:08 | 梧桐雨 认证白帽子 ( 核心白帽子 | Rank:1576 漏洞数:184 | 关注技术与网络安全)

    @寂寞的瘦子 当初也意识到这个问题,但是后来自己写了个程序去跑 还是比较难测漏的- -不知道你这里面有没好的方法不

  4. 2014-02-25 19:20 | 寂寞的瘦子 ( 普通白帽子 | Rank:242 漏洞数:53 | 一切语言转汇编理论)

    @梧桐雨 请求url然后抓取http返回状态码,我用的burp