CIDY
[Pwnable.kr] 문제풀이(fd) 본문
// 32-bit, partial relro, nx
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char buf[32];
int main(int argc, char* argv[], char* envp[]){
if(argc<2){
printf("pass argv[1] a number\n");
return 0;
}
int fd = atoi( argv[1] ) - 0x1234;
int len = 0;
len = read(fd, buf, 32);
if(!strcmp("LETMEWIN\n", buf)){
printf("good job :)\n");
system("/bin/cat flag");
exit(0);
}
printf("learn about Linux file IO\n");
return 0;
}
1. 일단 실행 시에 숫자 인자를 하나 줘야 한다.
2. 그 인자에 0x1234를 뺀 값을 fd로 한다.
3. 그 값을 fd로 해서 buf에 read한다.
4. buf에 LETMEWIN\n을 적으면 된다.

'Hack > Pwnable' 카테고리의 다른 글
[Pwnable.tw] 문제풀이(CAOV) (0) | 2022.10.13 |
---|---|
[Pwnable.kr] 문제풀이(unexploitable) (0) | 2022.08.15 |
[Pwnable.kr] 문제풀이(collision) (0) | 2022.08.12 |
[Pwnable.kr] 문제풀이(bof) (0) | 2022.08.11 |
문자열 입출력함수 정리(중) (0) | 2022.08.08 |