본문 바로가기

system/writeup

2016 hitcon secretholder

secretholder

2016 hitcon secretholder

small secret을 할당하고 쓸 때 40바이트 할당하므로 다음 chunk의 prev size를 덮을 수 있다.

 

전역 변수에서 각각의 heap address를 관리한다. -> unsafe unlink

 

물론 전역변수를 통해 입력도 받는다. 앞으로 힙오버만 있으면..!

 

free할 때 전역 변수에 저장되어 있는 heap address를 초기화하지 않는다. -> 같은 곳을 여러번 해제 가능

 

huge chunk를 맨 처음으로 오게할 수 있다면 small_buf를 이용하여 free한 후 UAF를 일으킬 수 있다.

그 다음부터는 fake chunk를 만들어 unsafe unlink를 trigger하고 free_got를 puts_plt로 덮어 leak, free_got를 system으로 바꿔 쉘을 따면 된다.

 


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

2018 codegate baskinrobins31  (0) 2019.01.22
2016 hitcon sleepyholder  (0) 2019.01.22
2017 secuinside ohce  (0) 2019.01.21
2016 codefate floppy  (0) 2019.01.20
2017 0ctf babyheap  (0) 2019.01.20