Wargame/FTZ

[FTZ]level9

D4tai1 2019. 9. 5.

50%가 눈앞에 보이네요!!

 

조금 더 달려봅시다.

 

[그림1] hint 파일 확인

이런거 보면 바로 확인해보고 싶지 않나요?

따라서

'a'로 10바이트를 채우고 2바이트는 "go"로 채우려고 합니다.

 

[그림2] 'aaaaaaaaaago'로 입력

아무런 반응이 없네요?

 

 

[그림3] disas main 내용의 일부

 

보면

fgets(eax, 0x0804856a, 40); 이고

eax는 ebp에서 40바이트 만큼 떨어져 있네요!!

 

'A'를 19개 입력하였습니다.

 

[그림4] 'A'*19를 입력

원래는 20개를 입력하려고 했으나 하나가 빠졌네요..

 

그리고

[그림3]에서 보면

strncpy(eax, 0x084856a, 2); 이고

eax는 ebp에서 24만큼 떨어져 있네요.

 

[그림5] [ebp-24]확인

0x084856a = "go"

[ebp-24] = "AAA"

네요.

 

40-24 = 16이므로

 

16바이트 뒤에

2바이트만큼만 "go"로 적으면

될 것 같지 않나요?

 

fgets가 40바이트만큼 입력받으니

모든 내용을 "go"로 덮어줍니다.

 

[그림6] exploit작성

 

(python -c 'print "go"*20'; cat) | /usr/bin/bof 와 같이

exploit을 작성합니다.

 

my-pass를 실행합니다.

 

[그림7] password 확인

 

Level10 Password is "interesting to hack!".

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

[FTZ]level11  (0) 2019.09.07
[FTZ]level10  (0) 2019.09.05
[FTZ]level8  (0) 2019.09.05
[FTZ]level7  (0) 2019.09.05
[FTZ]level6  (0) 2019.09.05

댓글