의견.png

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

위키원
이동: 둘러보기, 검색
잔글 (Asadal님이 포맷 스트링 공격 문서를 포맷스트링 공격 문서로 이동했습니다)
잔글
1번째 줄: 1번째 줄:
'''포맷 스트링 공격'''(Format String Attack)이란 포맷 스트링과 이것을 사용하는 printf()함수의 취약점을 이용하여 RET의 위치에 쉘코드의 주소를 읽어 쉘을 획득하는 공격이다.
+
'''포맷스트링 공격'''<!--포맷 스트링 공격-->(Format String Attack)이란 포맷스트링과 이것을 사용하는 printf() 함수의 취약점을 이용하여 RET의 위치에 셸 코드의 주소를 읽어 셸을 획득하는 [[해킹]] 공격이다.
  
 
== 개요 ==
 
== 개요 ==
포맷 스트링 공격은 기존에 널리 사용되고 있던 버퍼 오버플로(Buffer Overflow) 공격 기법에 견줄 만한 강력한 해킹 기법이다. 이 해킹 기법이 발표되고 나서 그 동안 별 문제 없었던 각종 프로그램들에 대한 취약점이 속속 발표되고 해당 프로그램을 제작했던 회사들은 이 취약점을 해결 하기 위해 분주해졌다.
+
포맷스트링 공격은 기존에 널리 사용되고 있던 [[버퍼 오버플로]](buffer overflow) 공격 기법에 견줄 만한 강력한 해킹 기법이다. 이 해킹 기법이 발표되고 나서 그 동안 별 문제 없었던 각종 프로그램들에 대한 취약점이 속속 발표되고 해당 프로그램을 제작했던 회사들은 이 취약점을 해결하기 위해 분주해졌다.
  
 
== 특징 ==
 
== 특징 ==
=== 포맷 스트링 ===
+
=== 포맷스트링 ===
포맷 스트링(Format String)이란 일반적으로 사용로부터 입력을 받아들이거나 결과를 출력하기 위하여 사용하는 혁식이다. C언어 에서는 일반적으로 사용하는 기호로 다음과 같은 것들이 있다.
+
[[포맷스트링]]<!--포맷 스트링-->(format string)이란 일반적으로 사용로부터 입력을 받아들이거나 결과를 출력하기 위하여 사용하는 형식이다. [[C 언어]]에서는 일반적으로 사용하는 기호로 다음과 같은 것들이 있다.
 
* %d : 정수형 10진수 상수
 
* %d : 정수형 10진수 상수
 
* %f : 실수형 상수
 
* %f : 실수형 상수
17번째 줄: 17번째 줄:
 
* %n : 쓰인 총 바이트 수
 
* %n : 쓰인 총 바이트 수
  
%n 은 이전까지 입력되었던 문자열의 길이(Byte) 수 만큼 해당변수에 저장시키기 때문에 메모리의 내용도 변조 가능하다. 이를 이용해 문자열의 길이를 내가 변조시키고싶은 값의 길이만큼 만든후 %n을 써주게 되면 메모리상에 내가 원하는 값을 넣을수 있게 된다.<ref>myPPT, 〈[https://mydaum00.tistory.com/entry/%ED%8F%AC%EB%A7%B7-%EC%8A%A4%ED%8A%B8%EB%A7%81 포맷 스티링]〉, 《티스토리》, 2017-07-28</ref>
+
%n 은 이전까지 입력되었던 [[문자열]]의 길이(byte) 수 만큼 해당 [[변수]]에 저장시키기 때문에 [[메모리]]의 내용도 변조 가능하다. 이를 이용해 문자열의 길이를 내가 변조시키고 싶은 값의 길이만큼 만든 후 %n을 써주게 되면 메모리상에 내가 원하는 값을 넣을수 있게 된다.<ref>myPPT, 〈[https://mydaum00.tistory.com/entry/%ED%8F%AC%EB%A7%B7-%EC%8A%A4%ED%8A%B8%EB%A7%81 포맷 스티링]〉, 《티스토리》, 2017-07-28</ref>
  
 
{{각주}}
 
{{각주}}
  
 
== 참고자료 ==
 
== 참고자료 ==
myPPT, 〈[https://mydaum00.tistory.com/entry/%ED%8F%AC%EB%A7%B7-%EC%8A%A4%ED%8A%B8%EB%A7%81 포맷 스티링]〉, 《티스토리》, 2017-07-28
+
* myPPT, 〈[https://mydaum00.tistory.com/entry/%ED%8F%AC%EB%A7%B7-%EC%8A%A4%ED%8A%B8%EB%A7%81 포맷 스티링]〉, 《티스토리》, 2017-07-28
  
 
== 같이 보기 ==
 
== 같이 보기 ==

2019년 7월 13일 (토) 02:33 판

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