【漏洞挖掘】——62、WEB-INF/web.xml 泄露

本文介绍了WEB-INF/web.xml信息泄露这一常见安全问题,详细阐述了WEB-INF目录的结构及其重要性。攻击者可能通过访问web.xml获取Web应用配置信息。文章提到了漏洞检测方法,包括直接尝试访问特定URL。为了防御,建议加密敏感信息,定期更新应用,限制访问权限,并使用安全框架。代码审查也是防止此类漏洞的关键步骤。
基本介绍

WEB-INF/web.xml信息泄露是一种常见的安全问题,通常发生在Web应用程序未被正确配置或管理的情况下,攻击者可以通过暴力破解或者其他手段访问WEB-INF目录下的web.xml文件从而获得Web应用程序的配置信息,例如:安全配置、数据库连接信息、API密钥等

目录介绍

WEB-INF是Java Web应用程序的保护目录,存放的是与外界不应该直接交互的文件和目录,它一般位于Web应用程序的根目录下,包含以下文件和目录,对此攻击者可以通过找到web.xml文件,推断class文件的路径,最后直接class文件,再通过反编译class文件得到网站源码

  • classes目录:存放Web应用程序的Java类文件
  • lib目录:存放Web应用程序所需的Java类库文件,例如:JAR文件
  • web.xml文件:存放Web应用程序的配置信息,例如Servlet、过滤器、错误页面等
  • tld目录:存放标签库描述文件(Tag Library Descriptor),用于描述JSP页面中使用的自定义标签库
  • jsp目录:存放JSP文件,这些JSP文件不能直接通过URL访问,只能通过Servlet或其他Java类进行访问
  • tags目录:存放自定义标签文件,这些标签文件用于扩展JSP标准标签库
  • 空目录:包含一个空目录,用于在打包Web应用程序时,保留空目录结构
漏洞检测

直接访问如下URL地址:

### 解决 Spring Boot 中找不到静态资源 `WEB-INF/userList.jsp` 的问题 在 Spring Boot 应用程序中,默认情况下,静态文件会从 `/static`, `/public`, `/resources` 或者 `/META-INF/resources` 文件夹下加载[^1]。然而,对于 JSP 页面来说,这些默认路径并不适用。 #### 配置 JSP 支持 为了使应用程序能够找到并渲染位于 `WEB-INF` 下的 JSP 文件,需要做如下调整: - **确保依赖项存在** 确认项目中的构建工具(如 Maven 或 Gradle)已经包含了对 Servlet API 和 JSP 的支持。例如,在 pom.xml 中应有类似下面的内容来引入 Tomcat 对 JSP 的支持: ```xml <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> ``` - **修改 application.properties 或 application.yml** 设置视图解析器的相关属性以便正确处理 `.jsp` 后缀的模板文件。可以在配置文件里加入以下内容: ```properties spring.mvc.view.prefix=/WEB-INF/ spring.mvc.view.suffix=.jsp ``` 这告诉应用所有的请求都会被映射到对应的 JSP 路径上,并附加 `.jsp` 扩展名作为后缀。 - **创建控制器类** 编写一个简单的控制器用于返回指定页面名称给前端展示层。比如: ```java import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class UserController { @GetMapping("/users") public String showUserList() { return "userList"; // 这里的 userList 将会被替换为 /WEB-INF/userList.jsp } } ``` 通过上述更改之后,当访问 `/users` URL 时,应该可以正常显示位于 `src/main/webapp/WEB-INF/userList.jsp` 的网页了。 需要注意的是,如果仍然遇到无法定位资源的情况,则可能是因为项目的打包方式不兼容 JSP 渲染机制。通常建议将此类 Web 应用构建成 WAR 形式的包而非 JAR 包形式部署至外部容器运行。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FLy_鹏程万里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值