x64
-
x64 BOF(Buffer Overflow)System hacking training/Knowledge 2018. 4. 18. 20:32
오늘은 x64 즉 64 bit 환경에서의 buffer overflow에 대해 포스팅하겠습니다. 먼저 x86 vs x64에 대해 선행 지식이 필요합니다. 바이너리 하나를 받았는데 이제서야 풀이해보네요.ㅠ 먼저 바이너리를 확인해보겠습니다. char buffer가 256 byte로 할당되었지만 gets()의 사용으로 인해 bof가 터집니다. gets()는 NULL문자가 오기전까지 모든 문자열을 입력받는데 바로 여기서 ret 를 침범하여 우리가 원하는 shell()를 실행할 수 있습니다. 이전의 x86 bof 문제에서 처럼 payload를 구성해보면 [x86 payload] python -c 'print "A"*256+"SFP(4)"+"ret(4)"' 이렇게 buf 를 의미없는 문자로 덮어주고 SFP를 4byt..
-
[x86 vs x64] Memory AddressSystem hacking training/Knowledge 2018. 3. 19. 22:18
오늘은 x86과 x64에 대해 전반적으로 정리를 하겠다. 추후 x86의 BOF, RTL, ROP 등 64 bit환경에서의 공격 기법에 대해서도 포스팅하겠다. x86 vs x64하면 가장 먼저 떠오르는 것은 메모리 주소 체계일것이다. x86의 메모리 주소 체계는 이러하다. [x86] Memory Address (windows 기준) 0x0000 0000 - 0xffff ffff 0x0000 0000 - 0x7fff ffff (User Section, Ring3)0x8000 0000 - 0xffff ffff (Kernel Section, Ring0) 0x0000 0000 부터 0xffff ffff 까지 사용할 수 있는 주소 공간이 있고,이는 unsigned int의 범위 0 ~ 4294967295와 동일하다..