-
Pwnable.kr #3 bofWargame Site/Pwnable.kr 2019. 3. 8. 21:39
3 단계 문제 bof 이다.
이번엔 netcat 을 통한 접근인 듯 하다.
우선 bof.c 에 대한 소스 코드를 살펴보자!
wget http://pwnable.kr/bin/bof
wget http://pwnable.kr/bin/bof.c
를 통해 실행파일 및 소스코드를 다운 받았다.
gdb 를 활용했다. (gdb bof)
그 뒤 intel 방식으로 바꿔준뒤, func 함수의 내용의 어셈블리 표현을 볼 수 있었다.
주목해야할 부분은 gets 함수와 key 값의 위치이다.
gets 함수는 <+35> 에 있으며, 그 인자는 ebp-0x2C 에 있는 것을 알 수 있으며,
key 와 카페 베이베를 비교하는 부분은 <+40> 에서 확인할 수 있다.
key 의 위치가 ebp+0x8 인 것을 확인할 수 있다.
결국 ebp - 0x2C ( 44 (-0x2C ~ -0x01) 에서 입력을 시작해서 ebp + 0x8 ( 8개 (0x00 ~ 0x07) ) 의 내용을 변경하기 위해서는
52 byte 의 문자가 들어가야한다. 그 뒤에 "\xbe\xba\xfe\xca" 를 넣어주면 된다. ( Little Endian )
그렇게 되면 /bin/sh 을 획득하게 된다 ~
Python 을 활용한 답안에 경우에는 여러 포스팅 자료를 참고해서 적용하였다.
짜잔!!
'Wargame Site > Pwnable.kr' 카테고리의 다른 글
Pwnable.kr #5 cmd2 (0) 2019.04.11 Pwnable.kr #4 cmd1 (0) 2019.04.09 Pwnable.kr #2 collision (0) 2019.02.24 Pwnable.kr #1 fd (0) 2019.02.24 댓글