본문 바로가기

Computer Science/Security3

퍼징 템플릿 벡터(Fuzz Vectors) 퍼징 템플릿 벡터(Fuzz Vectors) 본 글의 퍼징 템플릿 벡터는 실제 퍼징 방법론에 사용되는 OWASP의 퍼즈 벡터 리소스를 참조합니다. 퍼즈 벡터(Fuzz Vectors)란? 다음의 퍼즈 벡터들은 ZAP Fuzzer에 사용되는 템플릿입니다. 퍼징은 매개변수 조작에 대한 프로그램의 응답을 테스트합니다. 퍼즈 벡터를 이용한 퍼징의 결과로 어플리케이션 프로그램에서 생성되는 일반적인 오류 조건을 찾을 수 있습니다. 퍼징의 분류 재귀 퍼징(Recursive fuzzing) 재귀 퍼징은 설정된 알파벳의 가능한 모든 조합을 반복하여 입력의 일부를 퍼징합니다. 아래의 예시를 보면, http://www.example.com/8302fa3b 설정된 16진수(0~f)는 재귀 퍼징 범위에 속합니다. 이렇게하면 총 1.. 2021. 6. 8.
퍼징(Fuzzing)이란 무엇인가? 퍼징(Fuzzing)이란? Fuzz 테스트(또는 퍼징)은 자동화 테스트로 기형/반기형적 데이터를 주입하여 소프트웨어 버그를 찾는 블랙박스 테스팅 기술입니다. 퍼징의 이해 간단한 예시 사용자가 0, 1, 2 숫자 중 하나를 선택하여 입력하는 프로그램을 가정하겠습니다. 이는 세 가지 실제 실행경로를 만듭니다. 하지만 3 또는 255를 전송하면, 정수는 정적크기 변수에 저장되기 때문에 전송되어질 수 있습니다. 기본 Switch-case가 안전하게 구현되지 않은 경우 프로그램이 전통적인 보안문제인 버퍼 오버플로우 등의 메모리 문제가 발생할 가능성이 내제합니다. 퍼징은 이러한 소프트웨어의 구현 결함을 자동으로 찾는 것이 목적입니다. 히스토리 Fuzz 테스트는 Barton Miller 교수와 학생들이 1989년 W.. 2021. 6. 6.
포맷스트링 공격(Format String Attack)이란? 포맷스트링 공격(Format String Attack)이란? 포맷스트링 공격은 프로그램에 입력된 문자열 데이터가 명령으로 해석될 때 발생합니다. 이러한 방식으로 공격자는 코드를 실행하거나 스택 메모리 일부를 읽거나 실행중인 프로그램에 Segmentation Fault를 발생시켜 시스템에 의도되지 않은 동작을 일으킬 수 있습니다. 포맷스트링의 3가지 개념 포맷 함수(Format Function) 프로그램 언어의 변수를 사람이 읽을 수 있는 문자열 형식으로 변환하는 printf, fprintf와 같은 ANSI C 함수입니다. 표1. 포맷 함수의 예시 Format function Description fprint Writes the printf to a file printf Output a formatted .. 2021. 5. 28.