일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- CTF
- 암호해독
- 메타스플로잇
- root권한
- 스캔
- Samba
- 취약점
- Hacking
- 칼리리눅스
- Metasploit
- 모의해킹
- smb
- 권한상승
- web hacking
- 내부침투
- SQLINJECTION
- 해킹툴
- sql
- Kioptrix
- load of sqlinjection
- 해킹도구
- Los
- 침투테스트
- 해킹
- 취약점 스캔
- 취약점분석
- 스캐닝
- 시스템 해킹
- SQL Injection
- 포트스캔
- Today
- Total
감자 텃밭
[시스템] GOT Overwrite 본문
GOT Overwrite란 기법은 PLT, GOT의 GOT를 조작하여 사용하는 기법이다.
[시스템] PLT 와 GOT [초급]
시스템 해킹(포너블)을 하다보면 PLT, GOT 어디선가 들어봤고, plt, got 라고 불리우는것들을 막 호출하고 변조하고 할겁니다. 이번에는 이러한 plt와 got가 뭔지에 대해 알아보도록 하겠습니다. 보통
hg2lee.tistory.com
해당 기법은 PLT와 GOT는 Dynamic Link 방식에서 공유라이브러리를 사용하는 과정을 이해한다면
쉽게 이해 할 수 있을것이다.
함수가 호출되면 plt를 참조하고 plt는 got를 참조하는대 got에는 함수의 실제 주소가 들어가있다고 했다.
그럼 여기서 plt가 참조하는 got영역에 공격자가 원하는 함수를 악의적으로 저장했다고 가정해보자.

위 사진과 같이 plt는 -> got는 -> 실제함수를 가르키고있다 위 상황을 악의적인 상황으로 바꿔보면.

위와 같은 모양이 된다
plt 가 참조하는 got영역의 주소가 본래의 실제함수 주소가 아닌 악의적으로 저장해놓은 함수를 참조하는 것이다.
즉 사용자가 read() 함수를 실행시키지만, 내부적으로 system() 함수가 실행되는 효과를 가져온다.
ex read("/bin/sh") -> system("bin/sh")
해당 기법은 여러 기법에서 응용되는 기법이며, ROP, FSB, RTL-Chaining등 수많은 기법에서 응용된다.
※ 내용이 이상하거나 문제가 있을경우, 또는 설명에 부족한 내용이 있으시면 알려 주시면 감사합니다.
'System > System Hacking Techniques' 카테고리의 다른 글
[시스템] Return-Oriented-Programming - ROP [x64-64bit] (0) | 2021.11.23 |
---|---|
[시스템] Return-Oriented-Programming - ROP [x86-32bit] (0) | 2021.11.22 |
[시스템] RTL-Chaining (0) | 2021.11.21 |
[시스템] Return-to-Libc (RTL) (0) | 2021.11.20 |
[시스템] Return-to-Shellcode (0) | 2021.11.20 |