codegate1 [write-up]Codegate 2017 babypwn 코드게이트를 앞두고 옛날에 풀었던 babypwn을 다시 풀어봤다. 먼저 바이너리를 확인해보니 32비트 바이너리였다. 보호기법은 canary와 nx가 걸려있었다. 소켓 프로그램이었으며 디폴트 포트는 8181이었다. 또한 argv로 포트를 지정할 수 있었다. send와 recv로 메시지를 쓸 수 있는 프로그램이었다. 그런데 메시지를 쓸 때 정해진 배열보다 많은 입력을 받아서 bof가 발생한다. send로 출력하기 때문에 카나리 위치+1까지 버퍼를 덮어씌우면 카나리 릭 또한 가능하다. system 함수가 사용되었기 때문에 system plt를 쓸 수 있다. 소켓 프로그램이므로 /bin/sh가 아닌 리다이렉션을 해서 /bin/sh &0을 넣으면 된다. payload # usr/bin/env python # ry.. 2018. 1. 31. 이전 1 다음