-
[Pwnkr] Fd Write-up표튜터와 함께하는 Pwnable/Pwnable.kr Write-up 2019. 3. 25. 23:55
이제부터는 pwnable.kr을 풀어보도록 하겠다~ 새로운 시작!!ㅎㅎ
그 첫 번째 문제는 fd이다
fd.c의 소스코드를 보도록 하겠다.
코드를 보면 atoi함수를 이용해서 argv[1] 값을 인자로 넘겨준다.
이 코드의 의미는 즉, string을 숫자형태로 바꾸겠다는 의미이다.
그 값을 fd에 저장하고 이 fd는 read함수의 인자로 넘겨준다.
read함수의 첫번째인자는 fd = file descriptor를 의미하며
파이프 ,FIFO, 소켓, 터미널 디바이스, 파일 등 종류에 상관없이
모든 열려있는 파일을 참조할 때 사용한다고한다.
이 코드에서는 read함수를 이용해서 buf에 입력을 진행하기 때문에
fd값이 stdin을 의미하는 0이 되어야한다. 그러므로 argv[1]은 0x1234가
되어야하며 이는 10진수로 4660이다. 그러므로 4660을 argv[1]로 넘기면
buf에 입력을 할 수는 read함수가 실행된다. 다음으로는 strcmp가 있는
if문을 만나게 되는데 거짓이 되어야 if문이 진행되면서 "/bin/cat flag"가 실행되어
flag값을 볼 수 있도록 되어있다. 그러므로 우리는 strcmp의
return값을 0으로 되게만들어야 하므로 "LETMEWIN"을 입력해주자!
깔끔하게 flag를 볼 수 있었다.
반응형'표튜터와 함께하는 Pwnable > Pwnable.kr Write-up' 카테고리의 다른 글
[Pwnkr] Passcode Write-up (0) 2019.03.31 [Pwnkr] Horcruxes -> Write-up (0) 2019.03.29 [Pwnkr] Flag Write-up (0) 2019.03.28 [Pwnkr] Bof Write-up (0) 2019.03.26 [Pwnkr] Collision Write-up (0) 2019.03.26 댓글