의견.png

포맷스트링 공격

위키원
Asadal (토론 | 기여)님의 2019년 7월 13일 (토) 02:31 판 (Asadal님이 포맷 스트링 공격 문서를 포맷스트링 공격 문서로 이동했습니다)
이동: 둘러보기, 검색

포맷 스트링 공격(Format String Attack)이란 포맷 스트링과 이것을 사용하는 printf()함수의 취약점을 이용하여 RET의 위치에 쉘코드의 주소를 읽어 쉘을 획득하는 공격이다.

개요

포맷 스트링 공격은 기존에 널리 사용되고 있던 버퍼 오버플로(Buffer Overflow) 공격 기법에 견줄 만한 강력한 해킹 기법이다. 이 해킹 기법이 발표되고 나서 그 동안 별 문제 없었던 각종 프로그램들에 대한 취약점이 속속 발표되고 해당 프로그램을 제작했던 회사들은 이 취약점을 해결 하기 위해 분주해졌다.

특징

포맷 스트링

포맷 스트링(Format String)이란 일반적으로 사용로부터 입력을 받아들이거나 결과를 출력하기 위하여 사용하는 혁식이다. C언어 에서는 일반적으로 사용하는 기호로 다음과 같은 것들이 있다.

  •  %d : 정수형 10진수 상수
  •  %f : 실수형 상수
  •  %lf : 실수형 상수
  •  %c : 문자값
  •  %s : 문자 스트링
  •  %u : 양의 정수(10진수)
  •  %o : 양의 정수(8진수)
  •  %x : 양의 정수(16진수)
  •  %n : 쓰인 총 바이트 수

%n 은 이전까지 입력되었던 문자열의 길이(Byte) 수 만큼 해당변수에 저장시키기 때문에 메모리의 내용도 변조 가능하다. 이를 이용해 문자열의 길이를 내가 변조시키고싶은 값의 길이만큼 만든후 %n을 써주게 되면 메모리상에 내가 원하는 값을 넣을수 있게 된다.[1]

각주

  1. myPPT, 〈포맷 스티링〉, 《티스토리》, 2017-07-28

참고자료

myPPT, 〈포맷 스티링〉, 《티스토리》, 2017-07-28

같이 보기


  의견.png 이 포맷스트링 공격 문서는 블록체인 기술에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.