사용자 입력을 printf(input)으로 전달했을 때 %n이 악용될 수 있는 이유는?
호출 코드: printf(input)
입력 조건: 공격자가 %n을 포함한 형식 지정자를 제어정답 4번
`%n`은 화면에 값을 출력하는 지정자가 아니라 현재까지 출력된 문자 수를 대응 인수가 가리키는 메모리에 기록한다. 사용자 입력을 형식 문자열로 직접 쓰면 공격자가 인수 해석과 출력 길이를 조작해 메모리 쓰기에 악용할 수 있다. `printf("%s", input)`처럼 고정 형식 문자열로 데이터를 전달해야 한다.
콘텐츠 정보
출제범위 기반 실전 연습을 위해 정처LAB이 독립 제작했습니다. 표시 연도는 학습 범위의 맥락이며 특정 시행 회차의 출제문항이나 복원 원문을 뜻하지 않습니다.
- 자료 유형
- 정처LAB 자체 제작
- 검수 상태
- 내용 검수 완료
- 해설 작성·검수
- 정처LAB 편집 기준
- 최종 검수
- 2026-09-05