灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2922回复:0

新浪漏洞SAE网络沙箱突破

楼主#
更多 发布于:2012-08-24 21:50

sae支持的流非常多,但是真正被封装起来的其实只有一个http协议,封装的目的是对用户产生的请求能够进行控制,譬如限制访问的目的地址和对请求数量等做更精粒度的控制,而对于原生的譬如ftp协议并没有进行限制,这个时候其实我们可以利用这个做一个简单的内网端口扫描器:


echo(file_get_contents('ftp:// www.atcpu.com :22/111'));
由于sae对错误的处理偏向开发者太过有好,导致通过捕获错误,我们可以看到是否是网络不可达,端口未开放还是协议不匹配,这样我们甚至可以探测出sae与内部网络的隔离程度
ftp协议毕竟不是特别友好,而对于已经封装的http协议我们发现stream_wrapper_unregister和stream_wrapper_restore并没有禁用,于是通过这两个函数我们可以恢复原生的http请求,向所有我们想发起的地方发起http请求了:


if ( in_array( "http", stream_get_wrappers() ) ) {

                 stream_wrapper_unregister("http");

       }



       stream_wrapper_restore("http"));
修复方案:目前SAE已经封禁掉相关函数和修复了相关代码

喜欢0 评分0
游客

返回顶部