본문 바로가기

wargame/pwnable.kr

[pwnable.kr]fd 풀이

반응형

pwnable.kr의 첫번째 문제입니다.

접속해봅시다.

이쁜 로고가 맞이해주네요

더보기

flag파일이 있는데 권한이 부족해서 읽을 수가 없네요

fd실행파일을 이용해야합니다.

fd파일의 소스를 보니 위와 같습니다.

보니까 strcmp로 buf와 "LETMEWIN"을 비교해서 같은 값을 가지면

flag파일을 띄어주네요

그럼 어떻게 buf에 값을 넣을 수 있을까요?

ssize_t read (int fd, void *buf, size_t len)

출처: https://sonseungha.tistory.com/279 [Developer's Delight]

 

[파일입출력] 2. read()로 파일 읽기

지난 번 파일을 열었다면, 이번엔 열려있는 파일을 읽어보겠습니다. 가장 대표적인 저수준 파일 입출력에서는 POSIX에 정의된 read() 시스템 콜을 사용하여 파일을 읽어 들이는데요, 파일 오픈 시

sonseungha.tistory.com

read()의 원형을 봅시다. 주어지는 fd로 open 시스템콜을 한다고 하네요

fd는 FileDescriptor의 약자입니다.

리눅스에서 0,1,2는 각자 표준입력 표준출력,표준에러를 가르키고 그 뒤로는 각 파일별로 fd값을 갖게 됩니다.

즉 read에서 fd를 0으로 준다면 buf에 값을 넣을 수 있습니다.

이부분을 통해서 fd를 0으로 만들어주면 되겠네요

atoi()는 문자값을 int값으로 바꿔주는 함수입니다.

0x1234는 10진수로 4660이네요 

바로 넣어줍시다.

깔끔하게 클리어~

 

'wargame > pwnable.kr' 카테고리의 다른 글

[pwnable.kr]flag 풀이  (0) 2021.06.11
[pwnable.kr] collision 풀이  (0) 2021.06.11
[pwnable.kr] bof 풀이  (0) 2021.06.11