728x90

Fuzzing 5

뮤테이션

입력(input)을 약간씩 변형해서 새로운 입력을 만들어내는 작업hellohello 라고 입력을 했다고 해봅시다afl은 여기에 다음과 같은 작은 변경을 가할 수 있다.어떤 문자를 바꾸기 -> hello -> hezlo문자를 추가하기 -> hello -> helloo문자를 삭제하기 -> hello -> helo비트를 뒤집기 -> hello -> hfllo기존의 입력을 조금씩 변화시켜(mutate) 프로그램에 집어 넣고, 실행 경로(coverage)가 달라지는지 확인하는 방식이걸 반복해서 더 넓은 커버리지를 찾는 것이다.즉 mutation기존 입력을 기반으로 하여 새로운 테스트 케이스를 자동 생성하는 기법이다.

Fuzzing 14:25:39

WinAFL Fuzzing

WinAFLAFL(American Fuzzy Lop)은 coverage-guided 퍼징 툴이다. Windows에서 사용할 수 있도록 변경을 한 것이 WinAFL 입니다. 준비물Visual Studio 2022DynamoRIO githubhttps://github.com/DynamoRIO/dynamorio/releases Releases · DynamoRIO/dynamorioDynamic Instrumentation Tool Platform. Contribute to DynamoRIO/dynamorio development by creating an account on GitHub.github.com 64bit 환경자 저같은 경우는 64bit를 대상으로 퍼징을 하겠다고 가정하고 환경을 구성을 해보겠습니..

Fuzzing 2025.05.10

Fuzzing 하네스 (Harness)

하네스(Harness)퍼저가 잘 조종할 수 있도록 감싸주는 코드 또는 작은 프로그램이다.퍼징 대상이 되는 함수나 모듈만 골라서 호출할 수 있게 만들어주는 인터페이스라고 보면 된다.ex) 어떤 프로그램이 있다. 거기서 parseimage() 함수 하나만 퍼징을 할 생각이다.하네스는 이 함수만 반복해서 호출해주는 역할을 한다. 그렇다면? winafl은 전체 프로그램을 계속재시작하지 않고 하네스를 통해 타깃 함수만 빠르게 퍼징이 가능하다!(아마 dump fuzzing 해보았으면 이 부분에 대해서는 이해하기 쉬울겁니다.) 정리하네스(Harness) : 타깃 함수에 입력을 전달하고, 결과를 받아오는 작은 테스트용 드라이버 프로그램WinAFL이 하네스를 통해서 타깃 함수만 반복적으로 호출하면서 퍼징을 합니다.

Fuzzing 2025.05.09

#1 퍼징 (Fuzzing)

들어가기전..블랙박스 vs 화이트박스취약점을 찾는 방법으로는 blackbox testing 과 whitebox testing으로 구분이 된다. 블랙박스 테스트는 타겟 프로그램에 대한 정보나 소스 코드 없이 점검하는 것이다.화이트박스 테스트는 프로그램의 소스 코드를 볼 수 있는 상황에서 수행을 하는 것이다.오픈 소스 코드를 제외하면 타겟 프로그램에 대한 소스 코드를 가지고 있는 상황이 거의 없다. 퍼징 소프트웨어 테스트 기법으로서, 컴퓨터 프로그램에 유효한, 예상치 않은 또는 무작위 데이터를 입력하는 것이다.이후 프로그램은 충돌이나 빌트인 코드 검증의 실패, 잠재적인 메모리 누수 발견 등 같은 예외에 대한 감시가 이루어진다.https://ko.wikipedia.org/wiki/%ED%8D%BC%EC%A7%..

Fuzzing 2025.04.22
728x90