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

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

缺陷编号: WooYun-2012-06052

漏洞标题: HDWiki 5.1 任意用户密码修改漏洞

相关厂商: 互动在线(北京)科技有限公司

漏洞作者: 牛奶坦克

提交时间: 2012-04-14 19:06

公开时间: 2012-04-19 19:07

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

危害等级: 高

自评Rank: 18

漏洞状态: 漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签: 第三方不可信程序 设计缺陷/边界绕过 HDWiki 越权操作 平行权限

1人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-04-14: 细节已通知厂商并且等待厂商处理中
2012-04-19: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

HDWiki重置密码存在一处逻辑漏洞,导致攻击者可以修改任意用户密码。

详细说明:

code 区域
control/user.php
function dogetpass(){
......
}elseif(isset($this->post['verifystring'])){
$uid=$this->post['uid'];
$encryptstring=$this->post['verifystring'];
$idstring=$_ENV['user']->get_idstring_by_uid($uid,$this->time);
if($idstring==$encryptstring){
//没考虑到提交为空与查询返回为空的情况,一个逻辑错误
$newpass = $this->post['password'];
$renewpass = $this->post['repassword'];
$error=$_ENV['user']->checkpassword($newpass,$renewpass);
if($error=='OK'){
//eval($this->plugin["ucenter"]["hooks"]["getpass"]);
UC_OPEN && $msg=$_ENV['ucenter']->getpass($uid,$newpass);
$_ENV['user']->update_field('password',md5($newpass),$uid);
$_ENV['user']->update_getpass($uid);
$this->message($this->view->lang['resetPassSucess'],'index.php?user-login',0);
}else{
$this->message($error,'BACK',0);
}
}else{
$this->message($this->view->lang['resetPassMessage'], WIKI_URL ,0);
}
}

function get_idstring_by_uid($uid,$time){ //取验证码
return $this->db->result_first("SELECT code FROM ".DB_TABLEPRE."activation WHERE uid=$uid AND available=1 AND type=1 AND time>($time-3*24*3600) ORDER BY time DESC");
}

漏洞证明:

http://wiki.somesite.com/index.php?user-getpass-用户id



正常情况应该是这样,user-getpass-1-xxx,但是因为逻辑问题,可以绕过去。

这种情况下表单内verifystring变量为空,直接输入两次新密码就重置了。



其实,这里还有个注射的,取验证码的时候。。。

修复方案:

逻辑问题,考虑一下检测码为空,并且数据库内没有该用户重置记录的情况。



临时解决方案:

}elseif(isset($this->post['verifystring'])){

$uid=$this->post['uid'];

$encryptstring=$this->post['verifystring'];

$idstring=$_ENV['user']->get_idstring_by_uid($uid,$this->time);

/* 判断一下空的情况 */

if(empty($encryptstring) || empty($idstring)){

$this->message($error,'BACK',0);

}

版权声明:转载请注明来源 牛奶坦克@乌云


漏洞回应

厂商回应:

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

忽略时间:2012-04-19 19:07

厂商回复:

最新状态:

2012-04-20:有三个漏洞 1、安装时如果语言包不存在时暴漏路径漏洞 2、取概述信息时漏洞修复 3、评论时漏洞修复 已经全部修复,安装包文件已经交给光明进行替换,补丁包已经发到论坛上了 地址如下: http://kaiyuan.hudong.com/bbs/viewthread.php?tid=111695&extra=page%3D1 NOTE:上传图片漏洞很早之前已经修复了,不在此次之内。


漏洞评价:

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

漏洞评价(少于3人评价):
登陆后才能进行评分
0%
100%
0%
0%
0%

评价

  1. 2012-04-14 19:30 | horseluke ( 普通白帽子 | Rank:116 漏洞数:18 | Realize the dream in earnest.)
    3

    最近都在研究wiki?之前才看到关于某大牛爆这个系统的SQL注入获取管理员MD5密码...

  2. 2012-04-14 19:32 | 牛奶坦克 ( 普通白帽子 | Rank:355 漏洞数:21 | 晚安,牛奶)
    2

    @horseluke 注入太多了,没意思,找些逻辑问题:)

  3. 2012-04-14 19:41 | horseluke ( 普通白帽子 | Rank:116 漏洞数:18 | Realize the dream in earnest.)
    3

    @牛奶坦克 囧,还想拿它来搭建一个wiki平台呢,看来还是只能用mediawiki了...

  4. 2012-04-14 21:10 | Jannock 认证白帽子 ( 核心白帽子 | Rank:2418 漏洞数:214 | 关注技术与网络安全(招人中,有兴趣请私信...)
    3

    主要官方都不负责,上个漏洞都直接公开了。。。用户伤不起呀。。。

  5. 2012-04-15 05:36 | 北北 ( 路人 | Rank:25 漏洞数:5 | 广告位招租。有阿里、万网的漏洞私信给我有...)
    5

    @Jannock HDWiki以前干过一件事,当时有个上传漏洞,他只检查conten-type前五个字符image/ ,那漏洞当时他们后台自己(偷偷?)修复之后一不提示用户打补丁,二前台显示最后更新日期还是很久之前,也就是说之前的用户都苦逼的用着有漏洞的程序官方还不告诉他们有补丁了。

  6. 2012-04-15 22:50 | 牛奶坦克 ( 普通白帽子 | Rank:355 漏洞数:21 | 晚安,牛奶)
    2

    @Jannock @北北 额,这个厂商啊。。。

  7. 2012-04-19 16:17 | 紫梦芊 ( 普通白帽子 | Rank:138 漏洞数:9 | 踏踏实实做测试)
    1

    @horseluke mediawiki 好些 或者dokuwiki

  8. 2012-06-19 23:54 | _Evil ( 普通白帽子 | Rank:431 漏洞数:61 | 万事无他,唯手熟尔。农民也会编程,别指望天...)
    1

    验证码 uid注入 time>不知道用error base注入行不行

  9. 2012-06-20 00:02 | _Evil ( 普通白帽子 | Rank:431 漏洞数:61 | 万事无他,唯手熟尔。农民也会编程,别指望天...)
    2

    @xsser 就是不明白为什么要输入两次新密码才能修改

  10. 2012-12-27 23:44 | 小胖胖要减肥 认证白帽子 ( 普通白帽子 | Rank:686 漏洞数:101 )
    1

    @_Evil 确认密码啊,万一你输了第一次都不记得输什么了,或自己输错了又不知道

  11. 2014-04-23 00:07 | 小贱人 ( 路人 | Rank:4 漏洞数:3 | 资深菜鸟,)
    0

    mark

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