rev-basic-0
·
Wargame/Dreamhack
1. intro 2. code 및 분석 2.1. code int __cdecl main(int argc, const char **argv, const char **envp) { char v4[256]; // [rsp+20h] [rbp-118h] BYREF memset(v4, 0, sizeof(v4)); printf("Input : "); scanf("%256s", v4); if ( (unsigned int)check(v4) ) puts("Correct"); else puts("Wrong"); return 0; } _BOOL8 __fastcall sub_140001000(const char *a1) { return strcmp(a1, "Compar3_the_str1ng") == 0; } 2.2. 분석 앞선..
rev-basic-1
·
Wargame/Dreamhack
1. intro 2. code 및 분석 2.1. code int __cdecl main(int argc, const char **argv, const char **envp) { char v4[256]; // [rsp+20h] [rbp-118h] BYREF memset(v4, 0, sizeof(v4)); printf("Input : ", argv, envp); scanf("%256s", v4); if ( compare(v4) ) puts("Correct"); else puts("Wrong"); return 0; } _BOOL8 __fastcall sub_140001000(_BYTE *a1) { if ( *a1 != 'C' ) return 0i64; if ( a1[1] != 'o' ) return 0i64;..
ZeroShot
·
Wargame/Dreamhack
보호되어 있는 글입니다.
2022년을 떠나보내며
·
Diary
자체평가 : ★★★★☆ 올해도 이제 마지막 날이다. 올해 나는 무엇을 이루었고 무엇을 얻었는가. 목표했던 것들은 대부분 이루었다. 이에 대해서는 만족할만하다고 생각한다. 또한 약 반년간 해킹 공부를 하면서 지금까지 수년간 삽질했던 것과 대비해서 실력이 많이 늘어난 것은 확실하다. 다만, 한발만 더 나가면 어디 가서 해커라고 말할 수 있을 것 같은데, 그 한발을 올라서기 힘든 상황이다. pwnable 쪽은 확실히 직관력이 많이 요구되는 문제들이 많은데, 이것이 부족한 느낌을 많이 받는다. 예를 들자면 어디가 취약점인지 찾아냈지만 이것을 어떻게 잘 이용해야할지 잘 모른다거나, 어느정도 풀다가 막히는 부분이 생기면 더이상 나아가지 못할때이다. 지금도 높은 난이도가 아닌데도 불구하고 두 세문제가 중간쯤 풀어놓고..
coin1
·
Wargame/pwnable.kr
1. intro 2. code 및 분석 2.1. code 별도 코드 없음. 2.2. 분석 --------------------------------------------------- - Shall we play a game? - --------------------------------------------------- You have given some gold coins in your hand however, there is one counterfeit coin among them counterfeit coin looks exactly same as real coin however, its weight is different from real one real coin weighs 10, counter..
shellshock
·
Wargame/pwnable.kr
1. intro 2. code 및 분석 2.1. code #include int main(){ setresuid(getegid(), getegid(), getegid()); setresgid(getegid(), getegid(), getegid()); system("/home/shellshock/bash -c 'echo shock_me'"); return 0; } 2.2. 분석 흠... 초반이라 그런가... 문제가 영 재미가 없네 ;;; 파일 권한으로 set하고 shock_me 라는 메시지를 출력한다. 3. 취약점 확인 및 공격 준비 3.1. 취약점 CVE-2014-6271 3.2. 공격 준비 뭐...없다 그냥 CVE 취약점이라.... 요약하자면 실행하려하는 bash 명령어를 환경변수에 등록하여 이를 함..
mistake
·
Wargame/pwnable.kr
1. intro 2. code 및 분석 2.1. code #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 xor(pw_buf2, 10); if(!strncmp(pw_buf, pw_buf2, PW_LEN)){ printf("Password OK\n"); system("/bin/cat flag\n"); } else{ pri..
input
·
Wargame/pwnable.kr
1. intro 2. code 및 분석 2.1. code #include #include #include #include #include int main(int argc, char* argv[], char* envp[]){ printf("Welcome to pwnable.kr\n"); printf("Let's see if you know how to give input to program\n"); printf("Just give me correct inputs then you will get the flag :)\n"); // argv if(argc != 100) return 0; if(strcmp(argv['A'],"\x00")) return 0; if(strcmp(argv['B'],"\x20\x0a\..
random
·
Wargame/pwnable.kr
1. intro 2. code 및 분석 2.1. code #include int main(){ unsigned int random; random = rand(); // random value! unsigned int key=0; scanf("%d", &key); if( (key ^ random) == 0xdeadbeef ){ printf("Good!\n"); system("/bin/cat flag"); return 0; } printf("Wrong, maybe you should try 2^32 cases.\n"); return 0; } 2.2. 분석 단순히 랜덤값과 입력받은 키 값의 xor 값이 deadbeef면 플래그를 준다. 3. 취약점 확인 및 공격 준비 3.1. 취약점 씨드가 없는 랜덤값은 항상..
passcode
·
Wargame/pwnable.kr
1. intro 2. code 및 분석 2.1. code #include #include void login(){ int passcode1; int passcode2; printf("enter passcode1 : "); scanf("%d", passcode1); fflush(stdin); // ha! mommy told me that 32bit is vulnerable to bruteforcing :) printf("enter passcode2 : "); scanf("%d", passcode2); printf("checking...\n"); if(passcode1==338150 && passcode2==13371337){ printf("Login OK!\n"); system("/bin/cat flag"..