이번엔 내가 제일 쉽게 풀었던 1996 문제를 풀어보겠다.
우선 1996 바이너리부터 checksec 해보자.
64bit 기반의 쉘 코드 사용이 불가능한 바이너리인 것을 알 수 있다.
IDA로 무슨 프로그램인지 디컴파일해보자.
이 main은 g++ pwn 문제처럼 C++ 기반으로 작성되었다. 그러나 걱정할 필요 없다.
name을 cin으로 받기 때문에 길이 제한이 없다. 따라서 0x410+8byte만큼 dummy를 채우고 RET 자리에 spawn_shell(void) 함수의 첫 주소를 주면 된다.
이 함수의 첫 주소는 0x400897이다. exploit code를 작성해보자.
실행시켜보면....!
flag가 나오는 것을 볼 수 있다.
'Hacking > HackCTF' 카테고리의 다른 글
HackCTF RTL_Core Write-up (0) | 2020.01.07 |
---|---|
HackCTF Random Key Write-up (0) | 2020.01.07 |
HackCTF poet Write-up (0) | 2020.01.07 |
HackCTF g++ pwn Write-up (0) | 2020.01.07 |
HackCTF RTL_World Write-up (0) | 2020.01.06 |