목록Hacking/포너블.kr 문제풀이 (7)
미역줄기의 이모저모

1. 문제 확인 login 시스템기반 passcode를 만들었다고 한다. 컴파일러 warning이 있다는건가..? 일단 접속! 2. 문제 분석 passcode@pwnable:~$ ls -l total 16 -r--r----- 1 root passcode_pwn 48 Jun 26 2014 flag -r-xr-sr-x 1 root passcode_pwn 7485 Jun 26 2014 passcode -rw-r--r-- 1 root root 858 Jun 26 2014 passcode.c 음.. passcode는 실행 가능하고 소유 그룹이 passcode_pwn이고 r-s이니까 passcode를 통해 flag를 읽을 수 있겠다!! passcode.c 를 살펴보자! #include #include void lo..

1. 문제확인 리눅스에서 PATH environment가 뭐냐고? 일단 접속 2. 문제 분석 cmd1@pwnable:~$ ls -l total 20 -r-xr-sr-x 1 root cmd1_pwn 8513 Jul 14 2015 cmd1 -rw-r--r-- 1 root root 320 Mar 23 2018 cmd1.c -r--r----- 1 root cmd1_pwn 48 Jul 14 2015 flag cmd1은 실행할 수 있고.. 또 cmd1_pwn이니까 cmd1을 통해서 flag를 구할 수 있겠다! cmd1.c 코드를 살펴보면, #include #include int filter(char* cmd){ int r=0; r += strstr(cmd, "flag")!=0; r += strstr(cmd, "sh..

1. 문제확인 ssh lotto@pwnable.kr -p2222 로 접속! 2. 문제 분석그리고 ls -l로 파일과 권한 확인!lotto@pwnable:~$ ls -l total 24 -r--r----- 1 lotto_pwn root 55 Feb 18 2015 flag -r-sr-x--- 1 lotto_pwn lotto 13081 Feb 18 2015 lotto -r--r--r-- 1 root root 1713 Feb 18 2015 lotto.clotto_pwn을 가진 lotto를 통해 flag를 얻으면 되겠다! 그리고 -x니까 실행할 수 있겠네! 그전에 lotto.c 코드를 볼까 #include #include #include #include unsigned char submit[6]; void pla..

1. 문제확인 위와 같이 서버에 접속하면 blackjack관한 문제가 주어지고 위에 blackjack소스코드가 주어진다. 문제에서는 백만장자가 되면 flag값을 준다고 한다. 2. 문제 분석 사이트에 들어가서 문제 코드를 확인한다...(엄청 길다!!!) betting함수int betting() - { 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; } ..

1. 문제 확인ssh shellshock@pwnable.kr로 접속해줍니다 파일들도 확인했으니 shellshock.c를 분석해봅시다! 2. 문제 분석 shellshock@pwnable:~$ ls -l total 960 -r-xr-xr-x 1 root shellshock 959120 Oct 12 2014 bash -r--r----- 1 root shellshock_pwn 47 Oct 12 2014 flag -r-xr-sr-x 1 root shellshock_pwn 8547 Oct 12 2014 shellshock -r--r--r-- 1 root root 188 Oct 12 2014 shellshock.cflag를 알아야 하는데 현재 id가 shellshock이기 때문에 flag를 볼 수 있는 권한이 없다,..

1. 문제확인힌트는 operator priority 연산자 우선순위! ssh mistake@pwnable.kr -p2222 들어가자~! ls를 해보니 flag, mistake, mistake.c, password가 있군여 그럼 이제 mistake.c을 확인해볼까요?! #include #include #define PW_LEN 10 #define XORKEY 1 void xor(char* s, int len){ int i; for(i=0; i 0)){ printf("read error\n"); close(fd); return 0; } char pw_buf2[PW_LEN+1]; printf("input password : "); scanf("%10s", pw_buf2); // xor your input xo..

int main(){ int key=0; printf("Daddy has very strong arm! : "); scanf("%d", &key); 풀이를 시작하기에 앞서,, 저는 시스템 해킹에 대한 지식이 많지 않아서 틀린 생각을 갖고 풀 수 있습니다 혹시 풀이 과정중에 잘못된 개념이 있다면,, 알려주시면 정말 감사하겠습니다 두개의 다운로드 파일은 설치합니다 $ wget http://pwnable.kr/bin/leg.c $ wget http://pwnable.kr/bin/leg.asm $ cat leg.c leg.c 코드 확인! #include #include int key1(){ asm("mov r3, pc\n"); } int key2(){ asm( "push{r6}\n" "addr6, pc, $1\..