afl++ blackbox fuzz test

This commit is contained in:
vovuas2003 2026-05-06 12:14:00 +03:00
parent b3aa0b6ddd
commit 743263dc43
9 changed files with 56 additions and 3 deletions

4
.gitignore vendored
View file

@ -1,2 +1,6 @@
build/ build/
data/ data/
AFLplusplus/
aflfuzz/configs/
aflfuzz/fuzz_out/

View file

@ -149,8 +149,18 @@ bash scripts/run.sh
Сначала соберите приложение и инициализируйте тестовую базу (init_users). Сначала соберите приложение и инициализируйте тестовую базу (init_users).
Далее: Далее (для учебных целей фаззинг ограничен по времени - 5 минут):
1. cd myfuzz 1. Запуск нативного фаззера (проверка функции аутентификации, ограничение в 1 поток для нормальной работы SQLite, время фаззинга можно увеличить в скрипте запуска)
2. ./run_fuzz.sh 1.1. cd myfuzz
1.2. ./run_fuzz.sh
2. Запуск AFL++ в режиме blackbox (фаззинг готового бинарника)
2.1. cd aflfuzz
2.2. ./install.sh
2.3. ./run_fuzz.sh

View file

@ -0,0 +1,2 @@

View file

@ -0,0 +1,2 @@
admin
admin123

View file

@ -0,0 +1,2 @@
user1
password1

View file

@ -0,0 +1,2 @@
admin
admin

View file

@ -0,0 +1,2 @@
user
password

19
aflfuzz/install.sh Executable file
View file

@ -0,0 +1,19 @@
#!/bin/bash
# apt install afl++ не поддерживает qemu режим, соберём из исходников
# https://github.com/AFLplusplus/AFLplusplus/blob/stable/docs/INSTALL.md
sudo apt-get update
sudo apt-get install -y build-essential python3-dev automake cmake git flex bison libglib2.0-dev libpixman-1-dev python3-setuptools cargo libgtk-3-dev
# try to install llvm-18 and install the distro default if that fails
sudo apt-get install -y lld-18 llvm-18 llvm-18-dev clang-18 || 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
sudo apt-get install -y meson ninja-build # for QEMU mode
sudo apt-get install -y cpio libcapstone-dev # for Nyx mode
sudo apt-get install -y wget curl # for Frida mode
sudo apt-get install -y python3-pip # for Unicorn mode
git clone https://github.com/AFLplusplus/AFLplusplus
cd AFLplusplus
git submodule update --init
make distrib
sudo make install

10
aflfuzz/run_fuzz.sh Executable file
View file

@ -0,0 +1,10 @@
#!/bin/bash
mkdir -p data
cp ../data/users.db ./data/users.db
mkdir -p configs
cp ../configs/config.toml ./configs/config.toml
mkdir -p fuzz_out
afl-fuzz -V $(( 60 * 5 )) -Q -i fuzz_in -o fuzz_out -- ../build/release/authapp