Pointer Redirecting
문자열 포인터
함수 호출이 스택에 위치한 문자열의 주소를 사용할 경우, 버퍼 오버플로우를 악용하여 이 주소를 덮어쓰고 바이너리 내부에 다른 문자열의 주소를 넣는 것이 가능합니다.
예를 들어 system
함수 호출이 명령을 실행하기 위해 문자열의 주소를 사용할 경우, 공격자는 스택에 다른 문자열의 주소를 배치하고, **export PATH=.:$PATH
**를 사용하여 현재 디렉토리에 새 문자열의 첫 글자 이름을 가진 스크립트를 생성할 수 있습니다. 이는 바이너리에 의해 실행됩니다.
다음에서 예제를 찾을 수 있습니다:
32비트, 스택에서 플래그 문자열의 주소를 변경하여
puts
에 의해 출력되도록 함
함수 포인터
문자열 포인터와 동일하지만 함수에 적용됩니다. 스택에 호출될 함수의 주소가 포함되어 있는 경우, 이를 변경하는 것이 가능합니다 (예: system
호출).
다음에서 예제를 찾을 수 있습니다:
참고 문헌
Last updated