본문 바로가기

system/writeup

2014 plaidCTF ezhp

ezhp

2014 plaidCTF ezhp

1번 메뉴에서 최대 1022개까지 buf[0]부터 쭉 주소 값을 넣을 수 있다. alignment가 12인 custom malloc인듯하다. delta는 intptr_t 자료형인데 int랑 별반 다를거 없는 것 같다..


그리고 2번 메뉴에서 size, bk, fd를 가지고 unlink를 수행한다.


3번 메뉴에서는 오버플로우가 나서 다음 청크의 size, fd, bk를 덮어씌울 수 있다.


마지막으로 4번 메뉴에서 null byte를 없애 leak을 진행할 수 있다.


풀면서 안건데 heap에 쉘코드 넣었을 때 쉘코드 오염되는거 잘 보셔야 합니다..ㅜ unlink 하고 바로 익스플로잇은 쉘코드가 오염되서 힘들고 한번 더 change하고 익스해야겠네요.


어쨋든 전체적인 익스플로잇 흐름도는 다음과 같다.

A_overflow
A_overflow
A_overflow
got_call
A note add
B note add
heap_leak
B_fakeheap
B_unlink
B_fakeheap
shell

우여곡절 끝에 쉘! 이제 밥먹으러..


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

pwnable.tw start  (0) 2019.01.05
2017 codegate babypwn  (0) 2019.01.04
2014 codegate angry_doraemon  (0) 2019.01.04
2013 hdcon luckyzzang  (0) 2019.01.02
2016 whithat malloc  (0) 2019.01.01