시스템 해킹

 1576, 1/79 회원가입  로그인  
   vngkv123
   aslr 환경에서...

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


64비트 동적링킹상태에서, 코드가 정말 read함수와 return 0만 존재하고 어떠한 출력함수가 존재하지않을때(16바이트 버퍼에 0x400만큼 read), read@got 엔트리에 있는 가져온 read주소 1바이트를 함수내 syscall로 overwrite하여 eax나 rax레지스터에 1을 넣고  write함수를 호출하는게 있던데 혹시 이 방법에 대해 아시는 분 있나용?

libc를 모르는환경에서 어떻게 해당 syscall의 위치를 알아서 1바이트 오버라이트를 하고 eax나 rax(둘 다 어차피 거의 같지만)에 1을 넣어주는지 모르겠네요 ... 가젯도 없는거 같던데..

https://devcraft.io/posts/2017/04/09/start-hard-asis-ctf-quals-2017.html

의문점을 품은 asis 2017 start_hard라는 문제의 라이트업인데 혹시 답해주실 수 있는 분 계셧으면 좋겠습니다 ㅠ

또한, ASLR환경에서 분명 libc주소도 바뀌어 got entry에 올라가는 함수 주소도 항상 바뀔것인데 왜 gdb상에서
got entry를 run반복하면서 보면 주소가 계속 그대로던데 왜그런거죵

  Hit : 3598     Date : 2017/04/12 04:31



    
vngkv123 syscall을 read로 1바이트 오버라이트 할시에 read함수가 크기를 반환하기때문에 1이 반환되서 eax에 1이 있는건 알았습니당 !! 2017/04/12  
해쿨러 gdb에서 ASLR을 끈 상태로 실행할 수 있습니다
https://outflux.net/blog/archives/2010/07/03/gdb-turns-off-aslr/
켜진상태에서 돌리고싶으시면 위 링크 참고하시면 됩니다
2017/04/13