스택 버퍼 오버플로우 공격의 수행 절차를 순서대로 바르게 나열한 것은?… | [9급 지방직 정보보호론] 16년 1회차 기출문제 상세 페이지
1[9급 지방직 정보보호론] 16년 1회차
스택 버퍼 오버플로우 공격의 수행 절차를 순서대로 바르게 나열한 것은?ㄱ. 특정 함수의 호출이 완료되면 조작된 반환 주소인 공격 쉘 코드의 주소가 반환된다.
ㄴ. 루트 권한으로 실행되는 프로그램 상에서 특정 함수의 스택 버퍼를 오버플로우시켜서 공격 쉘 코드가 저장되어 있는 버퍼의 주소로 반환 주소를 변경한다.
ㄷ. 공격 쉘 코드를 버퍼에 저장한다.
ㄹ. 공격 쉘 코드가 실행되어 루트 권한을 획득하게 된다.
1
ㄱ → ㄴ → ㄷ → ㄹ
2
ㄱ → ㄷ → ㄴ → ㄹ
3
ㄷ → ㄴ → ㄱ → ㄹ
4
ㄷ → ㄱ → ㄴ → ㄹ
해설
스택 버퍼 오버플로우 공격은 쉘 코드 저장 → 반환 주소 변조 → 함수 반환 시 쉘 코드로 분기 → 루트 권한 획득 순서로, ㄷ → ㄴ → ㄱ → ㄹ이다.
먼저 실행할 공격 쉘 코드를 버퍼에 넣어 두어야 그 주소로 반환 주소를 덮어쓸 수 있고, 반환 주소는 함수 호출이 끝날 때 비로소 사용되므로 변조가 반환보다 앞선다.
- ㄱ → ㄴ → ㄷ → ㄹ: 함수 반환(ㄱ)이 맨 앞에 오고, 반환 주소 변경(ㄴ)이 쉘 코드 저장(ㄷ)보다 앞서 덮어쓸 목적지가 아직 없다.
- ㄱ → ㄷ → ㄴ → ㄹ: 반환 주소가 조작되기도 전에 함수 반환(ㄱ)이 먼저 일어나 쉘 코드로 분기할 수 없다.
- ㄷ → ㄱ → ㄴ → ㄹ: 반환 주소를 바꾸기(ㄴ) 전에 반환(ㄱ)이 일어나므로 조작된 주소가 반환될 수 없다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.