Wargame/FTZ
[FTZ]level9
50%가 눈앞에 보이네요!!
조금 더 달려봅시다.
이런거 보면 바로 확인해보고 싶지 않나요?
따라서
'a'로 10바이트를 채우고 2바이트는 "go"로 채우려고 합니다.
아무런 반응이 없네요?
보면
fgets(eax, 0x0804856a, 40); 이고
eax는 ebp에서 40바이트 만큼 떨어져 있네요!!
'A'를 19개 입력하였습니다.
원래는 20개를 입력하려고 했으나 하나가 빠졌네요..
그리고
[그림3]에서 보면
strncpy(eax, 0x084856a, 2); 이고
eax는 ebp에서 24만큼 떨어져 있네요.
0x084856a = "go"
[ebp-24] = "AAA"
네요.
40-24 = 16이므로
16바이트 뒤에
2바이트만큼만 "go"로 적으면
될 것 같지 않나요?
fgets가 40바이트만큼 입력받으니
모든 내용을 "go"로 덮어줍니다.
(python -c 'print "go"*20'; cat) | /usr/bin/bof 와 같이
exploit을 작성합니다.
my-pass를 실행합니다.
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 |
댓글