iis物理路径泄漏 物理路径泄露的探讨 - IIS - 服务器之家

服务器之家

专注于服务器技术!
当前位置:首页 > Web服务器 > IIS

iis物理路径泄漏 物理路径泄露的探讨

发布时间:2017-04-09 来源:服务器之家

原理

  物理路径泄露属于低风险等级缺陷,它的危害一般被描述为“攻击者可以利用此漏洞得到信息,来对系统进一步地攻击”。提供Web、FTP、SMTP等公共服务的服务器都有可 能出现物理路径泄露的问题。

  我们比较常见的是Web服务器的路径泄露。导致Web服务器路径泄露的原因很多,可能是Web平台本身、脚本语言解释器、引擎插件、组件、辅助程序等一些原因造成的,也有可能是脚本编写错误所导致的。

  很多时候,攻击者会精心构造一个畸形、超长或不存在的文件请求,而这个请求是Web服务器没有预料且不能正确处理的,这时往往会返回出错信息――最直观的就是暴露物理路径。

  譬如,对于很多CGI论坛来说,提交一个不存在的CGI文件请求,或者提交一个没有输出的CGI文件的请求,服务器就会将网站本身所有的物理路径给暴露出来。笔者做过很多试验,非常轻松就拿到了对方网站的物理路径。

  危害

  得到物理路径到底有什么用?这是很多攻击者关心的问题。有些时候它能给攻击者带来一些有用的信息,比如说:可以大致了解系统的文件目录结构;可以看出系统所使用的第三方软件;也说不定会得到一个合法的用户名。

  防范方法

  漏洞虽小,但“千里之堤,溃于蚁穴”。防范方法也是有的,这里选用IIS来讲解。首先你得保证使用最新版本并打了最新补丁,包括IIS、脚本语言解释器(如Activeperl)、引擎插件、组件、辅助程序;其次是配置方面的问题,一定要查看“文件是否存在”选项是否存在。

  具体操作:“IIS→站点→属性→主目录→配置→应用程序映射→编辑→检查文件是否存在”。这样做不仅可避免“请求不存在文件”时泄露路径,还可阻挡一些其它攻击,如拒绝服务或溢出攻击。

  还记得绿盟发现的ActivePerl所带的一个动态链接库(perllS.dll)在处理超长文件名时存在的一个缓冲区溢出漏洞吗?最简单的解决方法就是禁止服务器检查文件是否存在,再者便是要求程序员编写规范脚本,这也是很重要的。

  错误处理是各种语言编程中一个很重要的部分,虽然每种语言都提供了完善的出错处理函数,但你也得正确使用它。如Perl中的“die”函数,如果没有在错误信息后面加上“ ”的话,就很可能会导致物理路径泄露。然而,脚本程序员却一直忽略了这些问题,任何时候程序员都应该充分考虑,给出完整的出错处理方案。

  物理路径泄露很危险,要彻底完整地分析它需要很多方面的知识,可惜一直没人来专门讨论这个话题。笔者今天在此起个抛砖引玉的作用,希望与在这方面有比较深入研究的朋友继续讨论。