Pwnable KR - blackjack

문제 int betting() //Asks user amount to bet { printf("\n\nEnter Bet: $"); scanf("%d", &bet); if (bet > cash) //If player tries to bet more money than player has { printf("\nYou cannot bet more money than you have."); printf("\nEnter Bet: "); scanf("%d", &bet); return bet; } else return bet; } // End Function `` ## 풀이 배팅할 금액을 입력하는 부분에 [Read More]

Pwnable KR - coin1

문제 netcat를 이용해서 들어가보자 가짜코인을 제한 시간 내에 찾아야한다. 30초가 지나면 시간초과로 다시 도전해야 한다. 풀이 처음에는 가짜코인을 한 번만 [Read More]

Pwnable KR - mistake

문제 힌트는 우선순위 mistake.c #include <stdio.h> #include <fcntl.h> #define PW_LEN 10 #define XORKEY 1 void xor(char* s, int len){ int i; for(i=0; i<len; i++){ s[i] ^= XORKEY; } } int main(int argc, char* argv[]){ int fd; if(fd=open("/home/mistake/password",O_RDONLY,0400) < 0){ printf("can't open password %d\n", fd); return 0; } printf("do not bruteforce...\n"); sleep(time(0)%20); char pw_buf[PW_LEN+1]; int len; if(!(len=read(fd,pw_buf,PW_LEN) > 0)){ printf("read error\n"); close(fd); return 0; } [Read More]

Pwnable KR - leg

문제 다운로드 파일의 내용을 읽고 flag 파일을 읽기 위한 조건을 맞추면 된다. c 코드를 보면 key1()+key2()+key3() == key을 만족하는 key를 사용자가 입력해야 한다. leg.c #include <stdio.h> #include <fcntl.h> int key1(){ asm("mov [Read More]

Pwnable KR - random

문제 문제를 풀면 1포인트를 준다. $ ls -l total 20 -r--r----- 1 random_pwn root 49 Jun 30 2014 flag -r-sr-x--- 1 random_pwn random 8538 Jun 30 2014 random -rw-r--r-- 1 root root 301 Jun 30 2014 random.c #include <stdio.h> int main(){ unsigned int random; random = rand(); // random value! unsigned int key=0; scanf("%d", &key); if( (key ^ random) == [Read More]