blowfish.smashthestack.org – Level6 풀이

문제 코드는 아래와 같다. #include <stdio.h> #include <string.h> int badfunc(char *string1, char *string2) { char buffer1[1024]; char buffer2[1024]; if(strlen(string1)>=sizeof(buffer1)) { printf(\n\t(!) overflow detected.\n); printf(\t(-) exiting…\n\n); return -1; } else { printf(\n\t(+) copying string1 into the buffer…); snprintf(buffer1,sizeof(buffer1),%s,string1); printf(\t\t[done] (%d)\n, strlen(buffer1)); } if(strlen(string2)>=sizeof(buffer2)*3) { printf(\n\t(!) overflow detected.\n); printf(\t(-) exiting…\n\n); return -1; } else { printf(\t(+) copying …

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 …

FSB (Format String Bug) 정리

/ 해당 문서는 공부를 하며 정리한 내용으로 틀린 부분이 있을수도 있습니다. / 해커스쿨 level20 문제를 풀어보면서 FSB (Format String Bug)에 대해 알아보자. #include <stdio.h> main(int argc,char **argv) { char bleh[80]; setreuid(3101,3101); fgets(bleh,79,stdin); printf(bleh); } 문제 소스는 다음과 같다. FSB는 printf(bleh) 와 같이 프로그래머의 귀차니즘(?)으로 인해 발생한다. 풀이과정은 다음과 같다. [level20@ftz level20]$ (python -c "print ‘AAAA’ …

SSH 접속 Port 변경 (SELinux 설정 방법)

Fedora 9에서 SSH 접속 Port 변경 시 데몬이 제대로 안뜨는 경우가 있다. selinux 때문인데 다음과 같이 수정하도록 한다. semange port -t ssh_port_t -p tcp 1234 만약 semange 명령어가 없다면 아래와 같이 찾아보면 된다. [root@localhost byjjoon]# yum whatprovides /usr/sbin/semanage Loaded plugins: fastestmirror Determining fastest mirrors * base: mirror.khlug.org * extras: mirror.khlug.org * updates: mirror.khlug.org base | …

FreeNX 설치 방법

http://www.nomachine.com/ 에서 다운로드 받는다. Client, Node, Server 순으로 설치를 한다. 설치 후 /usr/NX/scripts/setup/nxserver –install 실행 키 생성을 위해 /usr/NX/bin/nxserver –keygen 실행 /usr/NX/share/keys/default.id_dsa.key 내용을 클라이언트 프로그램 설정 부분에 키 항목에 추가. /usr/NX/etc/server.cfg 파일을 수정 EnableUserDB = "1" EnablePasswordDB = "1" EnableClipboard = "both" 계정 추가 및 암호설정을 위해 nxserver –useradd username 실행 데몬 재시작. /etc/init.d/nxserver restart …

FFMPEG & OpenCV 설치방법

1. Codec 설치 http://www.mplayerhq.hu 다음 사이트에서 코덱을 다운로드. tar xvjpf essential-20071007.tar.bz2 cd essential-20071007.tar.bz2 mkdir /usr/local/lib/codecs mv * /usr/local/lib/codecs/ chmod -R 755 /usr/local/lib/codecs/ 2. Lame MP3 encoder 설치 http://lame.sourceforge.net/index.php 에서 다운로드. tar xvfz lame-398-2.tar.gz cd lame-398-2 ./configure make make install 3.libogg, libvorbis 설치 하지만 CentOS 5.2에는 기본으로 깔려 있었다. 깔려 있는지 확인 하려면 아래와 같이 하면 …

VMware 부팅 시 Beep음 제거 방법

Linux : ~/.vmware/config Windows XP : Documents and Settings\All Users\Application Data\VMware\VMware Workstation\config.ini Windows Vista : ProgramData\VMware\VMware Workstation\config.ini 경로에 아래 내용 추가. mks.noBeep = "TRUE"