javaWeb安全验证漏洞修复总结.doc

上传人:桔**** 文档编号:558286128 上传时间:2023-06-10 格式:DOC 页数:29 大小:220KB
返回 下载 相关 举报
javaWeb安全验证漏洞修复总结.doc_第1页
第1页 / 共29页
javaWeb安全验证漏洞修复总结.doc_第2页
第2页 / 共29页
javaWeb安全验证漏洞修复总结.doc_第3页
第3页 / 共29页
javaWeb安全验证漏洞修复总结.doc_第4页
第4页 / 共29页
javaWeb安全验证漏洞修复总结.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《javaWeb安全验证漏洞修复总结.doc》由会员分享,可在线阅读,更多相关《javaWeb安全验证漏洞修复总结.doc(29页珍藏版)》请在金锄头文库上搜索。

1、EMA服务管理平台二期扩容安全验收漏洞修复总结2011年5月 中国电信EMA服务管理平台二期扩容安全验收漏洞修复总结目 录1WEB安全介绍12SQL注入、盲注12.1SQL注入、盲注概述12.2安全风险及原因22.3AppScan扫描建议22.4应用程序解决方案43会话标识未更新73.1会话标识未更新概述73.2安全风险及原因分析73.3AppScan扫描建议83.4应用程序解决方案84已解密登录请求84.1已解密登录请求概述84.2安全风险及原因分析84.3AppScan扫描建议94.4应用程序解决方案95跨站点请求伪造115.1跨站点请求伪造概述115.2安全风险及原因分析125.3App

2、Scan扫描建议125.4应用程序解决方案126不充分账户封锁136.1不充分账户封锁概述136.2安全风险及原因分析136.3AppScan扫描建议136.4应用程序解决方案137启用不安全HTTP方法147.1启用不安全HTTP方法概述147.2安全风险及原因分析147.3AppScan扫描建议157.4应用程序解决方案158HTTP注释敏感信息168.1HTTP注释敏感信息概述168.2安全风险及原因分析168.3AppScan扫描建议168.4应用程序解决方案169发现电子邮件地址模式169.1发现电子邮件地址模式概述169.2安全风险及原因分析179.3AppScan扫描建议179.

3、4应用程序解决方案1710通过框架钓鱼2010.1通过框架钓鱼概述2010.2安全风险及原因分析2010.3AppScan扫描建议2010.4应用程序解决方案2311检查到文件替代版本2511.1检查到文件替代版本概述2511.2安全风险及原因分析2511.3AppScan扫描建议2511.4应用程序解决方案26 - ii - 1 Web安全介绍 目前很多业务都依赖于互联网,例如说网上银行、网络购物、网游等,很多恶意攻击者出于不良的目的对Web 服务器进行攻击,想方设法通过各种手段获取他人的个人账户信息谋取利益。正是因为这样,Web业务平台最容易遭受攻击。同时,对Web服务器的攻击也可以说是形

4、形色色、种类繁多,常见的有挂马、SQL注入、缓冲区溢出、嗅探、利用IIS等针对Webserver漏洞进行攻击。 一方面,由于TCP/IP的设计是没有考虑安全问题的,这使得在网络上传输的数据是没有任何安全防护的。攻击者可以利用系统漏洞造成系统进程缓冲区溢出,攻击者可能获得或者提升自己在有漏洞的系统上的用户权限来运行任意程序,甚至安装和运行恶意代码,窃取机密数据。而应用层面的软件在开发过程中也没有过多考虑到安全的问题,这使得程序本身存在很多漏洞,诸如缓冲区溢出、SQL注入等等流行的应用层攻击,这些均属于在软件研发过程中疏忽了对安全的考虑所致。 另一方面,用户对某些隐秘的东西带有强烈的好奇心,一些利

5、用木马或病毒程序进行攻击的攻击者,往往就利用了用户的这种好奇心理,将木马或病毒程序捆绑在一些艳丽的图片、音视频及免费软件等文件中,然后把这些文件置于某些网站当中,再引诱用户去单击或下载运行。或者通过电子邮件附件和QQ、MSN等即时聊天软件,将这些捆绑了木马或病毒的文件发送给用户,利用用户的好奇心理引诱用户打开或运行这些文件、2 SQL注入、盲注2.1 SQL注入、盲注概述Web 应用程序通常在后端使用数据库,以与企业数据仓库交互。查询数据库事实上的标准语言是 SQL(各大数据库供应商都有自己的不同版本)。Web 应用程序通常会获取用户输入(取自 HTTP 请求),将它并入 SQL 查询中,然后

6、发送到后端数据库。接着应用程序便处理查询结果,有时会向用户显示结果。 如果应用程序对用户(攻击者)的输入处理不够小心,攻击者便可以利用这种操作方式。在此情况下,攻击者可以注入恶意的数据,当该数据并入 SQL 查询中时,就将查询的原始语法更改得面目全非。例如,如果应用程序使用用户的输入(如用户名和密码)来查询用户帐户的数据库表,以认证用户,而攻击者能够将恶意数据注入查询的用户名部分(和/或密码部分),查询便可能更改成完全不同的数据复制查询,可能是修改数据库的查询,或在数据库服务器上运行 Shell 命令的查询。2.2 安全风险及原因 高风险漏洞,攻击者可能会查看、修改或删除数据库条目和表 原因:

