ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • level13
    war game Write up/ FTZ 2018. 11. 1. 02:18

    이 문제는 이전 문제와 다르게 스택가드라는 개념이 추가된 문제이다.

    소스코드를 보면 아래와 같다.



    buf string value에 1024 byte 를 할당시켜주고 인자값을 buf 변수에 copy하는데 

    strcpy함수는 길이 체크를 하지 않기 때문에 취약점이 존재하므로 이곳을 노려야 한다.

    if문은 i 값이 0x1234567이 아니면 에러를 뿜는다. kill 함수를 보면 signal(11, SIGEGV)를 전달하므로 세그먼트 폴트를 반환한다.

    따라서 i 값 즉, 스택가드 부분은 건드리지 않은채 버퍼오버플로우를 일으켜야 한다는 말이다.



    먼저 gdb로 분석을 해보자.. 빨간줄을 그어 놓은 곳이 바로 비교하는 어셈인데 이 곳을 브포로 잡은 후 실행을 시켜본다.



    시작 지점은 0xbffff1c0


    0x1234567이 있는 주소는 0xbfffe944 

    0x1234567의 밑에 부분은 바로 ret 주소가 된다.

    즉 ret  까지의 거리는 1052이다.

    아래는 스택구조이다.


    이로써 모든 준비가 끝났다. 환경변수를 등록해준 후 환경변수 주소를 찾은 후 

    스크립트를 짜주면 된다.


    정답은 what that nigga want? 

    'war game Write up > FTZ' 카테고리의 다른 글

    level15  (0) 2018.11.14
    level 14  (0) 2018.11.14
    leve12  (0) 2018.11.01
    level11  (0) 2018.10.28
    level10  (0) 2018.10.09
Designed by Tistory.