Java原生层漏洞攻破Win7+JRE7:1分钟实战解析

需积分: 10 6 下载量 190 浏览量 更新于2024-07-23 收藏 1.1MB PDF 举报
"这篇资源是关于在SyScan360 2013国际前瞻信息安全会议上,古河(一位来自趋势科技的安全专家)所做的主题演讲,演讲内容涉及如何利用Java原生层漏洞在1分钟内攻破Win7系统上的JRE7。古河是一位资深动漫宅,他的研究方向包括漏洞挖掘、沙盒技术和APT攻击解决方案。" 在这次演讲中,古河探讨了Java原生层漏洞的利用,这些漏洞主要存在于Java的C/C++代码中,包括栈溢出、堆溢出和数组越界等类型,也被称为Java内存破坏漏洞。在JRE6时代,由于没有数据执行保护(DEP)和地址空间布局随机化(ASLR),利用这些漏洞相对容易。然而,随着JRE7的发布,这些安全机制的启用使得攻击变得更加复杂。 古河介绍了三个不同的exploit方法来应对JRE7的增强安全措施,特别是在Windows 7和8平台上。首先,他提到了CVE-2013-1491,这是一个由Joshua J. Drake发现并在Pwn2013比赛中用来攻破JRE7和Windows 8的漏洞。这个漏洞与CFF字体指令有关,CFF字体(Type2字体)允许动态执行指令来优化字体形状。在处理这些指令时,存在两个漏洞,即`store[0,j,index,count]`和`load[0,index,count]`,这两个指令在读写数组时没有进行边界检查,从而允许攻击者以16位有符号数字作为下标,任意读写内存。 通过这个漏洞,攻击者可以实现以下目标: 1. 随意读取和写入动态分配的`buildCharArray`数组。 2. 修改`reg_WeightVector`结构体中的静态数组。 演讲的最后,古河对利用这些漏洞的方法进行了总结,强调虽然JRE7增加了安全防护,但仍然可以通过深入理解和巧妙利用Java原生层的漏洞来绕过这些防护。他的演讲为安全研究人员提供了一种全新的视角,展示了即使在现代操作系统和JVM的安全保护下,如何通过Java原生层的漏洞进行攻击。