漏洞概要
关注数(24)
关注此漏洞
漏洞标题:74CMS设计缺陷导致被脱裤(有服务器环境限制)
提交时间:2014-05-08 19:00
修复时间:2014-08-06 19:00
公开时间:2014-08-06 19:00
漏洞类型:设计缺陷/逻辑错误
危害等级:中
自评Rank:15
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2014-05-08: 细节已通知厂商并且等待厂商处理中
2014-05-09: 厂商已经确认,细节仅向厂商公开
2014-05-12: 细节向第三方安全合作伙伴开放
2014-07-03: 细节向核心白帽子及相关领域专家公开
2014-07-13: 细节向普通白帽子公开
2014-07-23: 细节向实习白帽子公开
2014-08-06: 细节向公众公开
简要描述:
~~
详细说明:
首先我们来科普一下windows的短文件名,也就是下面我们要用到的。
WooYun: ThinkSAAS某处设计缺陷可能导致被拖库利用(环境与功能条件限制)
见上面漏洞的科普介绍,这里我们直接利用吧。
74cms的数据库备份如下:
备份的文件名为:
$file = !empty($_GET['file']) ? trim($_GET['file']) : date("Ymd_", time()) . get_rand_char(5).uniqid()
备份的地址为/data/backup/filename.sql
也就是默认情况下数据库备份文件的filename为:
年月日_5位大小写字母+uniqid()_卷的number.sql
例如:20140508_HaHzj536b51968ec34_1.sql
利用windows的短文件名我们可以访问数据库备份文件如下:
20140508_HaHzj536b51968ec34_1.sql == 201405~1.sql
漏洞证明:
在不知道备份文件名的情况下,我们可以来利用段文件名爆破一下:
很快得到短文件名:201405~1.sql
修复方案:
1、如果您是Windows服务器,请将备份文件存到WEB不可访问的位置;
2、将文件名随机长度小于<9,就不会出来短文件名,当然文件名最好是字母随机,而不是数字随机;
3、将文件所放目录进行随机化处理。
4、把备份数据库文件后缀为php,在最前面加一段代码:<?exit('error');?>,使其无法访问此文件。
5、其他
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:20
确认时间:2014-05-09 15:31
厂商回复:
感谢您对骑士的支持!
最新状态:
暂无
漏洞评价:
评论
-
2014-05-08 19:51 |
U神 ( 核心白帽子 | Rank:1285 漏洞数:142 | 感谢乌云,知恩不忘,其实我一直都在乌云默...)
-
2014-05-08 20:42 |
xfkxfk ( 核心白帽子 | Rank:2179 漏洞数:338 | 呵呵!)