tofunction2015/08/17 10:17 看着文章不错,顺手翻译了下,如有不足,敬请指正,同时希望能和大家一起交流。 From :http://googleprojectzero.blogspot.com/2015/07/one-perfect-bug-exploiting-type_20.html 对于一些攻击者而言,exp能稳定的利用是很重要的。换言之,exp在运行特定flash版本的特定平台的系统上,exp要每次都能导致代码执行。编写这种高质量的exp的途径之一就是利用高质量的bug(也就是主动因素都利用编写稳定利用的exp).此文讨论的就是利用一个这种类型的bug,并讨论它适合编写稳定利用的exp的因素。 0x00 The Bug Cve-2015-3077是一种发生在Adobe Flash Button和MovieClip的fliters(是一个包含filter对象的索引数组)属性的setters方法的类型混淆问题,使得任意类型的filter都可以用其它类型的filter来混淆。该缺陷在五月份上报给了Adobe,并在五月得到了修复。该bug的根源在于,攻击者可以覆盖初始化filter对象的构造函数。下面的代码能说明这个问题: var filter = new flash.filters.BlurFilter(); object.filters = [filter]; var e = flash.filters.ConvolutionFilter; flash["filters"] = []; flash["filters"]["BlurFilter"] = e; var f = object.filters; var d = f[0]; 这段代码可能因使用操作符‘[]’而让人疑惑,而它在Flash CS编译的时候是需要的。逻辑上等价的代码如下(不保证能编译): var filter = new flash.filters.BlurFilter(); object.filters = [filter]; flash.filters.BlurFilter = flash.filters.ConvolutionFilter; var f = object.filters; […]