의견.png

"포맷스트링 공격"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
잔글
잔글 (같이 보기)
29번째 줄: 29번째 줄:
 
* [[패스워드 크래킹]]
 
* [[패스워드 크래킹]]
  
{{블록체인 기술|토막글}}
+
{{보안|토막글}}

2019년 7월 28일 (일) 16:21 판

포맷스트링 공격(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

참고자료

같이 보기


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