ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Pwnable.kr #3 bof
    Wargame 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

    댓글

Designed by Tistory.