提供更全面、更优质的互联网接入服务
系统浏览器网页访问冲突,发生和任意代码BUG漏 2018-07-01
微软固定在2018年5月的补丁的边缘轮发动机后使用免费的bug。这个bug(cve-2018-0946)使脉轮引擎访问已释放的函数地址,可能被利用来执行任意代码,当一个脆弱的系统浏览恶意网页通过微软的边缘。
 
这个免费使用的错误发生时,用户的高防服务器脉轮引擎尝试执行优化的函数代码的实时(JIT)编译器生成后,已释放的关闭相关的上下文时。在这篇文章中,在FortiGuard Labs团队看起来深入微软边轮发动机装配码揭露这一漏洞的根本原因。
 
在不同的语境中的JavaScript对象的访问总是被跨站类控制;然而,它缺乏检查当一个DataView类的对象访问的优化函数的代码只是在时间的脉轮产生(JIT)编译器在另一个语境。如果访问对象释放功能代码后相关的环境是封闭的,访问冲突发生和任意代码可以如果释放功能的地址已经被其他功能代码由JIT编译器执行。
 
我们用下面的POC,这是根据公布的信息,网络安全研究团队在我们的分析报告!
因为这是一个经典的后无漏洞的用户,我们使用相关功能演示”使用的全过程,“自由”和“使用后释放”。以下所有的汇编代码是从chakra.dll版11.00.14393.447。我添加的评论已经凸显。
firstly”使用。“轮引擎存储优化功能代码的地址到高防服务器全局属性”选择“执行脚本时,”let opt = buffer.opt;“。JavaScript的对象被称为脉轮的发动机性能的全局对象。“propertyid,”一个Int32类型的值,用于检索属性。
让我们查看内存地址”0x0f2b5620”:
“0x0f2b5620”是一个scriptfunction对象,它是由脉轮储存信息的JavaScript函数”opt()。我们可以很容易地发现,它包括一个functionbody对象(“0xfb70360”)从上面的代码。该functionbody对象第一场是优化功能代码的地址:
让我们看看优化函数的代码在内存中的地址”0x10e20000”:

由JIT编译器生成的优化代码的一部分:

轮发动机关闭背景的iframe的“F”当“f.src = 'about:blank';“执行。记忆在“0x10e20000”,这是优化的函数代码,当脉轮释放!记忆::::::DecommitAll customheap堆称为。
优化功能代码的地址是从全局属性”选择“代码执行时”let obj = opt();“执行脉轮!Js::::javascriptoperators patchgetmethodfromobject提取优化的功能代码的地址从全球高防服务器租用“选择”。
 
 

  • 服务热线4006765590
    • 全方位的购买咨询
    • 精准的配置推荐
    • 1对1贴心服务
    • 7*24小时服务热线
  • 付款方式
    • 支持支付宝、微信、对公转账等多种支付方式