关键漏洞信息 漏洞概述 标题: Bypassing servlet input validation filters (OWASP Stinger + Struts example) 发布日期: 2007.08.22 风险等级: Medium CVE编号: CVE-2007-4385 CVSS评分: - Base Score: 6.8/10 - Impact Subscore: 6.4/10 - Confidentiality Impact: Partial - Integrity Impact: Partial - Availability Impact: Partial - Exploitability Subscore: 8.6/10 - Authentication: No required 漏洞详情 漏洞原因: - OWASP Stinger 漏洞在于假设所有通过的请求内容都是 form-urlencoded。在简单 J2EE Web 应用中,Stinger 和应用程序会使用相同的方法访问 HTTP 参数。但在使用抽象 HTTP 协议并提供自动请求处理和解析的框架中,此假设会导致绕过滤器。 - 多部分编码的 HTTP 请求不会被执行参数检查,可能导致未验证的数据传递给应用程序,引发 XSS 或 SQL 注入等安全漏洞。 测试方法 可通过 WebScarab beanshell 脚本测试现有的 servlet 过滤器实现。 建议 Servlet 过滤器应处理多部分请求并进行输入验证。 应用程序不应仅依赖过滤器进行输入验证。 如果应用不需要多部分请求,应禁用自动处理。 漏洞时间线 2007-07-18: 漏洞细节发送给维护者 2007-07-23: 漏洞细节重新发送 2007-07-26: 初始供应商响应 2007-08-05: 快速修复(Stinger 2.5)实施 参考链接 1. Java Servlet Filters 2. Form-based File Upload in HTML 3. ServletRequest 4. OWASP Stinger Project 5. Struts Validator 6. Validation