wvss漏洞扫描和fortify漏洞扫描的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wvss漏洞扫描和fortify漏洞扫描的区别相关的知识,希望对你有一定的参考价值。
wvss漏洞扫描是国内一家公司,wvss漏洞扫描是Web动态黑盒。fortify漏洞扫描是国外的惠普,fortify有两种一种是静态源代码安全扫描,一种是Web动态应用的扫描。
fortify漏洞扫描比较全面,功能强大!多的不说了 参考技术A WVS是黑盒的产品,fortify 是白盒的。
Fortify漏洞之Path Manipulation(路径篡改)
继续对Fortify的漏洞进行总结,本篇主要针对 Path Manipulation(路径篡改)的漏洞进行总结,如下:
1、Path Manipulation(路径篡改)
1.1、产生原因:
当满足以下两个条件时,就会产生 path manipulation 错误:
1. 攻击者可以指定某一文件系统操作中所使用的路径。
2. 攻击者可以通过指定特定资源来获取某种权限,而这种权限在一般情况下是不可能获得的。
例如,在某一程序中,攻击者可以获得特定的权限,以重写指定的文件或是在其控制的配置环境下运行程序。
例 1: 下面的代码使用来自于 HTTP 请求的输入来创建一个文件名。程序员没有考虑到攻击者可能使用像“../../tomcat/conf/server.xml”一样的文件名,从而导致应用程序删除它自己的配置文件。
String rName = request.getParameter("reportName");
File rFile = new File("/usr/local/apfr/reports/" + rName);
...
rFile.delete()
例 2: 下面的代码使用来自于配置文件的输入来决定打开哪个文件,并返回给用户。如果程序在一定的权限下运行,且恶意用户能够篡改配置文件,那么他们可以通过程序读取系统中以 .txt 扩展名结尾的所有文件。
fis = new FileInputStream(cfg.getProperty("sub")+".txt");
amt = fis.read(arr);
out.println(arr);
1.2、修复方案:
方案一:创建一份合法资源名的列表,并且规定用户只能选择其中的文件名。通过这种方法,用户就不能直接由自己来指定资源的名称了。
但在某些情况下,这种方法并不可行,因为这样一份合法资源名的列表过于庞大、难以跟踪。因此,程序员通常在这种情况下采用方案二,黑名单+白名单 双重过滤路径的办法。
方案二:在输入之前,黑名单会有选择地拒绝或避免潜在的危险字符(例如下面例子过滤了..字符)。同时创建一份白名单,允许其中的字符出现在资源名称中,且只接受完全由这些被认可的字符组成的输入。
图1.2.1:合法路径的白名单字符
图1.2.2:过滤路径的非法字符公共方法
以上是关于wvss漏洞扫描和fortify漏洞扫描的区别的主要内容,如果未能解决你的问题,请参考以下文章
Fortify:如何使用 fortify rest api 获取项目下的问题(漏洞)列表
Fortify漏洞之Path Manipulation(路径篡改)
Fortify漏洞之Access Control: Database(数据越权)
Fortify漏洞之Portability Flaw: File Separator 和 Poor Error Handling: Return Inside Finally
Fortify漏洞之Dynamic Code Evaluation: Code Injection(动态脚本注入)和 Password Management: Hardcoded Password(密