System&Write up/FTZ

FTZ level14 -> level15 Write up

Jubil 2017. 9. 25. 19:13
반응형

FTZ Level 14

 

ID : level14

Passwd : what that nigga want?

 


접속해서 ls 명령어로 파일과 디렉터리를 확인합니다.

 


cat 명령어로 hint를 열어봅니다. buffgets로 크기 제한을 두고 값을 입력 받습니다. 하지만 buf의 크기는 20byte. 크기 제한이 조금 잘못된 것 같습니다. 그리고 지금까지와는 다르게 셸코드를 통해서 쉘을 띄우는 게 아니라 조건에 맞으면 알아서 띄워줍니다.


tmp에 복사하고 gdb로 열어 main 함수를 디스어셈블 해봅시다.

 


fgets 함수에서 첫 번째 인자, 즉 마지막으로 push하는 인자가 buf의 시작 주소가 될 것입니다.


main+17을 보면 buf의 시작 주소가 ebp-56입니다.

main+29를 보면 check의 주소가 ebp-16입니다.


ebp-56 ~ ebp-16 dummy 값으로 채우고 check를 변조하면 되겠네요. 그리고 fgets 함수이니 |(파이프)를 사용해서 전달 해야겠죠? 0xdeadbeef를 입력할 때는 리틀 엔디안 방식으로 넘겨줍시다.

 

payload : (python –c ‘print “A”*40 + “\xef\xbe\xad\xde”’; cat) | ./attackme

 

원본 파일에 공격해봅시다.

 


exploit!

감사합니다.

반응형

'System&Write up > FTZ' 카테고리의 다른 글

FTZ level16 -> level17 Write up  (0) 2017.09.25
FTZ level15 -> level16 Write up  (0) 2017.09.25
FTZ level13 -> level14 Write up  (0) 2017.09.25
FTZ level12 -> level13 Write up  (0) 2017.09.24
FTZ level11 -> level12 Write up  (0) 2017.09.24