본문 바로가기

system/writeup

2016 hitcon sleepyholder

sleepyholder

2016 hitcon sleepyholder

이 문제는 secretholder와 비슷하지만 다른점은 huge_secret이 처음에 할당만 할 수 있고 wipe, renew가 불가능하다는 점이다.

 

여기서 뭔 기법을 써서 풀어야할까 매우 고민했다. 큰 heap을 할당할 수 있으니 fastbin dup consolidate를 생각했는데, 나는 이 기법이 fastbin을 두 번 할당받고 싶을 때 사용하는 기법이라고만 생각했었는데 아니었다.

이 기법을 이용하면 fastbin 크기를 smallbin으로 사용할 수 있는 놀라운 일이 벌어진다. 즉, fastbin으로 병합을 할 수 있다는 것이다..

 

또한 secretholder에서 발견한 취약점인 nextchunk의 prev size를 바꿔줄 수 있는 취약점을 이용하여 fakechunk를 가르키게 할 수 있다.

 

위 내용들을 바탕으로 unsafe unlink를 일으키고 쉘을 딸 수 있다.

 

여담으로는 이 페이로드와 똑같이 해서 secretholder도 쉘을 딸 수 있다..


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

2018 codegate superftp  (0) 2019.01.23
2018 codegate baskinrobins31  (0) 2019.01.22
2016 hitcon secretholder  (0) 2019.01.22
2017 secuinside ohce  (0) 2019.01.21
2016 codefate floppy  (0) 2019.01.20