Fuzzing Lab2-vulnerable

Kongsub·2020년 7월 23일
0

Fuzzing Camp

목록 보기
3/5

sw testing and fuzzing camp lab2-vulnerable

Fuzzing

의미있는 test case 를 변화시켜 수행시킨다.
Seed – 의미있는 test case
P(Pase) – well working 돌려서 잘 작동하는 test case, Population
F- 돌려서 충돌이 나는 test case들을 crash라고 한다.

Pase인경우, 이전 coverage 비교 후
Coverager가 커진다(의미 있는 변화, 새로운 브렌치) -> Population에 추가

vulnerable

fuzzing을 할 수 있도록 afl을 붙여 컴파일을 시킨다.

afl-gcc -o vulnerable vulnerable.c


실행파일을 실행시켜보자
다음과 같이 "u 5 abcdefgh"의 인풋을 주면 앞의 5자만 upper하여 출력된 것을 볼 수 있다.
"head 4 abcdefg"의 인풋을 주면 앞의 4자만 출력된 것을 볼 수 있다.

이제 fuzzing 화면을 열어서 확인해보자. 다음 명령어를 실행시키면 다음과 같이 화면이 나온다.
현재 실행키기고 있는 input값은 splice 12인것을 볼 수 있다.
그리고 new path는 57초 전에 나왔고
마지막으로 crash된 input은 1분 18초 전에 나왔음을 볼 수 있다.

afl-fuzz -i input -o output ./vulnerable 

input은 다음과 같이 구성되어 있다.
그냥 빈 파일이 존재한다.
fuzz가 저 빈파일의 내용물을 randonm으로 변화시켜 test 한다.


그리고 output은 fuzz를 실행시킨 결과를 보여주는데, crashes폴더는 충돌된 결과를 담고있고, queue의 경우, population의 정보를 담고 있다.

clang = gcc

profile
심은대로 거둔다

0개의 댓글