본문 바로가기

system/writeup

2017 codegate messenger

messenger

2017 codegate messenger

NX가 존재하지 않는다~

 

Leave Messege는 custom malloc을 해준다. 할당하자 마자 fd와 bk가 존재한다. 그리고 bss영역에서 배열로 heap의 주소를 관리한다 -> unsafe unlink ?!

 

Remove Message는 custom free를 해준다. unlink!, 근데 bk->fd와 fd->bk가 자신이란걸 검사를 안하니 unsafe unlink를 안해도 된다.

 

Change Messege에서 heap overflow가가능하다.

 

View Message에서 fd와 bk를 leak할 수 있다.

 

익스플로잇 흐름도는 다음과 같다.

heap_overflow
heap_overflow
heap_overflow
malloc_A
malloc_B
leak
unlink
overwrite_shellcode
got_trigger

몽쉘~


'system > writeup' 카테고리의 다른 글

2017 codegate angrybird  (0) 2019.01.09
2014 plaidCTF kappa  (0) 2019.01.08
2017 codegate hunting  (0) 2019.01.06
2017 codegate babymisc  (0) 2019.01.05
pwnable.tw start  (0) 2019.01.05