949, 1/48 회원가입  로그인  
   ygw0225
   what1.png (17.7 KB), Download : 26     [오른쪽 버튼 눌러 다운 받기]
   what2.png (22.6 KB), Download : 23     [오른쪽 버튼 눌러 다운 받기]
   FTZ LEVEL13 질문입니다.

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=840 [복사]




하루종일 헤메다가 도저히 모르겠어서 이렇게 질문드립니다
스택가드의 값을 변조시키지 않고 버퍼오버플로우 시키는건 알겠는데
아무리해도 계속 Segmentation fault가 나옵니다..

책을 보면서하는데도 이러니...ㅠㅠㅠ
뭐가 잘못된걸까요

  Hit : 3800     Date : 2014/01/20 07:12



    
Deferto superdk 를 attackme에 글자수에 맞춰서 해보세요
attackme 8글자이네요
8글자로 맞춰서 해보세요
2014/01/24  
sohun5013 Segmentation fault는 메모리 접근 에러 상황에서 뜨는 거예요.
아마 ret주소에 잘못된 값을 넣었을 것 같은데, retAddr을 어떻게 알아냈는지, 혹은 retAddr값을 넣은 주소가 확실히 ret위치가 맞는지 확인해봐야 할 것 같아요.
참고로 제가 실험했을 때 gdb에서 -g옵션을 넣었을 때하고 안 넣었을 때하고 성공 여부가 다르더라고요.
2014/01/25  
sohun5013 음.... -g옵션이 문제가 아니라 스택공간이 계속 변하나 보네요. 될 때도 있고 안 될때도 있었군요 ㅡ,.ㅡ 2014/01/25  
cd80 ulimit -c unlimited 명령 치시면 코어 파일 얻으실 수 있는데 자기 소유 파일에서만 되니
cp attackme ~~~~~(attackme와 같은길이) 로 파일 하나 만드셔서
execl 첫번째 인자 맞춰주시고 공격해보시고 코어파일에서 쉘코드 위치 확인해보세요

지금 execl첫번째인자가 /home/level13/attackme 이니
/home/level13/asdfasdf 같이 정확하게 맞춰주셔야 합니다
정확하게 맞춰야하는 이유는 환경변수와 스택 맨 끝에 프로그램명이 들어가기 때문이구요
2014/01/25  
cd80 아 ulimit -c unlimited 사본파일에 공격을 한번 하셔야 코어파일이 생성됩니다 2014/01/25  
cd80 코어파일이 생성되려면 현재디렉토리에 쓰기권한도 있어야하구요 2014/01/25  
Deferto 제가 너무 어설프게 대답했군요 ㅋㅋ cd80님께서 말씀하신대로 한번해보세요~ 2014/01/25  
ygw0225 댓글주신모든분들 감사드립니다. cd80님 말씀대로 코아파일만들어서 해결했습니다 >< 2014/01/27  
kumi123 문제마다 공격주소 위치가 약간씩 어긋나는게 잇더군요..

cp해서, printf(ret) 해서 나온 주소랑 gdb상의 주소랑 비교해 보세요
2014/02/20