Print Stack Canary

Reading time: 2 minutes

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks 지원하기

Enlarge printed stack

스택 오버플로우에 취약한 프로그램스택 오버플로우일부를 가리키는 puts 함수를 실행할 수 있는 상황을 상상해 보십시오. 공격자는 canary의 첫 번째 바이트가 null 바이트(\x00)이고 나머지 canary는 무작위 바이트라는 것을 알고 있습니다. 그러면 공격자는 canary의 첫 번째 바이트까지 스택을 덮어쓰는 오버플로우를 생성할 수 있습니다.

그런 다음 공격자는 페이로드의 중간에서 puts 기능을 호출하여 canary를 모두 출력합니다(첫 번째 null 바이트 제외).

이 정보를 통해 공격자는 canary를 알고 새로운 공격을 구성하고 전송할 수 있습니다(같은 프로그램 세션에서).

명백히, 이 전술은 공격자가 자신의 페이로드내용출력하여 canary유출할 수 있어야 하므로 매우 제한적입니다. 그런 다음 새로운 페이로드를 생성하고 실제 버퍼 오버플로우전송할 수 있어야 합니다.

CTF 예시:

Arbitrary Read

형식 문자열이 제공하는 임의 읽기를 사용하면 canary를 유출할 수 있을 수 있습니다. 이 예제를 확인하십시오: https://ir0nstone.gitbook.io/notes/types/stack/canaries 및 다음에서 임의의 메모리 주소를 읽기 위해 형식 문자열을 악용하는 방법에 대해 읽을 수 있습니다:

Format Strings

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks 지원하기