got
-
ELF Technique - GOT OverwriteSystem hacking training/Knowledge 2018. 2. 28. 03:51
GOT Overwrite란? Dynamic Link 방식으로 컴파일된 바이너리가 공유 라이브러리를 호출할 때 사용되는 PLT와 GOT를 이용하는 공격 기법이다. PLT는 GOT를 가리키고, GOT에는 함수의 실제 주소가 들어있다.이 GOT값을 원하는 함수의 실제 주소로 변조시킨다면, 원래의 함수가 아닌 변조한 함수가 호출될 것이다.이것이 바로 GOT Overwrite이다. GOT Overwrite는 간단하게 설명하면 printf("/bin/sh") -> system("/bin/sh") 처럼 특정 함수의 got 값을 변경하여 원래 수행하고자 했던 함수외에 다른 함수를 호출하는 것을 말한다. 이를 실습하기 위해 간단한 바이너리를 만들었다. [Got_Overwrite.c]#include int main() {..
-
ELF PLT & GOTSystem hacking training/Knowledge 2018. 2. 27. 02:29
ROP라는 기법을 익히기 위해서는 PLT 와 GOT라는 녀석들의 개념을 알고있어야 한다. PLT 란?Procedure Linkage Table의 약자로 외부 프로시저를 연결해주는 테이블이다.PLT를 통해 다른 라이브러리에 있는 프로시저를 호출해 사용할 수 있다. PLT는 일종의 실제 호출 코드를 담고 있는 테이블로써 이 내용 참조를 통해 _dl_runtime_resolve가 수행되고,실제 시스템 라이브러리 호출이 이뤄지게 된다. GOT 란?Global Offset Table의 약자로 PLT가 참조하는 테이블이다.프로시저들의 주소가 들어있다. GOT는 프로시저들의 주소를 가지고 있다.PLT가 어떤 외부 프로시저를 호출할때 이 GOT를 참조하여 해당 주소로 점프하게된다. ※뇌피셜 TipProcedure ==..