来源:自学PHP网 时间:2015-04-17 13:03 作者: 阅读:次
[导读] sae支持的流非常多,但是真正被封装起来的其实只有一个http协议,封装的目的是对用户产生的请求能够进行控制,譬如限制访问的目的地址和对请求数量等做更精粒度的控制,而对于原...
sae支持的流非常多,但是真正被封装起来的其实只有一个http协议,封装的目的是对用户产生的请求能够进行控制,譬如限制访问的目的地址和对请求数量等做更精粒度的控制,而对于原生的譬如ftp协议并没有进行限制,这个时候其实我们可以利用这个做一个简单的内网端口扫描器:
echo(file_get_contents('ftp:// www.2cto.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已经封禁掉相关函数和修复了相关代码 摘自 结界师@乌云 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com