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

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

缺陷编号:wooyun-2013-046787

漏洞标题:Thinksaas SQL注入漏洞

相关厂商:thinksaas.cn

漏洞作者: xfkxfk

提交时间:2013-12-23 11:26

修复时间:2014-03-23 11:26

公开时间:2014-03-23 11:26

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

Thinksaas SQL注入#5

详细说明:

Thinksaas SQL注入#5
积分兑换——物品编辑处,sql注入。
第一处:/app/redeem/action/edit.php

case "do":

$goodsid = intval($_POST['goodsid']);
$cateid = intval($_POST['cateid']);
$title = trim($_POST['title']);//问题在这里
$content = trim($_POST['content']);//问题在这里
$nums = intval($_POST['nums']);
$scores = intval($_POST['scores']);
$return = intval($_POST['return']);

$new['redeem']->update('redeem_goods',array(
'goodsid'=>$goodsid,
),array(
'cateid'=>$cateid,
'title'=>$title,//问题在这里
'content'=>$content,//问题在这里
'nums'=>$nums,
'scores'=>$scores,
'return'=>$return,
));


这里没有过滤,进入update:

public function update($table, $conditions, $row) {
$where = "";
if (empty ( $row ))
return FALSE;
if (is_array ( $conditions )) {
$join = array ();
foreach ( $conditions as $key => $condition ) {
$condition = $this->escape ( $condition );
$join [] = "{$key} = {$condition}";
}
$where = "WHERE " . join ( " AND ", $join );
} else {
if (null != $conditions)
$where = "WHERE " . $conditions;
}
foreach ( $row as $key => $value ) {
$vals [] = "`$key` = '$value'";
}
$values = join ( ", ", $vals );
$sql = "UPDATE " . dbprefix . "{$table} SET {$values} {$where}";

return $this->db->query ( $sql );
}


也没有过滤row的内容,导致我们的输入进入sql语句,造成注入。

漏洞证明:

新看看正常的积分兑换物品:

1.png


编辑物品,输入如下:

2.png


修改后,看看结果:

3.png


ok

修复方案:

过滤

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2013-12-23 14:28

厂商回复:

非常感谢反馈,正在修复中。

最新状态:

暂无