messenger


unsafe_unlink 문제인데 약간 꼼수를 썼다.


시나리오는 다음과 같이 세우고 익스플로잇을 했다.


1. heap의 주소를 릭. -> 힙 내부에 힙 주소를 지닌 값이 있으므로 인덱스 하나를 변경 해 힙 주소 바로 전 까지 이어 붙히면 같이 출력 되므로 힙 베이스를 얻을 수 있다.


2. 인덱스 삭제 -> 인덱스 삭제 시 printf@got를 힙 주소로 변경했다. 다만 힙 주소로 리턴을 해도 바로 쉘 코드를 이용 할 수 없는데 그 이유는 fd의 주소가 bk + 8의 주소로 남기 때문이었다. 따라서 이 것을 피해 쉘코드를 실행 하기 위해 jmp 0x16 즉 \xeb\x16를 이용했다. 이것의 아이디어는 seh overwrite를 했던 경험에서 얻었다 ㅋㅋ


3. shellcode 삽입 -> 쉘 획득




'Pwned > CTF' 카테고리의 다른 글

Hust 15th pwnables write up  (0) 2017.05.28
codegate 2017 messenger  (0) 2017.02.15
codegate 2017 babypwn  (0) 2017.02.14
9447 CTF search engine  (0) 2017.01.11
2016 chrismas ctf who is solo  (0) 2017.01.10
H3XOR CTF ezheap  (0) 2017.01.08

+ Recent posts