FTZ level14 Write-Up

2019. 7. 24. 00:36
728x90
728x90
728x90

FTZ level14 풀어보자.

 

[사진 1]

hint를 보면 bof 문제인 것을 알 수 있다. 이전 문제들과 다른 점은 setreuid 함수로 level15 계정의 권한을 획득하고 system 함수로 쉘을 실행시켜준다. 따라서 fgets 함수에서 buf 변수의 버퍼를 넘치게 해서 check 변수의 값을 0xdeadbeef로 넣어주면 될 것 같다.

 

 

[사진 2]

먼저 attackme 파일을 /home/level14/tmp/ 디렉터리에 복사한다.

그리고 gdb를 통해 main 함수의 어셈블리어 코드를 보면 fgets 함수를 호출하기 전에 ebp-0x38 주소를 eax 레지스터에 저장하는 것으로 보아 이 곳이 변수 buf의 공간이다. 그리고 ebp-0x10 값과 0xdeadbeef 값을 비교하는 것으로 보아 ebp-0x10 이 곳이 check 변수의 공간이다.

 

 

[사진 3]

따라서 스택은 위와 같이 형성될 것이다. buf 변수부터 check 직전까지의 크기는 40bytes이다.

 

 

[사진 4]

위와 같이 임의의 값 "\x90"을 40개 넣어주고 변수 check의 값으로 0xdeadbeef를 넣어주어 attackme 파일을 실행하면 level15 계정의 권한으로 쉘이 실행된다. 그리고 my-pass 명령어로 level15 계정의 password를 확인할 수 있다.

728x90
728x90

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

FTZ level16 Write-Up  (0) 2019.07.24
FTZ level15 Write-Up  (0) 2019.07.24
FTZ level13 Write-Up  (0) 2019.07.24
FTZ level12 Write-Up  (0) 2019.07.23
FTZ level11 Write-Up  (0) 2019.07.23

+ Recent posts