zoukankan      html  css  js  c++  java
  • Fortify Audit Workbench 笔记 File Disclosure: Spring 文件泄露(Spring框架)

    File Disclosure: Spring 文件泄露(Spring框架)

    Abstract

    若通过用户输入构造服务器端重定向路径,攻击者便能够下载应用程序二进制码(包括应用程序的类或 jar 文件) 或者查看受保护的目录下的任意文件。

    Explanation

    在以下情况下,会发生文件泄露:

    1. 数据从一个不可信赖的数据源进入程序。
    2. 数据用于动态地构造一个路径。
      例 1: 下面的代码会接受不可信赖的数据,并使用其构造服务器端转发所使用的路径。
    ...
    String returnURL = request.getParameter("returnURL");
    return new ModelAndView(returnURL);
    ...
    

    如果攻击者使用请求参数提供与某个敏感文件位置相匹配的 URL,他们将能够查看该文件。 例如,使用"http://www.yourcorp.com/webApp/logic?returnURL=WEB-INF/applicationContext.xml" 将能够查看该应用程序的 applicationContext.xml 文件。 一旦攻击者掌握了 applicationContext.xml 的信息,他们便能够定位和下载 applicationContext.xml 中引用的其他配置文件,甚至类文件或 jar 文件。 这样一来,攻击者将能够获得与应用程序有关的敏感信息,并以之为目标发动其他类型的攻击。

    Recommendation

    请不要要使用不可信赖的数据请求服务器端资源。 而应使用介于位置与路径之间的间接方法。 请不要使用:

    <a href="http://www.yourcorp.com/webApp/logic?nextPage=WEB-INF/signup.jsp">New Customer</a>
    

    而应使用:

    <a href="http://www.yourcorp.com/webApp/logic?nextPage=newCustomer">New Customer</a>
    

    服务器端逻辑应具有逻辑名称与服务器端路径的映射(以逻辑名称为键),在上例中,键 "newCustomer" 中存储的路径应为 "/WEB-INF/signup.jsp"。

  • 相关阅读:
    06软件构架实践阅读笔记之六
    05软件构架实践阅读笔记之五
    04软件构架实践阅读笔记之四
    03软件构架实践阅读笔记之三
    02软件构架实践阅读笔记之二
    01软件构架实践阅读笔记之一
    实训第四天
    实训第三天
    实训第二天
    实训第一天
  • 原文地址:https://www.cnblogs.com/mahongbiao/p/12862858.html
Copyright © 2011-2022 走看看