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

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

缺陷编号:wooyun-2015-0124002

漏洞标题:php云人才系统越权替换简历

相关厂商:php云人才系统

漏洞作者: Zhe

提交时间:2015-07-02 18:34

修复时间:2015-09-30 18:36

公开时间:2015-09-30 18:36

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

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-07-02: 细节已通知厂商并且等待厂商处理中
2015-07-02: 厂商已经确认,细节仅向厂商公开
2015-07-05: 细节向第三方安全合作伙伴开放
2015-08-26: 细节向核心白帽子及相关领域专家公开
2015-09-05: 细节向普通白帽子公开
2015-09-15: 细节向实习白帽子公开
2015-09-30: 细节向公众公开

简要描述:

RT

详细说明:

版本:PHPYUN人才招聘系统4.0_beta
说明:简历创建的方式有两种,直接创建跟在线黏贴,问题出在,修改在线黏贴的简历

1.jpg


文件位置:\upload\member\user\model\expectq.class.php

function save_action(){
if($_POST['submit']){
$eid=(int)$_POST['eid'];
$data['doc']=str_replace("&","&",html_entity_decode($_POST['doc'],ENT_QUOTES,"GB2312"));
$_POST['lastupdate']=mktime();
$_POST['integrity']=100;
unset($_POST['eid']);
unset($_POST['submit']);
unset($_POST['doc']);
if(!$eid){
$num=$this->obj->DB_select_num("resume_expect","`uid`='".$this->uid."'");
if($num>=$this->config['user_number']&&$_GET['e']==''){
$this->ACT_msg("index.php?c=resume","你的简历数已经超过系统设置的简历数了");
}
$_POST['doc']='1';
$_POST['uid']=(int)$this->uid;
$_POST['defaults']=$num<=0?1:0;
$nid=$this->obj->insert_into("resume_expect",$_POST);
$resume = $this->obj->DB_select_once("resume","`uid`='".$this->uid."'","`name`,`edu`,`exp`,`sex`,`birthday`,`idcard_status`,`status`,`r_status`");

$this->obj->update_once("resume_expect",array(
"edu"=>$resume['edu'],
"exp"=>$resume['exp'],
"uname"=>$resume['name'],
"sex"=>$resume['sex'],
"birthday"=>$resume['birthday'],
"idcard_status"=>$resume['idcard_status'],
"status"=>$resume['status'],
"r_status"=>$resume['r_status'],
"photo"=>$resume['photo']
),array('uid'=>$this->uid));
$data['eid']=(int)$nid;
$data['uid']=(int)$this->uid;
$nid2=$this->obj->insert_into("resume_doc",$data);
if($nid2){
if($num==0){
$this->obj->update_once('resume',array('def_job'=>$nid),array('uid'=>$this->uid));
}
$nid2=$this->obj->DB_update_all("member_statis","`resume_num`=`resume_num`+1","uid='".$this->uid."'");
}
if($nid2)
{
$this->obj->member_log("添加粘贴简历",2,1);
$this->ACT_layer_msg("添加成功!",9,"index.php?c=resume");
}else{
$this->ACT_layer_msg("添加失败!",8,"index.php?c=resume");
}
}else{
$_POST['height_status']='0';
$this->obj->update_once("resume_expect",$_POST,array("id"=>$eid));//未对用户权限进行判断
$nid=$this->obj->update_once("resume_doc",$data,array("eid"=>$eid));//未对用户权限进行判断
if($nid)
{
$this->obj->member_log("更新粘贴简历",2,2);
$this->ACT_layer_msg("更新成功!",9,"index.php?c=resume");
}else{
$this->ACT_layer_msg("更新失败!",8,"index.php?c=resume");
}
}
}
}


漏洞证明:

账号A在线黏贴简历编号为1

2.jpg


账号B在线黏贴简历编号为2

3.jpg


账号B修改2的时候,保存修改时抓包,修改eid=1(即账号A的简历,可遍历,简历id递增)

4.jpg


即可成功修改账号A的简历

1.jpg


修复方案:

加个权限判断

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-07-02 18:35

厂商回复:

感谢提供!我们会尽快修复!

最新状态:

暂无