Wargame/pwnable.kr

[pwnable.kr] fd

cgy12306 2020. 1. 26. 21:29

[fd]

ssh fd@pwnable.kr -p2222로 접속해보면 fd라는 바이너리가 보인다.

코드를 보면 아래와 같다.


첫번째 인자에서 0x1234를 빼서 fd라는 정수형 변수에 담고, read 함수를 fd와 buf를 이용해 호출한다.

fd 변수를 파일 디스크립터로 사용하게 되는데, 파일 디스크립터는 프로세스에서 특정 파일을 참조할 때 사용되는 값이다.

  • 0 : 표준 입력, stdin

  • 1 : 표준 출력, stdout

  • 2 : 표준 에러, stderr.

if문에서 buf와 LETMEWIN이라는 값을 비교해서 같으면 good job을 출력하고 /bin/cat flag를 수행하고 종료한다.

우리는 fd라는 변수값을 0으로 만들어서 buf라는 변수에 LETMEWIN을 입력하면 된다.

0x1234는 10진수로 4660이다.


첫번째 인자로 4660을 넘겨주고 LETMEWIN을 입력하자.