이전에 풀었던 5번을 다른 방식으로 푼다.
바로 PLT, GOT를 이용한 풀이이다.
PLT와 GOT란?
PLT(procedure Linkage Table) : 외부 프로시저를 연결해주는 테이블, PLT를 통해 다른 라이브러리에 있는 프로시저를 호출 할 수 있다.
GOT(Global Offset Table) : PLT가 참조하는 테이블, 프로시저들의 주소가 들어있다.
함수 호출(PLT) -> GOT (실제 함수의 주소가 저장) -> 처음일 때 -> 어떤 과정으로 주소를 가져옴 (생략)
함수 호출(PLT) -> GOT (실제 함수의 주소가 저장) -> 두 번째 -> 첫 번째 호출에서 알아낸 주소
참고)
https://bpsecblog.wordpress.com/2016/03/07/about_got_plt_1/
PLT와 GOT 자세히 알기 1
Dynamic Linking 과정을 추적해 PLT와 GOT를 이해해보자 :) 시스템 해킹을 공부하시는 분들이라면 PLT와 GOT에 대해 알고 있을 것입니다. 이제 막 시스템 해킹 공부를 시작한 분들도 한 번 쯤 들어보셨을
bpsecblog.wordpress.com
STACK STACK
--------------------------------- ---------------------------------
BUF BUF
--------------------------------- ---------------> ---------------------------------
RBP RBP
--------------------------------- ---------------------------------
RET ADDR SYSTEM
--------------------------------- ---------------------------------
SYSTEM RET ADDR
---------------------------------
arg1 /bin/sh
--------------------------------- ---------------------------------
휴 그리느라 힘들어따..
이제 system address 와 '/bin/sh'의 address를 gdb를 통해 알아보자!
오예 얻었다
이제 위에 그림과 같이 payload 를 작성해보자
위 그림처럼 페이로드를 완성했다.
접속완료!!!
'시스템 해킹 > ProtoStar로 처음 입문하기' 카테고리의 다른 글
[pwnable] 시스템 해킹 ProtoStar - Stack7 (2) | 2023.02.15 |
---|---|
[pwnable] 시스템 해킹 ProtoStar - Stack6 (PLT, GO) (0) | 2023.02.15 |
[pwnable] 시스템 해킹 ProtoStar - Stack5 (msfvenom, 어태치) (0) | 2023.02.15 |
[pwnable] 시스템 해킹 ProtoStar - Stack4 (Return Address) (0) | 2023.02.15 |
[pwnable] 시스템 해킹 ProtoStar - Stack3 (ret2lib) (0) | 2023.02.15 |