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

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

缺陷编号: WooYun-2015-144424

漏洞标题: phpyun最新版两处注入(无视gpc)

相关厂商: php云人才系统

漏洞作者: Xser

提交时间: 2015-10-05 17:42

公开时间: 2016-01-11 15:32

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

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

Tags标签: 无

3人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-10-05: 细节已通知厂商并且等待厂商处理中
2015-10-06: 厂商已经确认,细节仅向厂商公开
2015-10-09: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2015-11-30: 细节向核心白帽子及相关领域专家公开
2015-12-10: 细节向普通白帽子公开
2015-12-20: 细节向实习白帽子公开
2016-01-11: 细节向公众公开

简要描述:

PHP云人才系统 phpyun v4.0正式版 build20150819
4.0已经重新改版了,别在用3.2和4.0比较

详细说明:

第一处出现在

/member/com/model/show.class.php中

3.2版本的源码是

code 区域
function delshow_action(){

$company_show=$this->obj->DB_select_all("company_show","`id` in (".$_POST['ids'].") and `uid`='".$this->uid."'","`picurl`");

if(is_array($company_show)&&$company_show){

foreach($company_show as $val){

$this->obj->unlink_pic(".".$val['picurl']);

}

$this->obj->DB_delete_all("company_show","`id` in (".$_POST['ids'].") and `uid`='".$this->uid."'","");

}

return true;

}



以下是4.0的

