포맷 스트링
포맷 스트링(Format String)이란 일반적으로 사용자로부터 입력을 받아들이거나 결과를 출력하기 위하여 사용하는 형식이다. 버퍼 오버플로와 다르게 데이터 형태에 대한 불명확한 정의로 인한 문제이다. C언어에서 보면 printf()라는 함수를 사용할때 숫자 문자 등등 형태에 따라 %d, %c, %x 등을 사용하는데 이를 포맷 스트링이라고 한다. 데이터 형태를 알아 볼 수 있게 해주는 역할을 하는 것이 포맷 스트링인데 이를 바꾸는 것이 포맷 스트링 공격이라고 할 수 있다.
개요
포맷 스트링은 기존에 널리 사용되고 있던 버퍼 오버플로(Buffer Overflow) 공격 기법에 견줄 만한 강력한 해킹 기법이다. 이 해킹 기법이 발표되고 나서 그 동안 별 문제 없었던 각종 프로그램들에 대한 취약점이 속속 발표되고 해당 프로그램을 제작했던 회사들은 이 취약점을 해결 하기 위해 분주해졌다.