반응형
이번 문제는 스택 구간을 전무 못쓰게 하고 있다
버퍼, argv, 환경변수, 절대경로, 그냥 싹 다 0으로 초기화시켜버린다. ㅎㅎㅎ
LD_PRELOAD를 사용해야 한다.
LD_PRELOAD란? = 공유 라이브러리의 경로를 지정해준다.
- 유닉스/리눅스 계열에서 사용되는 환경변수이다.
- 프로세스가 실행될 때, 이 환경변수에 지정된 공유라이브러리가 먼저 로드된다.
- 따라서 다른 라이브러리의 함수와 LD_PRELOAD에 지정된 라이브러리의 함수가 서로 이름이 똑같을 경우 후자가
실행되게 된다. (라이브러리 적재 순서 때문)
일단 소스코드를 공유라이브러리로 컴파일하되 명을 쉘 코드로 짓자.
[그림 1-2] 처럼 공유 라이브러리로 컴파일하고 LD_PRELOAD 환경변수에 쉘 코드를 올려버린다.
쉘 코드가 올라간 주소 값을 찾기 위해 이렇게 해서 core 덤프를 만들어 gdb로 분석을 한다.
gdb로 core 덤프 파일을 분석하다보면 LD_PRELOAD 환경변수 영역에 올라간 쉘 코드를 발견할 수 있다.
이제 주소값을 알았으니 이를 이용해 exploit을 시행하면 된다.
반응형
'WarGame > LOB(The Lord of the BOF)' 카테고리의 다른 글
13단계 darkknight -> bugbear (0) | 2019.11.25 |
---|---|
12단계 golem -> darkknight (0) | 2019.09.20 |
10단계 vampire -> skeleton (0) | 2019.09.08 |
9단계 troll -> vampire (0) | 2019.09.07 |
8단계 orge -> troll (0) | 2019.09.07 |