JScript5.8中的BSTR漏洞与ROPs利用策略

4星 · 超过85%的资源 需积分: 9 15 下载量 87 浏览量 更新于2024-07-23 收藏 2.02MB PDF 举报
本文主要探讨了在IE9及后续版本中,JavaScript引擎JScript9的发展及其对安全领域的影响,特别是在绕过安全措施(Return-Oriented Programming,ROP)攻击方面。在IE9以前的版本,如JScript5.8,使用BSTR(Basic String Type)来存储字符串数据,这种数据结构由长度域和字符数组组成。攻击者曾利用BSTR的特性进行漏洞利用,比如通过篡改BSTR长度域前缀来实现内存溢出或者信息泄露。 在Pwn2Own2010的Windows 7 Internet Explorer 8exploit中,作者提到的一种技术是通过heap spray(内存喷射)来定位BSTR长度域前缀的地址。heap spray是一种常见的攻击手段,通过构造恶意代码并将其分散在堆内存中,以便控制目标程序的执行流。攻击者通过遍历这些地址,寻找可以被利用的BSTR对象,从而利用其长度域前缀的可操控性。 然而,随着IE9的更新,引入了JScript9,这个版本不再使用BSTR来存储字符串,而是采用了不同的实现方式。这使得攻击者不得不转向其他可能的漏洞利用途径,例如Flash Vector对象。尽管JScript5.8依然存在于某些系统中,由于其在新版本中的边缘化,攻击者可能需要更复杂的策略来利用遗留的BSTR漏洞。 值得注意的是,即使在JScript9普及后,对于那些仍在使用旧版浏览器或存在遗留组件的环境,攻击者仍有可能利用这些已知的BSTR漏洞来进行ROP攻击,即通过组合系统中已有的函数调用来执行非预期的代码,绕过正常的安全检查。因此,对于开发者和安全专业人员来说,理解和防范针对JScript5.8等遗留系统的ROP攻击仍然是一个重要课题。 本文深入剖析了从JScript5.8到JScript9变迁期间的安全挑战,展示了ROP攻击在不同JavaScript版本下的演变,并强调了针对遗留漏洞的持续关注与防护。对于任何从事IT安全的人士,了解和应对此类漏洞管理策略都是至关重要的。