ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [F.T.Z] Level 19
    Wargame/F.T.Z 2022. 10. 5. 05:08
    반응형

    Level 19를 풀어보자.

     

    Level 19의 hint를 살펴보자.

    F.T.Z의 초반 Level에서나 보던 아주 짧은 hint다.

    3줄이기는 하지만 buf 배열도 있고, overflow를 할 수 있는 gets 함수도 있다.

    있을건 대충 있는 것 같으니 다음 단계로 가보자.

    <Level 19의 hint>

     

    gdb로 attackme 파일의 main을 분석해보자.

    buf 배열이 ebp에서 40 바이트만큼 떨어져 있는 것이 보인다.

    sfp의 4 바이트를 더하면 ret까지는 44 바이트만큼 떨어져 있다는 것을 알 수 있다.

    NOP를 44 바이트만큼 채우고 ret를 변조하면 공격이 될 것이다.

    <attackme 파일의 gdb 분석>

     

    이번 문제는 main 함수에 setreuid가 없으므로, setreuid가 포함된 쉘코드로 환경 변수를 만들도록 하자.

    쉘코드의 앞에 NOP를 25 바이트만큼 넣은 것은 특별한 이유는 없다.

    단지, NOP를 어느 정도 넣으니 쉘코드가 더 잘 실행되었다. (다른 블로그들도 많이들 하고 있었다..)

    <환경 변수 선언>

     

    선언한 환경 변수의 주소를 알아보기 위해 코드를 작성한다.

    앞의 Level 들에서도 많이 했었기 때문에 넘어가도록 하자.

    <환경 변수의 주소를 알기 위한 코드>

     

    NOP를 44 바이트만큼 채우고, 환경 변수의 주소를 입력한 페이로드로 공격을 수행한다.

    그러자 비밀번호가 나타났다.

    <나타난 비밀번호>

    반응형

    'Wargame > F.T.Z' 카테고리의 다른 글

    [F.T.Z] Level 20  (1) 2022.10.09
    [F.T.Z] Level 18  (0) 2022.10.05
    [F.T.Z] Level 17  (0) 2022.10.01
    [F.T.Z] Level 16  (1) 2022.09.30
    [F.T.Z] Level 15  (0) 2022.09.29

    댓글

Designed by Tistory.