War game/pwnable.kr
[pwnable] fd 풀이
power-girl0-0
2021. 12. 27. 23:40
728x90
안녕하세요! ლ(╹◡╹ლ)
풀이 간단히 적고 가겠습니다~~
1. 문제
문제에 주어진대로 접속하면, 존재하는 3개의 파일을 확인할 수 있다.
fd.c파일을 열어 c언어 코드를 확인할 수 있다.
2. 풀이
c코드를 분석해보면, 아래와 같은 조건을 확인할 수 있다.
1. 입력받은 인자값에서 0x1234 뺀 값을 read함수의 fd 위치에 넣어준다. 2. read함수를 통해, 입력받은 값이 LETMEWIN이라는 문자일 경우, flag를 획득한다. |
즉, fd의 값을 0으로 만들어서, read함수가 표준입력 역할을 수행하도록 만들면 된다.
※ fd (file descriptor) : 리눅스나 유닉스에서 프로세스가 파일을 다룰 때 사용하는 개념 ⇨ 0 : 표준입력 ⇨ 1 : 표준출력 ⇨ 2 : 표준에러 |
따라서, 0x1234를 10진수로 바꾼 값인 4660을 인자로 보내면, 아래와 같이 사용자는 값을 입력할 수 있다.
여기에 "LETMEWIN"문자열을 입력하면, flag를 획득할 수 있다.
3. flag 획득
그럼 안녕히 계세요~~ (ノ◕ヮ◕)ノ*:・゚✧
728x90