注册 X
提交 注:点击提交后系统会发送邮件到邮箱验证!(仅支持中国大陆邮箱)
我已阅读并同意 服务条款
首页 > IT技术笔记 > 查看笔记

fortify扫描漏洞修复问题Log Forging和Path Manipulation问题

fortify扫描漏洞修复问题Log Forging和Path Manipulation问题

1、Log Forging

在以下情况下会发生 Log Forging 的漏洞:

1. 数据从一个不可信赖的数据源进入应用程序。

2. 数据写入到应用程序或系统日志文件中。

2、Path Manipulation(路径篡改)                        

产生原因:

当满足以下两个条件时,就会产生 path manipulation 错误:

1. 攻击者可以指定某一文件系统操作中所使用的路径。

2. 攻击者可以通过指定特定资源来获取某种权限,而这种权限在一般情况下是不可能获得的。

这两个问题都可以通过增加调用下面的方法解决

如:

String path = "C:Users estDownloads";

File proFile = new File(vaildText(path));


String requestUrl = request.getRequestURL().toString();

String requestContent = IOUtils.toString(request.getReader);

log.info("接收到来自{}的http请求,请求内容:{}",vaildText(requestUrl ),vaildText(requestContent ));

增加下述代码后,问题解决。


		        
public static String vaildText(String text) {
		HashMap<String, String> map = new HashMap<String, String>();
		
		map.put("0", "0");
		map.put("1", "1");
		map.put("2", "2");
		map.put("3", "3");
		map.put("4", "4");
		map.put("5", "5");
		map.put("6", "6");
		map.put("7", "7");
		map.put("8", "8");
		map.put("9", "9");
		map.put("10", "10");
		
		map.put("a", "a");
		map.put("b", "b");
		map.put("c", "c");
		map.put("d", "d");
		map.put("e", "e");
		map.put("f", "f");
		map.put("g", "g");
		map.put("h", "h");
		map.put("i", "i");
		map.put("j", "j");
		map.put("k", "k");
		map.put("l", "l");
		map.put("m", "m");
		map.put("n", "n");
		map.put("o", "o");
		map.put("p", "p");
		map.put("q", "q");
		map.put("r", "r");
		map.put("s", "s");
		map.put("t", "t");
		map.put("u", "u");
		map.put("v", "v");
		map.put("w", "w");
		map.put("x", "x");
		map.put("y", "y");
		map.put("z", "z");

		map.put("A", "A");
		map.put("B", "B");
		map.put("C", "C");
		map.put("D", "D");
		map.put("E", "E");
		map.put("F", "F");
		map.put("G", "G");
		map.put("H", "H");
		map.put("I", "I");
		map.put("J", "J");
		map.put("K", "K");
		map.put("L", "L");
		map.put("M", "M");
		map.put("N", "N");
		map.put("O", "O");
		map.put("P", "P");
		map.put("Q", "Q");
		map.put("R", "R");
		map.put("S", "S");
		map.put("T", "T");
		map.put("U", "U");
		map.put("V", "V");
		map.put("W", "W");
		map.put("X", "X");
		map.put("Y", "Y");
		map.put("Z", "Z");

		map.put(":", ":");
		map.put("/", "/");
		map.put("\", "\");

		String temp = "";
		for (int i = 0; i < text.length(); i++) {

			if (map.get(text.charAt(i) + "") != null) {
				temp += map.get(text.charAt(i) + "");
			}
		}
		return temp;
	}
		      

 打赏        分享



评论

邮箱: 昵称: