目录浏览漏洞

考虑了安全性后决定是否启用的叫功能,不考虑安全性而无条件启用的是漏洞

目录浏览原本是服务器自带的一项配置,但如果网站目录下存放有敏感文件,则可能引发严重的危害

所有的web server都有可能存在目录浏览漏洞,对于Flask、spring这种动态路由框架而言,泄露的信息相对安全,但对于传统架构下的IIS、Apache HTTPD、Nginx这种服务器来说,泄露的内容相对严重

IIS

若在配置中勾选了”目录浏览“复选框,且目录下没有默认显示的文件,则会显示当前目录下的文件结构

Nginx

在Nginx配置文件nginx.config中,如果配置了autoindex选项为on,则会开启目录浏览,如果访问的目录中,没有默认的index页面时,Nginx会将当前目录下的文件列表网页内容中

Apache

Apache中,若配置了Options Indexes选项则会开启目录浏览

......

防御

IIS
  1. 打开 IIS 管理器,然后导航至您要管理的级别;
  2. 在“功能视图”中,双击“目录浏览”;
  3. 在“操作”窗格中,选择“目录浏览”功能,单击“禁用”

Apache

  1. 修改Apache配置文件[httpd.conf],搜索“Options Indexes FollowSymLinks”,修改为“Options -Indexes FollowSymLinks”即可。

  2. Indexes 的作用就是当该目录下没有 index.html 文件时,就显示目录结构,去掉 Indexes,Apache 就不会显示该目录的列表了。

  3. 在Indexes前,加 + 代表允许目录浏览;加 – 代表禁止目录浏览。这样的话就属于整个Apache禁止目录浏览了。

  4. 通过.htaccess文件

    可以在根目录新建或修改 .htaccess 文件中添加如下代码就可以禁止Apache显示目录索引:

    <Files *>
        Options -Indexes
    </Files>
    

Nginx

  1. 找到Nginx配置文件中的“autoindex”,设置为“off”即可。

Tomcat

  1. 在应用的WEB-INF目录找到web.xml配置文件,将“listings”参数的初始化值设置为“false”即可。代码示例如下:

     <servlet-name>default</servlet-name>  
    
     <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>  
    
     <init-param>  
    
         <param-name>debug</param-name>  
    
         <param-value>0</param-value>  
    
     </init-param>  
    
     <init-param>  
    
         <param-name>listings</param-name>  
    
         <param-value>false</param-value>     //注意:如果这个地方是true,如果访问tomcat上的应用程序如果URL输入的是一个目录,而不是具体的文件,则会在浏览器上列出该目录下的文件列表,设置为false,就不会列出文件列表了  
    
     </init-param>  
    
     <load-on-startup>1</load-on-startup>  
    
posted @ 2024-05-29 18:01  Yuy0ung  阅读(69)  评论(0编辑  收藏  举报