一、跨站点脚本编制

web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理

解决方案

对修改原始请求参数添加的脚本进行过滤,找到关键词后对关键词进行替换或者直接报错跳转到异常页面。

web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理

过滤代码(以下过滤代码可能不全,请自行补充):

private static String[] errorChar = new String[]{"%0A","+"};
private static String[] zherrorChar = new String[]{"SELECT","FROM","DELETE","DROP","UPDATE","AND","WHERE","HAVING","GROUP","ORDER","DESC","ASC","OR","LTRIM"};
	
private static String _antiXSS(String content) { 
	    String ftc = new String(content);
	    ftc = ftc.replace(">",">");
	    ftc = ftc.replace("<","<");
	    ftc = ftc.replace("'","'");
	    ftc = ftc.replace("\"","%22");
	    ftc = ftc.replace("oe","");
	    ftc = ftc.replace("script","");
	    ftc = ftc.replace("alert","");
	    ftc = ftc.replace("iframe","");
	    ftc = ftc.replace("SCRIPT","");
	    ftc = ftc.replace("ALERT","");
	    ftc = ftc.replace("IFRAME","");
	    ftc = ftc.replace("eval","");
	    
		if((!content.equals(ftc)) || (ftc.toLowerCase().indexOf("script") > -1)){   
			boolean isAntiXss = Boolean.valueOf(Configuration.getProperty("system.antixss.helper.throwerror", "false"));
			if(isAntiXss){
				throw new SystemSecurityException("使用了违反安全规则的参数值[>,<,',\",script]!");      
			}
		}
		for(String errStr : errorChar){
			if(ftc.toUpperCase().contains(errStr)){
				throw new SystemSecurityException("使用了违反安全规则的参数值:["+errStr+"]!");  
			}
		}
		for(String errStr : zherrorChar){
			if(ftc.toUpperCase().contains(errStr)){
				String[] str = ftc.toUpperCase().split(errStr);
				if(str[0].endsWith("%28") || str[0].endsWith("+") || str[0].endsWith("%20") || str[0].endsWith(" ") || str[1].startsWith("%29") || str[1].startsWith("+") || str[1].startsWith("%20") || str[1].startsWith(" ")){
					throw new SystemSecurityException("使用了违反安全规则的参数值:["+errStr+"]!");  
				}
			}
		}
		return ftc; 
	}


宁外一种比较容易导致跨站脚本注入的方式在此特地提一下:

web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理
web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理

这种直接从Referer中拿路径展示的方式,没有经过过滤器,很容易被忽视掉,请注意进行特殊字符的处理。


二、SQL盲注

产生原因

通过在一些查询页面上的查询条件中添加sql关键字符和拼接条件来修改查询结果,如果查询结果正常或者与修改查询条件前类似,则表明注入成功。

解决方案

1、项目开发时按照标准,在涉及到sql查询的地方,要使用参数绑定的方式传参,来解决sql盲注问题。(此种方法适用于sql盲注问题比较少的情况下)

2、对请求中参数进行判断和过滤,找到盲注类型的关键词后对关键词进行替换或者直接报错跳转到异常页面。(过滤代码上面已经有提到部分)

private static String[] errorChar = new String[]{"%0A","+"};
private static String[] zherrorChar = new String[]{"SELECT","FROM","DELETE","DROP","UPDATE","AND","WHERE","HAVING","GROUP","ORDER","DESC","ASC","OR","LTRIM"};

三、sql注入

产生原因

通过修改原始请求参数,在参数后追加特殊字符等,在响应中获取到了数据库报错的信息等。

解决方案

1、针对每个sql注入的页面,针对每个页面的情况进行处理。(建议用此方案处理)

2对请求中参数进行判断和过滤,找到盲注类型的关键词后对关键词进行替换或者直接报错跳转到异常页面。

四、AllaireJRun 2.3.X 样本源代码泄露

产生原因

通过修改原始请求访问的页面,但是得到了正确的响应结果。

解决方案

分析产生原因,发现此问题是机器误报的问题,具体原因如下,当登录系统后访问一个不存在的页面,系统正常,会爆出页面不存在的问题。但是当系统没有登录的时候访问所有的jsp页面都会跳到登录页面。所以当访问一个存在和一个不存在的页面是,响应是一样的,所以测试系统认为存在Allaire JRun 2.3.X 样本源代码泄露的问题。解决方案就是当没有登录时也要处理页面不存在的问题。

