[Fuzzing 101] Excersise 1 - Xpdf
환경 구축하기!!
https://github.com/antonio-morales/Fuzzing101/tree/main/Exercise%201
GitHub - antonio-morales/Fuzzing101: An step by step fuzzing tutorial. A GitHub Security Lab initiative
An step by step fuzzing tutorial. A GitHub Security Lab initiative - GitHub - antonio-morales/Fuzzing101: An step by step fuzzing tutorial. A GitHub Security Lab initiative
github.com
Ubuntu Server 복사/붙여넣기..를 어떻게 하는 지 몰라서 하나하나 명령어를 쳐줬다..^_-..;;
1. Download and build your target
먼저 퍼징 타겟을 얻기 위해서 fuzz하려는 프로젝트의 새 디렉터리를 만든다.
cd $HOME
mkdir fuzzing_xpdf && cd fuzzing_xpdf/
2. make와 gcc 도구 설치
sudo apt install build-essential
3. Xpdf 3.02 다운로드
wget https://dl.xpdfreader.com/old/xpdf-3.02.tar.gz
tar -xvzf xpdf-3.02.tar.gz
4. Xpdf 빌드
cd xpdf-3.02
sudo apt update && sudo apt install -y build-essential gcc
./configure --prefix="$HOME/fuzzing_xpdf/install/"
make
make install
당황..make 명령어를 입력하니 위와 같은 화면이 엄청엄청..빠르게 지나갔다.
잘못된 건 줄 알았는데 몇 분 기다리니 끝났다. 이런 화면이 뜬다고 해서 당황할 필요 XX
5. 빌드된 실행파일 테스트 하기
빌드를 테스트 해야한다. 먼저 몇 가지 PDF 예제를 다운로드해줘야 한다!
cd $HOME/fuzzing_xpdf
mkdir pdf_examples && cd pdf_examples
wget https://github.com/mozilla/pdf.js-sample-files/raw/master/helloworld.pdf
wget http://www.africau.edu/images/default/sample.pdf
wget https://www.melbpc.org.au/wp-content/uploads/2017/10/small-example-pdf-file.pdf
pdfinfo 바이너리를 테스트
$HOME/fuzzing_xpdf/install/bin/pdfinfo -box -meta $HOME/fuzzing_xpdf/pdf_examples/helloworld.pdf
AFL++ 설치
로컬 설치와 도커 이미지 사용이 있는데 로컬 설치를 이용해서 설치를 해줄 것이다.
1. 종속성 설치
sudo apt-get update
sudo apt-get install -y build-essential python3-dev automake git flex bison libglib2.0-dev libpixman-1-dev python3-setuptools
sudo apt-get install -y lld-11 llvm-11 llvm-11-dev clang-11 || sudo apt-get install -y lld llvm llvm-dev clang
sudo apt-get install -y gcc-$(gcc --version|head -n1|sed 's/.* //'|sed 's/\..*//')-plugin-dev libstdc++-$(gcc --version|head -n1|sed 's/.* //'|sed 's/\..*//')-dev
2. Checkout and build AFL++
cd $HOME
git clone https://github.com/AFLplusplus/AFLplusplus && cd AFLplusplus
export LLVM_CONFIG="llvm-config-11"
make distrib
sudo make install
3. AFL 수행
afl-fuzz
위와 같은 결과가 나오면 잘 빌드된 것이다.(cd $HOME으로 홈에서 명령어를 수행하면 된다.) 명령어가 잘려서 나와서 more 명령어를 추가해서 다시 입력해보겠다.
명령어가 잘려서 출력되는데 위로 스크롤이 안 되어서 more 명령어를 이용하여 결과를 확인했다.
Enter로 한 줄씩, Space로 한 페이지씩 넘길 수 있다. (종료는 'q')
window powershell로 열면 스크롤, 복붙이 가능하다.
window powershell로 여는 방법이 궁금하다면..
깃허브에 언급된 것처럼 빌드가 잘 되었다~
rm -r $HOME/fuzzing_xpdf/install
cd $HOME/fuzzing_xpdf/xpdf-3.02/
make clean
'Fuzzing' 카테고리의 다른 글
Ubuntu SSH 접속 (0) | 2023.08.02 |
---|---|
.. (0) | 2023.07.17 |
The Art, Science, and Engineering of Fuzzing: A Survey (0) | 2023.07.05 |