바이너리 파일을 다운로드한다.
다운로드한 바이너리 파일을 살펴보녀 32-bit ELF 파일이고, 메모리 보호 기법으로는 NX bit가 걸려있는 것을 확인할 수 있다.
gdb를 통해 main 함수를 디스어셈해보면, main 함수에서 0x116d56d를 인자로 vuln라는 함수를 호출하는 것을 볼 수 있다.
이 vuln함수를 디스어셈해보면, gets 함수를 통해 사용자의 입력을 받고 있다( Buffer Overflow 발생 ).
그리고, ebp+0x8( 인자로 전달받은 값 )이 0xbfb416이면 /bin/sh를 인자로 system 함수를 호출하고 있다( Buffer Overflow를 통해 인자의 값을 0x116d56d에서 0xbfb416으로 바꾸어주면 Shell을 실행시킬 수 있다 ).
더미값으로 64( buf ) + 8( ebp에서 vuln함수의 인자까지의 거리 )를 전송한뒤 0xbfb416를 전달하면 Shell이 실행된다.
Written by choi_jiung
'CTF 중점 스터디' 카테고리의 다른 글
Reversing.kr - Easy Keygen Write up (0) | 2019.11.12 |
---|---|
Newbie CTF REC Write up (0) | 2019.11.11 |
Wargame.kr_db is really good_Write up (0) | 2019.11.03 |
Newbie CTF_babypwn 풀이_정세인 (0) | 2019.11.03 |
N00bCTF - very ezzzzzz!! Write up (0) | 2019.11.03 |