7、未对用户输入正确执行危险字符清理2.3 AppScan扫描建议若干问题的补救方法在于对用户输入进行清理。 通过验证用户输入未包含危险字符,便可能防止恶意的用户导致应用程序执行计划外的任务,例如:启动任意 SQL 查询、嵌入将在客户端执行的 Javascript 代码、运行各种操作系统命令,等等。 建议过滤出所有以下字符: 1 |(竖线符号)2 & (& 符号)3;(分号)4 $(美元符号)5 %(百分比符号)6 (at 符号)7 (单引号)8 (引号)9 (反斜杠转义单引号)10 (反斜杠转义引号)11 (尖括号)12 ()(括号)13 +(加号)14 CR(回车符,ASCII 0x0d)15

8、 LF(换行,ASCII 0x0a)16 ,(逗号)17 (反斜杠)以下部分描述各种问题、问题的修订建议以及可能触发这些问题的危险字符: SQL 注入和 SQL 盲注: A. 确保用户输入的值和类型(如 Integer、Date 等)有效,且符合应用程序预期。 B. 利用存储过程,将数据访问抽象化,让用户不直接访问表或视图。当使用存储过程时,请利用 ADO 命令对象来实施它们,以强化变量类型。 C. 清理输入以排除上下文更改符号,例如: 1 (单引号)2 (引号)3 (反斜线转义单引号)4 (反斜杠转义引号)5 )(结束括号)6 ;(分号)跨站点脚本编制: A. 清理用户输入,并过滤出 Jav

9、aScript 代码。我们建议您过滤下列字符: 1 (尖括号)2 (引号)3 (单引号)4 %(百分比符号)5 ;(分号)6 ()(括号)7 &(& 符号)8 +(加号)B. 如果要修订 变体,请参阅 MS 文章 821349 C. 对于 UTF-7 攻击: - 可能的话,建议您施行特定字符集编码(使用 Content-Type 头或 标记)。 HTTP 响应分割:清理用户输入(至少是稍后嵌入在 HTTP 响应中的输入)。 请确保输入未包含恶意的字符,例如: 1 CR(回车符,ASCII 0x0d)2 LF(换行,ASCII 0x0a)远程命令执行:清理输入以排除对执行操作系统命令有意义的符号

10、,例如:1 |(竖线符号)2 & (& 符号)3;(分号)执行 shell 命令: A. 绝不将未检查的用户输入传递给 eval()、open()、sysopen()、system() 之类的 Perl 命令。 B. 确保输入未包含恶意的字符,例如: 1 $(美元符号)2 %(百分比符号)3 (at 符号)XPath 注入:清理输入以排除上下文更改符号,例如: 1 (单引号)2 (引号) 等LDAP 注入: A. 使用正面验证。字母数字过滤(A.Z,a.z,0.9)适合大部分 LDAP 查询。 B. 应该过滤出或进行转义的特殊 LDAP 字符: 1 在字符串开头的空格或“#”字符2 在字符串结

11、尾的空格字符3 ,(逗号)4 +(加号)5 (引号)6 (反斜杠)7 (尖括号)8 ;(分号)9 ()(括号)MX 注入: 应该过滤出特殊 MX 字符: 1 CR(回车符,ASCII 0x0d)2 LF(换行,ASCII 0x0a)记录伪造:应该过滤出特殊记录字符: 1 CR(回车符,ASCII 0x0d)2 LF(换行,ASCII 0x0a)3 BS(退格,ASCII 0x08)ORM 注入: A. 确保用户输入的值和类型(如 Integer、Date 等)有效,且符合应用程序预期。 B. 利用存储过程,将数据访问抽象化,让用户不直接访问表或视图。 C. 使用参数化查询 API D. 清理输

12、入以排除上下文更改符号,例如: (*): 1 (单引号)2 (引号)3 (反斜线转义单引号)4 (反斜杠转义引号)5 )(结束括号)6 ;(分号)2.4 应用程序解决方案1、我们为了调试方便,在页面上会抛出数据库异常信息,如果入侵工具获取了这些信息,就可以获取系统的一些配置信息,如web系统框架、采用的数据库等,从而找出系统漏洞。所以不要在页面上抛出异常的详细信息,这些信息对客户并没有用,只是方便技术人员调试罢了,处理方法是在异常处理页面把打印异常代码删除即可;2、新建一个过滤器,通过过滤器过滤SQL注入特殊字符,配置成功后,重启服务,用Appsan工具扫描,漏洞得到解决,通过过滤器可以解决S

13、QL注入、跨站点脚本编制及通过框架钓鱼等问题,具体实现方式如下:1、在web.xml文件中配置过滤器requestEncodingFilter/* InjectFiltercom.sitech.ismp.util.context.InjectFilter2、过滤器过滤代码 public class InjectFilter extends IsmpServletFilter private String failPage = /loginout.jsp;/发生注入时,跳转页面 public void doFilter(ServletRequest request,ServletResponse response, FilterChain filterchain)throws IOException, ServletException /判断是否有注入攻击字符 HttpServletRequest req = (HttpServletRequest) request; String inj = injectInput(req);if (!inj.eq

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号