티스토리 뷰




FTZ level9

pw : apple


레벨 9입니다.


먼저 힌트를 보겠습니다.


재밌어보이는 코드가 나왔습니다.


fgets로 40바이트 만큼 크기가 10인 buf에 입력을 받네요.ㅋㅋㅋ


이것은 버퍼 오버플로우가 발생합니다.


그리고 buf2의 첫 2바이트가 “go”이면 쉘을 실행시켜줍니다.


버퍼 오버플로우로 buf2의 값을 수정하면 될 것 같습니다.

참고로 알아야 할 것이 있습니다.


‘먼저 선언된 변수는 높은 주소를 가진다’ 라는 것 인데요.

따라 메모리상에서


|   buf |  buf2 |

low<- -> high address


이렇게 배정이 됩니다.


메모리에서 변수는 2의 승만큼 배정되기 때문에


10바이트를 선언하니 16바이트가 메모리에 배정되죠.


따라서 buf[16]을 입력하고 go라는 문자열을 입력하면 되겠죠?



쉘이 실행된 상태입니다.


my-pass명령어를 입력하겠습니다.



Level10 Password is "interesting to hack!".






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

[Hackerschool FTZ] Level11 write-up  (0) 2018.01.15
[Hackerschool FTZ] Level10 write-up  (0) 2018.01.14
[Hackerschool FTZ] Level8 write-up  (0) 2018.01.14
[Hackerschool FTZ] Level7 write-up  (0) 2017.12.31
[Hackerschool FTZ] Level6 write-up  (0) 2017.12.31
Comments