시스템 해킹

 1576, 1/79 회원가입  로그인  
   ewqqw
   r0pbabay 를 푸는데....

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


64비트라서

rbp 에 dummy를 8바이트 채우고,

pop rdi ; ret 가젯 + /bin/sh 포인터 + system 함수

로 rop 공격하는거잖아요?

그런데, offset차이를 이용해서 저 함수들의 주소를 알아내야 해서,

pop ret 가젯은 성공적으로 system함수와의 거리를 구했습니다.

그런데, /bin/sh 는 gdb상에서 찾았는데, 결과값이 다르더라구요.

r0pbaby 에 pie가 걸려있어서 gdb에 제대로 break point 를 걸기 힘들더군요. 그래서 무작정 실행시키고 종료시켜서 p system과 fine &system, +99999999, "/bin/sh" 를 했는데 값이 나왔습니다.

그런데, 다른분들의 writeup을 봤는데, gdb상에서 set stop-on-solib-events 1 을 한 상태에서 알아낸 /bin/sh는 위의 값과 달랐습니다.
그런데 또 system 함수는 같았구요....

exploit은 두번째 상황의 /bin/sh 주소를 써야 가능했습니다...

왜그런가요>?????

  Hit : 2875     Date : 2017/07/07 09:46



    
vngkv123 libc주소를 출력해주니 뒤의 12bit값을 바탕으로 binsh주소를 libc-database에서 찾아보세용 ㅎㅎ 2017/07/09