해커스쿨 LOB LEVEL6 [wolfman -> darkelf] 풀이
M4ndU
해커스쿨 LOB [wolfman -> darkelf] 풀이입니다.
ID | wolfman
PW | love eyuna
으로 로그인합니다.
\xff 를 \x00으로 인식하는 오류를 피해 bash2를 사용합니다.
$ bash2
그리고
$ ls -l
를 이용해 어떤 파일과 어떤 폴더가 있는지 확인하고,
$ cat [문제이름].c
를 이용해 소스코드를 확인합시다.
login: wolfman
Password:
[wolfman@localhost wolfman]$ bash2
[wolfman@localhost wolfman]$ ls -l
total 20
-rwsr-sr-x 1 darkelf darkelf 12655 Feb 26 2010 darkelf
-rw-r--r-- 1 root root 721 Mar 29 2010 darkelf.c
[wolfman@localhost wolfman]$ cat darkelf.c
/*
The Lord of the BOF : The Fellowship of the BOF
- darkelf
- egghunter + buffer hunter + check length of argv[1]
*/
#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);
}
// 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);
}
strcpy(buffer, argv[1]);
printf("%s\n", buffer);
// buffer hunter
memset(buffer, 0, 40);
}
'System Hacking > LOB Redhat' 카테고리의 다른 글
해커스쿨 LOB LEVEL8 [orge -> troll] 풀이 (0) | 2018.02.11 |
---|---|
해커스쿨 LOB LEVEL7 [darkelf-> orge] 풀이 (3) | 2018.02.11 |
해커스쿨 LOB LEVEL5 [orc -> wolfman] 풀이 (0) | 2018.02.11 |
해커스쿨 LOB LEVEL4 [goblin -> orc] 풀이 (0) | 2018.02.11 |
해커스쿨 LOB LEVEL3 [cobolt -> goblin] 풀이 (0) | 2018.02.10 |