본문으로 바로가기

buf2와 go가같으면 setuid를 level10으로 설정해주고 /bin/sh를 실행해준다!

따라서 우리는 buf2 == go로 만들어주어야 한다.


위의 소스코드는 fgets 부분에서 bof가 터진다.

buf를 40만큼 입력받는데 buf의 크기는 10이다.

따라서 10을 넘어서 입력을 받으면 언젠가는 buf2를 침범하게 될것이다.

buf와 buf2사이의 거리는 10이지만, 리눅스 자체에서 생성된 dummy data로 인해 값이 약간 다르다.

하지만 이러한 dummy data가 크지는 않을것임을 두 변수사이의 거리가 10밖에 되지 않으므로 예측할수있다.

따라서 약간의 게싱을 해주었다.


풀었다!


'System Hacking ( pwnable ) > hackerschool FTZ Write-up' 카테고리의 다른 글

[FTZ] level11 ( write - up )  (0) 2019.05.27
[FTZ] level10 ( write - up )  (0) 2019.05.21
[FTZ] level8 ( wirte - up )  (0) 2019.05.21
[FTZ] level7 ( write - up )  (0) 2019.05.21
[FTZ] level6 ( write - up )  (0) 2019.05.21