2017 hitcon training zoo
CTF2018. 3. 14. 14:55
C++ 문제를 한번도 풀어본 적이 없어서 경험삼아 이 문제를 풀어보았다. training이라서 C++ 코드를 줬다.
NX가 꺼져있어서 쉘코드를 사용할 수 있었다.
취약점은 받은 값을 strcpy를 이용해서 복사하기 때문에 overflow가 발생한다. 그래서 다른 청크의 가상함수 포인터를 가리키는 주소를 쉘코드가 있는 주소로 바꿔서 쉘을 딸 수 있었다. 쉘코드는 전역변수에다가 넣어서 따로 주소를 구할 필요도 없었다.
가상함수 포인터가 이중이라서 두번 가리켜줘야 한다.
'CTF' 카테고리의 다른 글
2016 Hitcon sleepy holder [Again] (0) | 2018.03.22 |
---|---|
2016 Hitcon secret holder [Again] (0) | 2018.03.21 |
2018 N1CTF vote (0) | 2018.03.12 |
2014 Hack.lu CTF OREO (0) | 2018.03.06 |
TRUSTEALTH CTF sohard (0) | 2018.03.02 |