ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Pwnable.kr bof 풀이
    Wargame/Pwnable.kr 2019. 7. 22. 11:21

    이번엔 진짜 bof 문제를 들고 와봤습니다! 원래는 그 뭐냐 파이썬 pwntools 모듈 이용해서 푸는 방법을 써볼라 했는데 전에 쓰던 칼리 리눅스에는 그게 자꾸 안 깔리고 이것저것 문제가 많길래 그냥 쓰던 우분투로 갈아탔습니다

    대회에서도 우분투를 써야할지 칼리를 좀 보완해서 써야할지 고민이 되지만 일단은 우분투로 써보겠습니다아

    일단 소스코드와 실행파일(bof.c, bof)을 같은 Downloads 디렉토리에 저장한 뒤 봤더니 굉장히 익숙한 bof 코드가 보이네요

    간략히 해석해보면 32바이트짜리 overflowme만 BOF 공격해서 쉘을 따주면 되는거니까, 일단 디버깅을

    해서 cmp구간이랑 입력받는 구간의 거리를 구할라 그랬더니 권한이 없다네요 그럼 sudo

    도 안되네 뭐 그럼 어셈블리 코드만 보고 판단을 해보겠습니다

    cmp가 입력값과 0xcafababe를 비교하는 구간인데, 그 직전에 gets(overflowme)가 나왔으므로 func+35의 call은 입력받는 구간, 그 전 func+29까지도 gets 함수의 영향을 받는 구간이겠죠 (설명 부실)

    그럼 입력받는 곳과 비교하는 곳의 거리가 0x8 + 0x2c = 0x34 = 52(십진수)이므로 아무 문자나 52개 넣고 뒤에 0xcafebabe 넣어주면 되겠네요

    물론 파일은 BOF를 일으킨 뒤에 실행해야 하므로 저렇게 페이로드를 실행하면 쉘을 따서 flag값을 확인할 수 있습니다 :D

     

    2019.7.22

    'Wargame > Pwnable.kr' 카테고리의 다른 글

    Pwnable.kr random 풀이  (0) 2019.07.22
    Pwnable.kr passcode 풀이  (0) 2019.07.22
    Pwnable.kr flag 풀이  (0) 2019.07.22
    Pwnable.kr collision 풀이  (0) 2019.07.21
    Pwnable.kr fd 풀이  (0) 2019.07.21
Designed by Tistory.