본문 바로가기

FTZ

FTZ level 19

FTZ level 19

hint


갑자기 너무 간단해져서 당황스럽지만 해오던 방법대로 풀어보자

ebp-40부터 buf를 받는 것을 확인할 수 있다.

환경변수를 만들고 그 주소를 확인한다.


근데 id가 안바뀐다.

찾아보니 setreuid(,)이 빠져 이 부분이 추가된 쉘코드가 필요하다고 한다.

그렇다면 일단 level20의 uid를 찾아 쉘코드를 만든다.

uid를 설정하는 코드

컴파일 시 –static –g옵션을 주어 컴파일 한다.


위 코드를 gdb로 까면 setreuid함수를 불러 인자를 넣는 부분이 있다.

그리고 disas setreuid를 해서 필요한 부분을 본다.

이 두 부분을 토대로 어셈블리 코드를 작성하면

mov ebx, 0xc1c

mov ecx, 0xc1c

mov eax, 0x46

int 0x80

이 된다.

objdump로 확인하면

인데 여기서 00을 지워줘야 하므로 어셈블리 코드에서 레지스터의 확장자 e를 빼준다.

이걸 토대로 코드를 작성하는데

여기까지 하다가 그냥 인터넷에 setreuid를 포함하는 쉘코드를 찾았다. 다음에 따로 직접 쉘코드를 만들어 보자.

새로 환경변수를 만들어주고


주소 확인


'FTZ' 카테고리의 다른 글

FTZ level 18  (0) 2016.12.23
FTZ level 17  (0) 2016.12.23
FTZ level 16  (0) 2016.12.23
FTZ level 15  (0) 2016.12.23
FTZ level 14  (0) 2016.12.23