Category: Wargame

blowfish.smashthestack.org – Level5 풀이

Level5의 소스는 다음과 같다. #include <stdio.h> int main() { char buffer[1024]; if (getenv(VULN) == NULL) { fprintf(stderr,Try Again!!\n); exit(1); } strcpy(buffer, (char *)getenv(VULN)); printf(Environment variable VULN is:\n\%s\.\n\n, buffer); return 0; } 해당 위치에서 BOF가 발생함을 알수 있다. 하지만 이전 문제와는 다르게 환경변수를 이용하여아 한다. 스택에서 환경변수가 위치하는 주소를 찾아보도록 하자. level5@blowfish:/levels/tmp/level5$ export VULN=AAAAAAAA level5@blowfish:/levels/tmp/level5$ gdb …

blowfish.smashthestack.org – Level4 풀이

Level4 부터는 /levels 폴더 이하에 있는 파일을 이용하여 문제풀이를 한다. level4.c 파일을 확인해보면 다음과 같다. #include <stdio.h> int main(int argc, char * argv[]) { char buf[256]; if(argc == 1) { printf(Usage: %s input\n, argv[0]); exit(0); } strcpy(buf,argv[1]); printf(%s, buf); } 우리는 strcpy 함수부분에서 BOF(Buffer OverFlow)가 발생함을 알 수 있다. Buffer 공간이 충분하므로 여기에 쉘코드를 넣어서 …

blowfish.smashthestack.org – Level2,3 풀이

Level2에 접속하여 README 파일을 읽어보면 다음과 같다. There is a backdoor to the next level hidden somewhere on this system, find it, and get the pass for level3 from /pass/level3 풀이를 하면 다음과 같다. level2@blowfish:~$ find / -user level3 -perm +4000 2>/dev/null /usr/bin/false level2@blowfish:~$ /usr/bin/false Stand-alone shell (version 3.7) > cat /pass/level3 l3thal_Rul3Z! -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Level3에 …

blowfish.smashthestack.org – Level1 풀이

Level1 문제는 다음과 같다. Telnet to blowfish.smashthestack.org port 6666 to recieve an encrypted passwd. Decrypt it and log in to level2. 😉 접속을 하니 다음과 같이 암호화 된 문자열이 출력되었다. 해당 암호는 시저암호로 암호화 되어 있다. (Caesar cipher : http://en.wikipedia.org/wiki/Caesar_cipher) 해독하는 코드를 python으로 작성하여 보면 다음과 같다. #!/usr/bin/python s = 'GungJnfRnfl' ret = '' for …