포맷 스트링 (Format string) 개념 C언어로 만든 프로그램 중 입력 값을 조작하여 프로그램의 메모리 위치를 반환 받아 메모리 주소를 변조하는 취약점입니다. 발생 원인 이 취약점은 프로그램에 입력된 문자열 데이터가 명령으로 해석될 떄 발생합니다. printf등의 함수에서 발생되는 취약점으로 공격자는 코드를 실행하거나 메모리 일부를 읽을 수 있습니다. 프로그래머가 아래와 같이 작성하였으면 안전한 코드입니다. printf('%s',argv[1]); 그러나 아래와 같이 작성하였으면 포맷 스트링에 취약한 코드입니다. printf(argv[1]); 위험한 이유 위와 같은 코드가 위험한 이유는 만약 사용자가 %s%s%s%s%s%s라는 값을 입력하면 모든 %s를 문자열에 대한 포인터로 해석해 잘못된 주소로 ..