일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 보안
- 알고리즘
- codeup
- 디피헬먼
- C언어
- db
- 머신러닝
- RVA
- StoredXSS
- 심층학습
- 웹
- ImageBase
- 코드업
- XSS
- dvwa
- 프로그래머스
- 파일구조
- SQL
- Cross Site Scripting
- 인공지능
- RSA
- 공개키
- ReflectedXSS
- 기계학습
- Database
- 암호학
- SQL_Injection
- dsa
- 딥러닝
- injection
- Today
- Total
목록분류 전체보기 (115)
Ye0ngJae
문제 풀이 더보기 우선 view-source를 통해 소스코드를 한 번 확인하여 보자. ---------------------
PLT(Procedure Linkage Table) & GOT(Global Offset Table) C언어 프로그램은 컴파일을 진행할 때 링크라는 과정을 거친다. 목적 파일들끼리의 링킹이면 코드만 넣어주면 된다. 하지만 라이브러리를 링킹 할 때에는 이렇게 할 수 없다. 따라서 정적 링킹(Static Link)과 동적 링킹(Dynamic Link)이 있다. 동적 링킹은 프로그램에서 사용하는 모든 라이브러리 모듈들을 프로그램을 컴파일할 때 복사하지 않고 해당 모듈의 주소 값을 가지고 있다가 프로그램이 실행되어서 실행 파일과 라이브러리가 메모리에 로드될 때 해당 주소 값을 이용하여 특정 함수를 불러오는 방식이다. 이러한 방식으로 컴파일을 하면 라이브러리가 프로그램 외부에 있기 때문에, 함수의 주소 값을 알아내..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
PLT와 GOT를 모른다면 아래 게시물을 한 번 보고 오자 2022.10.20 - [정보보안/포너블] - [Pwnable] PLT & GOT Libc leak Libc란? printf, scanf 등을 비롯한 C언어의 여러 함수들이 들어있는 라이브러리이다. Libc는 C언어의 표준 라이브러리인데 이 Libc 라이브러리는 로딩될 때 항상 일정한 규칙을 가진다. 바로 하위 1.5바이트가 0이라는 것이다. 이것은 Libc base라고 부른다. 즉, Libc base는 메모리에 매핑되어 있는 Libc의 시작 주소이다. Libc의 각 함수들에게는 오프셋이라는 것이 있는데 이 offset은 Libc base에 더해져서 실제 함수의 주소가 된다. ASLR 보호 기법에 의하여 여러 주소들이 랜덤화 되는데 Libc ba..