code 区域
function delshow_action(){ $ids=$_POST['ids']; $company_show=$this->obj->DB_select_all("company_show","`id` in (".$ids.") and `uid`='".$this->uid."'","`picurl`"); if(is_array($company_show)&&$company_show){ foreach($company_show as $val){ unlink_pic(".".$val['picurl']); } $this->obj->DB_delete_all("company_show","`id` in (".$ids.") and `uid`='".$this->uid."'",""); $this->obj->member_log("删除企业环境展示"); } return true;

POST来的值直接带入查询,没有单引号,所以可以注入 试试带入字符看看是否可以 url

code 区域
**.**.**.**/phpyun/member/index.php?c=show&act=delshow

postdata

code 区域
ids=aaaa#

QQ截图20151001141515.png

成功带入

code 区域
2015/10/1 14:14	SELECT `picurl` FROM `phpyun_company_show` WHERE `id` in (aaaa#) and `uid`='1'





第二处出现在/member/user/model/show.class.php中



第二处改的比较明显

3.2是用GET方法获取del参数

但是4.0改用了POST的方法获取,但是没有过滤

3.2的

code 区域
$delid=$_GET['del'];//GET的del没有过滤,传给delid



4.0的

code 区域
$ids=$_POST['ids']





以下是3.2源码

code 区域
function job(){

。。。

570行 if($_GET['del'] || is_array($_POST['checkboxid']))

{

if(is_array($_POST['checkboxid'])){

$layer_type=1;

$delid=$this->pylode(",",$_POST['checkboxid']);

}else if($_GET['del']){

$layer_type=0;

$delid=$_GET['del'];//GET的del没有过滤,传给delid

}

$rows=$this->obj->DB_select_all("company_job","`uid`='".$this->uid."' and `id` in (".$delid.")","`state`");

$nid=$this->obj->DB_delete_all("company_job","`uid`='".$this->uid."' and `id` in (".$delid.")"," ");

echo $nid;

$this->obj->DB_delete_all("company_job_link","`uid`='".$this->uid."' and `jobid` in (".$delid.")"," ");

。。。

}





以下是4.0的

code 区域
function delshow_action(){ $ids=$_POST['ids']; $resume_show=$this->obj->DB_select_all("resume_show","`id` in (".$ids.") and `uid`='".$this->uid."'","`picurl`"); if(is_array($resume_show)&&$resume_show){ foreach($resume_show as $val){ unlink_pic(".".$val['picurl']); } $this->obj->DB_delete_all("resume_show","`id` in (".$ids.") and `uid`='".$this->uid."'",""); $this->obj->member_log("删除作品案例"); } return true;

POST来的值直接带入查询,没有单引号,所以可以注入 试试带入字符看看是否可以 url

code 区域
**.**.**.**/phpyun/member/index.php?c=show&act=delshow

postdata

code 区域
ids=aaaa#

QQ截图20151001135656.png

可以看到成功带入

code 区域
2015/10/1 13:56	SELECT `picurl` FROM `phpyun_resume_show` WHERE `id` in (aaaa#) and `uid`='2'







漏洞证明:

第一处出现在

/member/com/model/show.class.php中

3.2版本的源码是

code 区域
function delshow_action(){

$company_show=$this->obj->DB_select_all("company_show","`id` in (".$_POST['ids'].") and `uid`='".$this->uid."'","`picurl`");

if(is_array($company_show)&&$company_show){

foreach($company_show as $val){

$this->obj->unlink_pic(".".$val['picurl']);

}

$this->obj->DB_delete_all("company_show","`id` in (".$_POST['ids'].") and `uid`='".$this->uid."'","");

}

return true;

}



以下是4.0的

code 区域
function delshow_action(){ $ids=$_POST['ids']; $company_show=$this->obj->DB_select_all("company_show","`id` in (".$ids.") and `uid`='".$this->uid."'","`picurl`"); if(is_array($company_show)&&$company_show){ foreach($company_show as $val){ unlink_pic(".".$val['picurl']); } $this->obj->DB_delete_all("company_show","`id` in (".$ids.") and `uid`='".$this->uid."'",""); $this->obj->member_log("删除企业环境展示"); } return true;

POST来的值直接带入查询,没有单引号,所以可以注入 试试带入字符看看是否可以 url

code 区域
**.**.**.**/phpyun/member/index.php?c=show&act=delshow

postdata

code 区域
ids=aaaa#

QQ截图20151001141515.png

成功带入

code 区域
2015/10/1 14:14	SELECT `picurl` FROM `phpyun_company_show` WHERE `id` in (aaaa#) and `uid`='1'





第二处出现在/member/user/model/show.class.php中



第二处改的比较明显

3.2是用GET方法获取del参数

但是4.0改用了POST的方法获取,但是没有过滤

3.2的

code 区域
$delid=$_GET['del'];//GET的del没有过滤,传给delid



4.0的

code 区域
$ids=$_POST['ids']





以下是3.2源码

code 区域
function job(){

。。。

570行 if($_GET['del'] || is_array($_POST['checkboxid']))

{

if(is_array($_POST['checkboxid'])){

$layer_type=1;

$delid=$this->pylode(",",$_POST['checkboxid']);

}else if($_GET['del']){

$layer_type=0;

$delid=$_GET['del'];//GET的del没有过滤,传给delid

}

$rows=$this->obj->DB_select_all("company_job","`uid`='".$this->uid."' and `id` in (".$delid.")","`state`");

$nid=$this->obj->DB_delete_all("company_job","`uid`='".$this->uid."' and `id` in (".$delid.")"," ");

echo $nid;

$this->obj->DB_delete_all("company_job_link","`uid`='".$this->uid."' and `jobid` in (".$delid.")"," ");

。。。

}





以下是4.0的

code 区域
function delshow_action(){ $ids=$_POST['ids']; $resume_show=$this->obj->DB_select_all("resume_show","`id` in (".$ids.") and `uid`='".$this->uid."'","`picurl`"); if(is_array($resume_show)&&$resume_show){ foreach($resume_show as $val){ unlink_pic(".".$val['picurl']); } $this->obj->DB_delete_all("resume_show","`id` in (".$ids.") and `uid`='".$this->uid."'",""); $this->obj->member_log("删除作品案例"); } return true;

POST来的值直接带入查询,没有单引号,所以可以注入 试试带入字符看看是否可以 url

code 区域
**.**.**.**/phpyun/member/index.php?c=show&act=delshow

postdata

code 区域
ids=aaaa#

QQ截图20151001135656.png

可以看到成功带入

code 区域
2015/10/1 13:56	SELECT `picurl` FROM `phpyun_resume_show` WHERE `id` in (aaaa#) and `uid`='2'





修复方案:

改为"`id` in ('".$ids."')

加入单引号就可以了

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-10-06 13:25

厂商回复:

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

最新状态:

暂无


漏洞评价:

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

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

评价

  1. 2015-10-05 17:45 | 小威 ( 普通白帽子 | Rank:531 漏洞数:86 | 活到老,学到老!)
    0

    两处啥?

  2. 2015-10-05 19:29 | 末影人 ( 实习白帽子 | Rank:71 漏洞数:20 | 末影人(Enderman)是一个三个方格高的人形生...)
    0

    两处什么

  3. 2015-10-05 22:20 | 从容 ( 普通白帽子 | Rank:359 漏洞数:94 | Enjoy Hacking Just Because It's Fun | ...)
    0

    两处啥?

  4. 2015-10-06 21:43 | 金枪银矛小霸王 ( 普通白帽子 | Rank:141 漏洞数:29 | 不会挖洞洞的猿猿不是好学生)
    0

    两处啥?

  5. 2015-10-07 17:03 | 找寻者 ( 路人 | Rank:2 漏洞数:1 | 学习啊)
    0

    9:10收10WB,手续协商...进社区学习ing

  6. 2015-10-11 08:21 | menmen519 ( 普通白帽子 | Rank:894 漏洞数:160 | http://menmen519.blog.sohu.com/)
    0

    这么快就有奖金了,@疯狗 @Finger 给我底下的也发了吧,没钱吃饭了

  7. 2016-02-13 22:43 | 1c3z ( 普通白帽子 | Rank:297 漏洞数:63 | @)!^)
    0

    难道可以无视cms自带的db.safety.php和webscan360.php?

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