fuzzing이란?
퍼즈 테스팅(Fuzz testing) 또는 퍼징 (fuzzing)은 (종종 자동화 또는 반자동화된) 소프트웨어 테스트 기법으로서, 컴퓨터 프로그램에 유효한, 예상치 않은 또는 무작위 데이터를 입력하는 것이다. 이후 프로그램은 충돌이나 빌트인 코드 검증의 실패, 잠재적인 메모리 누수 발견 등 같은 예외에 대한 감시가 이루어진다. 퍼징은 주로 소프트웨어나 컴퓨터 시스템들의 보안 문제를 테스트하기 위해 사용된다. 이것은 하드웨어나 소프트웨어 테스트를 위한 무작위 테스팅 형식이다.
[출처 : 퍼징 - 위키백과] https://ko.wikipedia.org/wiki/%ED%8D%BC%EC%A7%95
퍼징 - 위키백과, 우리 모두의 백과사전
퍼즈 테스팅(Fuzz testing) 또는 퍼징 (fuzzing)은 (종종 자동화 또는 반자동화된) 소프트웨어 테스트 기법으로서, 컴퓨터 프로그램에 유효한, 예상치 않은 또는 무작위 데이터를 입력하는 것이다.
ko.wikipedia.org
감사하게도 위키백과를 빌려왔다.
내가 이해하기론 퍼징은,
소프트웨어 취약점을 탐지하기 위해 수많은 테스트 케이스를 넣는 기법이다.
퍼저(fuzzer)는 퍼징을 하는 도구이고.
퍼징을 하기 위해서는 값을 입력해야 하는데 이 방법에는 두 가지가 있다.
1. 무작위 값 입력
2. 어느정도 포맷을 맞춘 값을 입력
각기 장단점이 있다.
1번의 경우에는 시간이 오래 걸리고, 2번의 경우에는 내가 미처 못 본 패턴이 있다면 그건 제외되고 탐지될 수도 있고.
탐지하는 프로그램은 뭐든(?) 목표로 할 수 있다. 블루투스 퍼징, 웹 퍼징, 프로그램 퍼징, 앱 퍼징..... 등등.
이번에는 웹 퍼징을 한 번 해보려고 한다.
일단 대표적으로
1. SQL Injection
2. parameter
3. directory listing
이 세 가지 취약점에 대한 퍼저를 제작하고, 성공하면 차차 다른 취약점도 도전해볼 생각.
다음 기록에서는 우선 sql 인젝션 먼저 시나리오를 짜봐야겠다.
댓글