본문 바로가기

Write Up/pwnable.kr3

bof - pwnable.kr pwnable.kr의 bof 문제이다. bof 문제는 전의 문제들과는 다르게 바이너리와 소스코드를 주는 형태였다(이게 정상이지 ㅎㅎ). 그렇다면 문제 코드를 살펴보도록 하겠다. #include #include #include void func(int key){ char overflowme[32]; printf("overflow me : "); gets(overflowme);// smash me! if(key == 0xcafebabe){ system("/bin/sh"); } else{ printf("Nah..\n"); } } int main(int argc, char* argv[]){ func(0xdeadbeef); return 0; } 문제 제목도 그렇고 형태도 그렇고 bof를 일으켜서 key 값을 변조.. 2023. 7. 3.
collision - pwnable.kr 위는 pwnable.kr의 collision 문제이다. 이번에도 바이너리를 안 주고 ssh에 접속해서 문제를 보라고 하는거 같다. ssh에 접속해서 문제 파일을 읽어보겠다. #include #include unsigned long hashcode = 0x21DD09EC; unsigned long check_password(const char* p){ int* ip = (int*)p; int i; int res=0; for(i=0; i 2023. 7. 3.
fd - pwnable.kr 위는 pwnable.kr 에서 받은 fd 문제이다. 따로 바이너리를 주지 않았던 문제였다. 사실 포너블 문제인데 바이너리를 받지 않았던적이 처음이라 시작부터 당황은 했지만 여기서 준 ssh 접속 정보를 통해서 접속부터 해봤다. ssh 접속을 하니 문제 바이너리, 소스코드, flag 파일이 있었다. flag 파일은 권한이 안된다고 떠서 바이너리를 이용해야 한다는 생각이 들었고 소스코드를 한번 읽어보았다. #include #include #include char buf[32]; int main(int argc, char* argv[], char* envp[]){ if(argc 2023. 7. 3.