레벨 해킹

 2839, 1/142 회원가입  로그인  
   vngkv123
   lob evil_wizard...

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


GOT overwrite 를 하는데

printf.got랑 .data영역이랑 0x10차이밖에 안나서 영역이 침범될 수도 있다고
안전하게 bss나 data주소를 사용하는게 괜찮다는데...

printf.got에 값을 뒤집어도 4바이트밖에 참조를 안하는데 어째서 영역침범이 일어날 수 있단거죠??

  Hit : 3753     Date : 2017/03/27 11:52



    
해쿨러 0x12345678 로 printf@GOT를 덮고 싶으시면
바이너리에서 0x78을 찾아서 printf@GOT에 넣을거고
0x56을 찾아서 printf@GOT+1에 넣겠죠
근데 0x78이
0x78 0x43 0x81 0x38 0x92 0x00 이렇게있는 바이트 배열 안에서의 0x78이라면 0x78만 복사되는게 아니라 총 다섯바이트가 복사되어 printf@GOT 이후를 덮게 됩니다
그래서 src값을 찾을때는 널바이트가 최대한 가까이 있는 값을 찾는게 좋습니다
2017/03/28  
vngkv123 감사합니다 ! 2017/03/28