Try to be the expert.

Ainsetin's Hacking & PS & Math

Hacking/HackCTF

HackCTF 1996 Write-up

Ainsetin 2020. 1. 7. 11:23

이번엔 내가 제일 쉽게 풀었던 1996 문제를 풀어보겠다.

 

 

우선 1996 바이너리부터 checksec 해보자.

 

 

64bit 기반의 쉘 코드 사용이 불가능한 바이너리인 것을 알 수 있다.

 

IDA로 무슨 프로그램인지 디컴파일해보자.

 

main()

이 main은 g++ pwn 문제처럼 C++ 기반으로 작성되었다. 그러나 걱정할 필요 없다.

 

name을 cin으로 받기 때문에 길이 제한이 없다. 따라서 0x410+8byte만큼 dummy를 채우고 RET 자리에 spawn_shell(void) 함수의 첫 주소를 주면 된다.

 

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