본문으로 바로가기

[pwn][pwnable.kr] : 파일 디스크립터

category CTF/CTFs 2021. 1. 3. 23:09
728x90
반응형

 

유닉스, 리눅스 시스템은 파일이다. 시스템에서 프로세스가 이 파일들을 접근할 때에 파일 디스크립터라는 개념을 이용한다. 파일 디스크립터는 0이 아닌 정수이며  0, 1, 2, 가 있으며 각각 표준 입력, 표준 출력, 표준 에러이다. 관련 문제로는 pwnable.kr의 fd이고 이 문제가 파일 디스크립터라는 개념을 이용하며 소스 코드는 다음과 같다.

read 함수는 fd는 파일 디스크립터 ( 0,1,2) , buf는 파일을 읽어들일 버퍼, 32는 버퍼의 크기이다. 즉 fd가 0이 되게 만들어주면 표준 입력을 할 수 있다. atoi(argv [1]) - 0x1234를 보아 프로그램을 실행할 때 인자로 4660 (10진수 4660은 16진수 1234)를 입력하면 0이 된다.

 

인자로 4660을 입력하자 입력을 할 수 있게 되며

if문 안의 코드를 실행하게끔 LETMEWIN을 입력하면 플래그를 얻을 수 있다.

1,2는 그리고 fd 값이 3이 되면?

다음과 같이 fd의 결과가 1과 2 되는 값을 입력해봤다.

 

 

 

728x90
반응형

'CTF > CTFs' 카테고리의 다른 글

[Basic] Buffer Over Flow Note - 1  (0) 2022.06.06
[gdb] : Break Point  (0) 2021.01.03
[N00bCTF][MISC]  (0) 2021.01.03
[ctfLearn][Review] : Inj3ction Time  (0) 2020.12.27
[weCTF2020] : Build Up  (0) 2020.12.26