`
guojingxf
  • 浏览: 67416 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用Struts/Servlet开发项目的安全注意点!

阅读更多
涉及程序:
Stinger
 
描述:
OWASP Stinger绕过servlet输入验证过滤漏洞
 
详细:
Stinger是开放Web应用安全项目(OWASP)所开发的servlet过滤器,用于提供对用户请求提供集中的输入验证。

OWASP Stinger多部分编码的数据时存在漏洞,远程攻击者可能利用此漏洞绕过数据过滤。 网管联盟bitsCN_com

OWASP Stinger假设所传送的请求内容都是form-urlencode编码的,如果应用程序使用的框架从HTTP协议获取内容并自动处理和解析请求的话,这种假设就会导致在向目标应用传输请求期间绕过Stinger过滤。


以下Stinger代码段说明了这个问题(Stinger.java):private int checkMalformedParameters(...) {



  ...
  e = request.getParameterNames();
  while(e.hasMoreElements()) {
   ...
  }
  ...
}



如果HTTP请求内容是form-urlencode编码的话,request.getParameterNames()就会返回所有HTTP参数名的枚举。但是,如果请求为多部编码的话,所返回的枚举就会为空,e.hasMoreElements()会返回false,这会导致Stinger没有对多部编码的HTTP请求执行任何输入验证。

如果目标应用程序为纯servlet应用程序的话,Request.getParameter()调用不会返回多部编码的HTTP参数,但Struts之类的框架从应用程序获取HTTP详细信息并自动解析HTTP请求,包括多部编码的请求,然后将多部请求中所提供的输入参数传送给应用程序,而不会考虑参数是通过多部请求提供的还是正常form-urlencode编码请求提供的。由于Stinger没有对多部请求执行任何验证,因此可能会向应用程序提供未转义的和未经验证的数据,导致跨站脚本或SQL注入之类的攻击。


<*来源:Meder Kydyraliev (bugtraq@web.areopag.net)
链接:http://marc.info/?l=bugtraq&m=118702576902962&w=2
*>




受影响系统:
OWASP Stinger
不受影响系统:
OWASP Stinger 2.5

 
攻击方法:
警 告


以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

http://o0o.nu/~meder/toolz/Multipartify.txt

 
解决方案:

厂商补丁:
-----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:


https://www.owasp.org/index.php/Image:Stinger-2.5.jar
【转自www.bitsCN.com】
分享到:
评论

相关推荐

    java上传与下载——struts2和servlet案例

    在Java Web开发中,文件上传和下载是常见的功能需求,特别是在构建交互性强的Web应用程序时。...记得在实践过程中,注意错误处理、文件安全和性能优化等方面,这些都是在开发实际应用时不可或缺的部分。

    servlet和struts2笔记

    ### servlet和struts2笔记 #### 一、Servlet 基础 **Servlet** 是 Java Web 开发中的一种核心技术,它被设计用于处理客户端发送到服务器的 HTTP 请求,并且能够生成响应。Servlet 可以看作是服务器端的小程序,...

    Servlet框架基本源码

    随着技术发展,Spring MVC、Struts、JSF等高级Servlet框架应运而生,它们提供了更丰富的功能和更好的可维护性,降低了开发难度。这些框架在底层依然基于Servlet API,但通过封装和抽象,使开发者能更专注于业务逻辑...

    WEB开发技术 Struts入门 GUI开发

    13. **安全性考虑**:使用 Struts 进行开发时,需要注意 SQL 注入、跨站脚本攻击等安全问题,合理使用框架提供的安全机制。 通过深入学习这个资料包,你将能够熟练地运用 Struts 构建 Web 应用程序,理解其核心概念...

    servlet AND Struts2笔记

    ### servlet与Struts2知识点梳理 #### 一、Servlet基础概念及实现方式 - **Servlet定义**:Servlet是一种运行在服务器端的小程序,用于处理客户端发送的HTTP请求,并生成相应的HTTP响应。它属于动态资源,可以被多...

    使用了2年Struts开发项目后的总结

    在我两年的Struts开发经验中,我发现它在处理业务逻辑、控制流程以及与视图层交互方面表现出色,但也有一些挑战和需要注意的地方。 首先,Struts提供了强大的动作调度机制,通过Action类来处理HTTP请求。每个Action...

    Struts2项目struts2 上传 下载 项目

    通过以上各个方面的介绍,我们可以看到这个“Struts2 上传下载项目”不仅涵盖了Struts2的基本使用,还涉及到了数据库操作、文件I/O、MVC设计模式等多个关键知识点。对于Java Web开发者来说,这是一个很好的实践案例...

    Servlet-Struts-Hibernate笔记分享

    学习这些技术,开发者应理解它们的基本概念,熟悉配置和API使用,同时注意性能优化和安全问题。例如,在使用Struts1时,要防止XSS和CSRF攻击,使用Hibernate时需考虑懒加载和缓存策略以避免内存溢出。 总之,...

    用JSP+Servlet+JavaBean三层模型实现登录

    在开发过程中,需要注意以下几点: 1. 输入验证:在JSP中,对用户输入进行验证,防止SQL注入和其他安全问题。 2. 错误处理:捕获并处理可能出现的异常,向用户提供有意义的错误信息。 3. 安全性:使用加密算法对密码...

    struts文件上传.pdf

    ### Struts文件上传知识点 #### 一、Struts框架简介 Struts是一个开源的MVC(Model-View-Controller)框架,它简化了基于Java的Web应用程序开发过程。Struits框架提供了一种结构化的方式来组织代码,使得开发更加...

    基于Struts2的留言板系统.zip

    开发者还需要注意输入验证和安全编码。 12. **测试**: 使用JUnit等单元测试工具对Action类进行测试,确保业务逻辑的正确性。Struts2也支持Mock测试,模拟请求来测试Action的响应。 13. **部署与运行**: 最后,将...

    ssh整合 struts hibernate spring

    ### SSH整合Struts Hibernate Spring详解 #### 一、概述 SSH框架是指由Struts、Hibernate和Spring三个...值得注意的是,在实际开发过程中,还需要考虑到性能优化、安全性增强等问题,以确保最终的应用既稳定又高效。

    struts1学习项目(sql数据库)

    Struts1通过ActionServlet作为入口点,接收HTTP请求并调用相应的Action处理,然后使用Model层进行业务处理,最后将结果传递给JSP视图进行展示。 3. **用户登录注册**:用户注册通常涉及用户名、密码的输入和验证,...

    struts1.0和struts2

    Struts1.0和Struts2是两种不同的Java EE Web应用程序框架,虽然它们都属于Apache Struts项目,但在设计和实现上有显著的区别。Struts2是基于WebWork框架的升级版,它吸取了Struts1的优点并进行了诸多改进,提高了...

    struts1.2.9包下载

    请注意,为了确保下载的是最新且安全的软件包,请务必从官方渠道获取。通常,在该页面上,你会看到不同版本的Struts供选择,选择对应的1.2.9版本进行下载即可。 ### 安装与配置 #### 1. 解压Struts包 下载完成后,...

    纯servlet写的用户管理系统

    本项目“纯Servlet写的用户管理系统”完全依赖于Servlet技术,不使用其他框架,如Spring或Struts,来实现用户管理的核心功能,如用户注册、登录、信息修改等。以下是对该项目中涉及的Servlet技术和相关知识点的详细...

    SSH与DWR框架整合

    这种整合使得Web应用程序能够更好地支持AJAX技术,提高用户体验,并通过Spring管理整个项目的依赖关系,利用Hibernate进行持久化操作,Struts则负责MVC架构的控制层。 #### 二、整合目的及意义 1. **提高应用灵活...

    servlet+jsp文件上传示例

    6. **安全性考虑**:在实际应用中,需要注意安全问题,如防止恶意文件上传、检查文件类型和大小,以及确保文件存储路径的安全性。 通过以上步骤,你可以创建一个简单的文件上传功能。然而,实际项目可能需要更复杂...

    struts1.2+extjs+导出excel项目

    在项目实施过程中,开发者需要注意以下几点: 1. **集成配置**:确保Struts1.2和ExtJS的配置正确无误,比如Struts的Action类、ActionForm、struts-config.xml文件以及ExtJS的配置文件(如ext-all.js)。 2. **数据...

    struts-1.2.7

    在实际开发中,使用Struts 1.2.7时,开发者需要注意以下几点: 1. 安全性:Struts 1在后期被发现存在多个安全漏洞,例如著名的CVE-2017-5638“Apache Struts2 S2-045”,因此在使用旧版本时要特别关注安全更新。 2. ...

Global site tag (gtag.js) - Google Analytics