例如:

原始请求:/xxxx/scripts/admin.jsp

测试请求:/xxxx//viewsource.jsp

测试结果:HTTP/1.1 200 OK,系统认为存在Allaire JRun 2.3.X 样本源代码泄露问题

解决方案代码

添加过滤: 

if(uri != null &&uri.contains(".jsp")){
    String path = req.getRealPath("");
    File file = new File(path + uri.substring(0,uri.indexOf(".jsp") + 4));
    if(!file.exists()){
          systemLoginUrl = uri;
     }
}

五、会话标识未更新

产生原因

系统退出时没有清空session使得一部分会话标识没有被清空。

解决方案

再退出系统时,清空session。

request.getSession().invalidate();//清空session
Cookie[] cookies = request.getCookies();//获取cookie 
if(cookies != null && cookies.length > 0){
	cookies[0].setMaxAge(0);//让cookie过期 
}

六、加密会话(SSLCookie 中缺少 Secure 属性

产生原因

系统登录后,平台登录的处理类会把一部分像用户名、密码等部分信息放到cookie中,然而没有指定secure属性,测评软件认为此漏洞为加密会话(SSL)Cookie 中缺少Secure 属性的漏洞。

解决方案

在保存cookie的时候,指定secure属性。
userCookie.setSecure(true);

七、中危漏洞:跨站点请求伪造

产生原因

通过修改请求中Referer的内容,获取到了和原始请求相同的结果,测评软件认为此漏洞为跨站点请求伪造。

解决方案

对所有请求的Referer进行验证,过滤掉除已配置的所有ip或者域名以外的所有其他

代码请自行到网上搜索

web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理

八、多供应商 Java Servlet 容器跨站点脚本编制

产生原因

通过修改请求的url并向其中注入JavaScript代码,发送请求后,正确的执行了url中注入的script脚本。

解决方案

对请求的url中的script脚本中的关键字段进行验证,并对有关键字段的url进行特殊的处理,或者直接抛出异常。

过滤器代码见问题一

九、已解密的登录请求

产生原因

http的请求不是安全的请求,可通过心脏出血漏洞获取登录信息,并进行登录。

解决方案

项目部署时采用https部署的方案,防止此漏洞出现。部署方法请百度或google


十、测试成功检索了“web.xml”文件的内容,其中包含有关 Web 应用程序部署的信息。

这证明所有用户均可访问 WEB-INF 目录。

标识:1497

描述: 将参数/cookie 值设置为:/WEB-INF/web.xml

差异:
以下更改已应用到原始请求:
已将参数“filePath”的值设置为“%2FWEB-INF%2Fweb.xml”

有问题的路径

http://xxxx/downFileProcessor.jsp?1=1&filePath=%2FWEB-INF%2Fweb.xml

不严谨的临时解决方案

if(null != filePath && (filePath.endsWith(".xml") || filePath.endsWith(".tld") || filePath.endsWith(".jar"))){
out.print("<font style=\"color:red\">你无权操作这个文件</font>");
return;
}



十一、低危漏洞:在参数值中找到了内部IP公开模式

web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理

例子:

web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理

web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理

有问题代码:

function view(tzlx){
	var pagePath=location.href;
	window.location.href="${ctx}/pages/platform/config/tz/tzItem.jsp?TZLX="+tzlx+"&pagePath="+pagePath;
}
十二、低危漏洞:Flash参数AllowScriptAccess已设置为always

web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理

web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理

web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理

web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理

十三、通过框架钓鱼

web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理

此问题通过过滤器基本可以解决。

十四、中危漏洞:会话标志未更新

web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理

web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理

web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理

十五、不充分账户解锁

web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理

web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理

web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理web系统各种安全问题解决方案整理










作者:星辰 时间:2016-12-06 浏览 1532评论 0 赞 0砸 0 标签: 测试 安全漏洞
评论
还可以再输入500个字

请您注意

·自觉遵守:爱国、守法、自律、真实、文明的原则
·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规
·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·您在NoteShare上发表的作品,NoteShare有权在网站内保留、转载、引用或者删除
·参与本评论即表明您已经阅读并接受上述条款