[작성자:] ByJJoon


  • xargs 명령어 사용법

    기본 사용법 [root@localhost bugbear]# find /home/* -type d | xargs echo /home/assassin /home/bugbear /home/cobolt /home/darkelf /home/darkknight /home/death_knight /home/gate /home/gate/shellcode /home/gate/rooting /home/giant /home/goblin /home/golem /home/gremlin /home/lost+found /home/nightmare /home/orc /home/orge /home/skeleton /home/succubus /home/troll /home/vampire /home/wolfman /home/xavius /home/zombie_assassin -i 옵션을 통한 인자 변경 [root@localhost bugbear]# find /home/* -type d | xargs -i echo {}/ /home/assassin/ /home/bugbear/ /home/cobolt/ /home/darkelf/ […]

  • BOF 원정대 – Level 13 (bugbear)

    문제 소스는 아래와 같습니다. /* The Lord of the BOF : The Fellowship of the BOF – bugbear – RTL1 */ #include <stdio.h> #include <stdlib.h> main(int argc, char *argv[]) { char buffer[40]; int i; if(argc < 2){ printf(argv error\n); exit(0); } if(argv[1][47] == '\xbf') { printf(stack betrayed you!!\n); exit(0); } strcpy(buffer, argv[1]); printf(%s\n, buffer); } […]

  • BOF 원정대 – Level 12 (darkknight)

    문제 소스는 아래와 같다. /* The Lord of the BOF : The Fellowship of the BOF – darkknight – FPO */ #include <stdio.h> #include <stdlib.h> void problem_child(char *src) { char buffer[40]; strncpy(buffer, src, 41); printf(%s\n, buffer); } main(int argc, char *argv[]) { if(argc<2){ printf(argv error\n); exit(0); } problem_child(argv[1]); } 소스를 보면 우리가 입력할 수 있는 […]

  • BOF 원정대 – Level 11 (golem)

    문제 소스는 아래와 같다. /* The Lord of the BOF : The Fellowship of the BOF – golem – stack destroyer */ #include <stdio.h> #include <stdlib.h> extern char **environ; main(int argc, char *argv[]) { char buffer[40]; int i; if(argc < 2){ printf(argv error\n); exit(0); } if(argv[1][47] != '\xbf') { printf(stack is still your friend.\n); exit(0); […]

  • BOF 원정대 – Level 10 (skeleton)

    문제 소스는 아래와 같다. /* The Lord of the BOF : The Fellowship of the BOF – skeleton – argv hunter */ #include <stdio.h> #include <stdlib.h> extern char **environ; main(int argc, char *argv[]) { char buffer[40]; int i, saved_argc; if(argc < 2){ printf(argv error\n); exit(0); } // egghunter for(i=0; environ[i]; i++) memset(environ[i], 0, strlen(environ[i])); if(argv[1][47] […]

  • 쉘코드 제작하기!

    .globl main main: jmp strings start: pop %esi xor %eax, %eax // 초기화 xor %ebx, %ebx // 초기화 xor %ecx, %ecx // 초기화 xor %edx, %edx // 초기화 mov %esi, 0x0(%esp) // %esp+0 부분에 "/bin/sh" 입력, name[0] mov %eax, 0x4(%esp) // %esp+4 부분에 NULL 입력, name[1] mov $0xb, %al // execve 시스템콜에 해당하는 0xb %eax에 […]

  • BOF 원정대 – Level 9 (vampire)

    이번 문제 소스는 아래와 같다. /* The Lord of the BOF : The Fellowship of the BOF – vampire – check 0xbfff */ #include <stdio.h> #include <stdlib.h> main(int argc, char *argv[]) { char buffer[40]; if(argc < 2){ printf(argv error\n); exit(0); } if(argv[1][47] != '\xbf') { printf(stack is still your friend.\n); exit(0); } // here is […]

  • 파일에서 특정 내용 삭제하기

    [파일내의 특정 문자열 찾기] find ./ | xargs grep "찾을문자열" –color=auto grep -r "찾을 문자열" –color=auto * [파일내의 특정 문자열을 찾아 해당 내용을 삭제하기] find ./ -name "*.php" -exec sed -i 's/old/new/g' {} \; find ./ -name "*.php" -exec perl -pi -e 's/old/new/g' {} \; find ./ -name "*.php" -exec sed -i 's/<iframe src="http:\/\/h.nexprice.com\/css\/x.htm" width=0 […]

  • BOF 원정대 – Level 8 (troll)

    이번 문제 소스는 아래와 같다. /* The Lord of the BOF : The Fellowship of the BOF – troll – check argc + argv hunter */ #include <stdio.h> #include <stdlib.h> extern char **environ; main(int argc, char *argv[]) { char buffer[40]; int i; // here is changed if(argc != 2){ printf(argc must be two!\n); exit(0); } […]

  • BOF 원정대 – Level 7 (orge)

    문제 소스는 아래와 같다. /* The Lord of the BOF : The Fellowship of the BOF – orge – check argv[0] */ #include <stdio.h> #include <stdlib.h> extern char **environ; main(int argc, char *argv[]) { char buffer[40]; int i; if(argc < 2){ printf(argv error\n); exit(0); } // here is changed! if(strlen(argv[0]) != 77){ printf(argv[0] error\n); exit(0); […]