목록Wargame Writeups (64)
White Security
Daddy told me I should study arm. But I prefer to study my leg! Download : http://pwnable.kr/bin/leg.c Download : http://pwnable.kr/bin/leg.asm ssh leg@pwnable.kr -p2222 (pw:guest) Toddler's Bottle 8번 문제. ARM Assembly 의 반대를 Leg 라고 표현하는 고급 유머가 들어있습니다. ssh 에 접속하게 되면 busybox 환경으로 기본 명령어들을 제외하고는 대부분 사용이 불가능하므로 소스를 읽고 풀어내야 합니다. #include #include int key1(){ asm("mov r3, pc\n"); } int key2(){ asm( "pu..
Mom? how can I pass my input to a computer program? ssh input2@pwnable.kr -p2222 (pw:guest) Toddler's Bottle 7번 문제. 설명대로 입출력 제어와 관련된 문제입니다. #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 :)\..
Daddy, teach me how to use random value in programming! ssh random@pwnable.kr -p2222 (pw:guest) C 언어의 랜덤함수에 관한 문제입니다.. #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; } rand() ..
Mommy told me to make a passcode based login system. My initial C code was compiled without any error! Well, there was some compiler warning, but who cares about that? ssh passcode@pwnable.kr -p2222 (pw:guest) Toddler's Bottle 5번 문제입니다. c 언어로 작성한 로그인 프로그램에 문제가 있다고 하네요. #include #include void login(){ int passcode1; int passcode2; printf("enter passcode1 : "); scanf("%d", passcode1); fflush(stdin..
Papa brought me a packed present! let's open it. Download : http://pwnable.kr/bin/flag This is reversing task. all you need is binary Toddler's Bottle 4번 문제입니다. papa가 packed present 를 주셨다고 하는데요. 바이너리만으로 풀 수 있는 리버싱 문제라고 합니다. [root@centos7 ~]# ./flag I will malloc() and strcpy the flag there. take it. 주어진 바이너리를 실행해 보면 malloc() 과 strcpy 함수를 사용하여 플래그를 복사하고 있다는 힌트를 줍니다. (gdb) info file Symbols from "..
Nana told me that buffer overflow is one of the most common software vulnerability. Is that true? Download : http://pwnable.kr/bin/bof Download : http://pwnable.kr/bin/bof.c Running at : nc pwnable.kr 9000 Toddler's Bottle 3번 문제입니다. 이름으로 추측할 수 있듯 버퍼 오버 플로우에 관한 문제인데요. netcat 을 사용하여 통신하라고 되어 있네요. 윈도우즈용 netcat은 이곳에서 다운받을 수 있습니다. #include #include #include void func(int key){ char overflowme[32]; pr..
Daddy told me about cool MD5 hash collision today. I wanna do something like that too! ssh col@pwnable.kr -p2222 (pw:guest) Toddler's Bottle 2번 문제입니다. 이전 문제와 마찬가지로 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> hex ( 0x21DD09EC - ( 0x01010101 * 4 ) ) '0x1dd905e8' 목표값인 0x21DD09EC에서..
엄마! 리눅스 파일 디스크립터가 뭐야? pwnable.kr Toddler 1번 응애응애 문제입니다. 파일 디스크립터에 대한 기본적인 이해를 요하는 문제로서 리눅스와 c언어에 대한 기본적인 이해만 있다면 풀 수 있습니다. putty나 openssl 등의 ssh 콘솔을 사용하여 접근을 시도하면 홈 폴더에 파일이 3개 존재하는 것을 확인할 수 있습니다. fd 라는 이름의 실행가능한 파일에 user sticky bit가 붙은 것을 확인할 수 있군요. 리눅스 특수권한에 대한 설명 덕분에 fd 프로그램을 실행하면 일시적으로 fd_pwn 의 권한을 가지게 되므로 flag 파일의 내용을 확인할 수 있게 됩니다. fd 프로그램의 소스 파일인 fd.c 를 살펴 보겠습니다. #include #include #include ..