写点什么

WEB-INF/web.xml 泄露

  • 2022-11-05
    河南
  • 本文字数:747 字

    阅读完需:约 2 分钟

🍀 作者:我是一个茶壶

📌 每日一诗:  

巴山楚水凄凉地,二十三年弃置身。  

怀旧空吟闻笛赋,到乡翻似烂柯人。  

沉舟侧畔千帆过,病树前头万木春。  

今日听君歌一曲,暂凭杯酒长精神。

🎨 ps:今天谈谈 WEB-INF/web.xml 泄露


 WEB-INF 是 Java 的 WEB 应用的安全目录。如果想在页面中直接访问其中的文件,必须通过 web.xml 文件对要访问的文件进行相应映射才能访问。

WEB-INF 主要包含一下文件或目录:



/WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
/WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中
/WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
/WEB-INF/src/:源码目录,按照包名结构放置各个java文件。
/WEB-INF/database.properties:数据库配置文件
复制代码


漏洞成因:


 通常一些 web 应用我们会使用多个 web 服务器搭配使用,解决其中的一个 web 服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等。在使用这种架构的时候,由于对静态资源的目录或文件的映射配置不当,可能会引发一些的安全问题,导致 web.xml 等文件能够被读取。


漏洞检测以及利用方法:


 通过找到 web.xml 文件,推断 class 文件的路径,最后直接 class 文件,在通过反编译 class 文件,得到网站源码。


 一般情况,jsp 引擎默认都是禁止访问 WEB-INF 目录的,Nginx 配合 Tomcat 做均衡负载或集群等情况时,问题原因其实很简单,Nginx 不会去考虑配置其他类型引擎(Nginx 不是 jsp 引擎)导致的安全问题而引入到自身的安全规范中来(这样耦合性太高了),修改 Nginx 配置文件禁止访问 WEB-INF 目录就好了: location ~ ^/WEB-INF/* { deny all; } 或者 return 404; 或者其他!

发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2022-11-01 加入

还未添加个人简介

评论

发布
暂无评论
WEB-INF/web.xml泄露_WEB安全_我是一个茶壶_InfoQ写作社区