해커스쿨 LOB LEVEL1 [gate -> gremlin] 풀이
M4ndU
해커스쿨 LOB [gate -> gremlin] 풀이입니다.
ID | gate
PW | gate
으로 로그인합니다.
\xff 를 \x00으로 인식하는 오류를 피해 bash2를 사용합니다.
$ bash2
그리고
$ ls -l
를 이용해 어떤 파일과 어떤 폴더가 있는지 확인하고,
$ cat [문제이름].c
를 이용해 소스코드를 확인합시다.
login: gate
Password:
Last login: Sat Feb 10 20:32:49 on tty1
[gate@localhost gate]$ bash2
[gate@localhost gate]$ ls -l
total 16
-rwsr-sr-x 1 gremlin gremlin 11987 Feb 26 2010 gremlin
-rw-rw-r-- 1 gate gate 272 Mar 29 2010 gremlin.c
[gate@localhost gate]$ cat gremlin.c
/*
The Lord of the BOF : The Fellowship of the BOF
- gremlin
- simple BOF
*/
int main(int argc, char *argv[])
{
char buffer[256];
if(argc < 2){
printf("argv error\n");
exit(0);
}
strcpy(buffer, argv[1]);
printf("%s\n", buffer);
}
Simple BOF문제라고 하네요.
소스를 보면 256바이트 크기인 buffer에 무제한으로 입력을 받네요.
buffer와 리턴주소 간의 거리를 구하고 쉘코드를 buffer 또는 환경변수에 올려서 쉘을 따면 되겠네요.
저는 환경변수를 이용하겠습니다.
일단 문제 파일을 gdb로 까봅시다.
[gate@localhost gate]$ gdb gremlin -q
(gdb) set disassembly-flavor intel
(gdb) disas main
Dump of assembler code for function main:
0x8048430 <main>: push %ebp
0x8048431 <main+1>: mov %ebp,%esp
0x8048433 <main+3>: sub %esp,0x100
0x8048439 <main+9>: cmp DWORD PTR [%ebp+8],1
0x804843d <main+13>: jg 0x8048456 <main+38>
0x804843f <main+15>: push 0x80484e0
0x8048444 <main+20>: call 0x8048350 <printf>
0x8048449 <main+25>: add %esp,4
0x804844c <main+28>: push 0
0x804844e <main+30>: call 0x8048360 <exit>
0x8048453 <main+35>: add %esp,4
0x8048456 <main+38>: mov %eax,DWORD PTR [%ebp+12]
0x8048459 <main+41>: add %eax,4
0x804845c <main+44>: mov %edx,DWORD PTR [%eax]
0x804845e <main+46>: push %edx
0x804845f <main+47>: lea %eax,[%ebp-256]
0x8048465 <main+53>: push %eax
0x8048466 <main+54>: call 0x8048370 <strcpy>
0x804846b <main+59>: add %esp,8
0x804846e <main+62>: lea %eax,[%ebp-256]
0x8048474 <main+68>: push %eax
0x8048475 <main+69>: push 0x80484ec
'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 LEVEL3 [cobolt -> goblin] 풀이 (0) | 2018.02.10 |
해커스쿨 LOB LEVEL2 [gremlin -> cobolt] 풀이 (0) | 2018.02.10 |