Fortify Audit Workbench 笔记 File Disclosure: Spring 文件泄露(Spring框架)
File Disclosure: Spring 文件泄露(Spring框架)
Abstract
若通过用户输入构造服务器端重定向路径,攻击者便能够下载应用程序二进制码(包括应用程序的类或 jar 文件) 或者查看受保护的目录下的任意文件。
Explanation
在以下情况下,会发生文件泄露:
- 数据从一个不可信赖的数据源进入程序。
- 数据用于动态地构造一个路径。
例 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"。
Fortify Audit Workbench 笔记 File Disclosure: Spring 文件泄露(Spring框架)的更多相关文章
- Fortify Audit Workbench 笔记索引
Password Management: Password in Configuration File(明文存储密码) https://www.cnblogs.com/mahongbiao/p/124 ...
- Fortify Audit Workbench 笔记 Password Management: Password in Configuration File(明文存储密码)
Password Management: Password in Configuration File(明文存储密码) Abstract 在配置文件中存储明文密码,可能会危及系统安全. Explana ...
- Fortify Audit Workbench 笔记 Access Control: Database
Abstract 如果没有适当的 access control,就会执行一个包含用户控制主键的 SQL 指令,从而允许攻击者访问未经授权的记录. Explanation Database access ...
- Fortify Audit Workbench 笔记 Cross-Site Scripting-Persistent
Cross-Site Scripting: Persistent Abstract 向 Web 浏览器发送非法数据会导致浏览器执行恶意代码. Explanation Cross-Site Script ...
- Fortify Audit Workbench 笔记 Path Manipulation
Path Manipulation Abstract 通过用户输入控制 file system 操作所用的路径,借此攻击者可以访问或修改其他受保护的系统资源. Explanation 当满足以下两个条 ...
- Fortify Audit Workbench 笔记 Privacy Violation 隐私泄露
Privacy Violation 隐私泄露 Abstract 对各种机密信息处理不当,如客户密码或社会保障号码,会危及到用户的个人隐私,这是一种非法行为. Explanation Privacy V ...
- Fortify Audit Workbench 笔记 Header Manipulation
Header Manipulation Abstract HTTP 响应头文件中包含未验证的数据会引发 cache-poisoning. cross-site scripting. cross-use ...
- Fortify Audit Workbench 笔记 Command Injection(命令注入)
Command Injection(命令注入) Abstract 执行不可信赖资源中的命令,或在不可信赖的环境中执行命令,都会导致程序以攻击者的名义执行恶意命令. Explanation Comman ...
- Fortify Audit Workbench 笔记 SQL Injection SQL注入
SQL Injection SQL注入 Abstract 通过不可信来源的输入构建动态 SQL 指令,攻击者就能够修改指令的含义或者执行任意 SQL 命令. Explanation SQL injec ...
随机推荐
- unity使用Animator做一个简单的动画
1.在unity的物体上添加Animator组件 2.在Project下的Assets下添加Animator Controller 3.在Animator Controller添加动作 4.在动作之间 ...
- Python变量详解
Python变量详解 目录 Python变量详解 一.变量的定义 二.变量组成的三部分 2.1 变量名 2.1.1 变量名的命名规范 2.1.2 变量名的命名风格 2.2 赋值符号 2.3 变量值 三 ...
- work of 1/4/2016
part 组员 今日工作 工作耗时/h 明日计划 工作耗时/h UI 冯晓云 修改UI增强显示鲁棒 6 完成UI页面切换部分 ...
- Some Modern Softwares' drawbacks: User experience 12/29/2015
In the nowadays, there are many APP in the PC or smart Phone. Some of them can't meet the customers' ...
- H - Bear and Three Balls
Limak is a little polar bear. He has n balls, the i-th ball has size ti. Limak wants to give one bal ...
- 详解 final 和 static
在我们上一篇博文中提到了 fianl 这个关键字,对于这个关键字,本人在初学时也耗费了极大地心血,甚至和师兄进行了激烈的讨论,并且,在我们讨论.尝试 以及 翻阅各种资料,最终得出了合适.易懂的解释. ...
- 初识Cobalt Strike
简介 Cobalt Strike 一款以metasploit为基础的GUI的框架式渗透工具,集成了端口转发.服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win dll木马生成,jav ...
- jmeter插件 --PerfMon Metrics Collector监控工具的使用
PerfMon Metrics Collector 用来监控 被压测服务器的cpu.内存.磁盘.网络等 1.服务端监控程序ServerAgent下载 https://github.com/undera ...
- 理解java容器底层原理--手动实现HashSet
HashSet的底层其实就是HashMap,换句话说HashSet就是简化版的HashMap. 直接上代码: package com.xzlf.collection2; import java.uti ...
- python学习笔记(五)---函数与类
函数 def为定义函数的一个标志 demo1: def greet_user(username): print("Hello, " + username.title() + &qu ...