forked from nihonium/linux-auth
afl++ blackbox fuzz test
This commit is contained in:
parent
b3aa0b6ddd
commit
743263dc43
9 changed files with 56 additions and 3 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -1,2 +1,6 @@
|
||||||
build/
|
build/
|
||||||
data/
|
data/
|
||||||
|
|
||||||
|
AFLplusplus/
|
||||||
|
aflfuzz/configs/
|
||||||
|
aflfuzz/fuzz_out/
|
||||||
|
|
|
||||||
16
README.md
16
README.md
|
|
@ -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
|
||||||
|
|
|
||||||
2
aflfuzz/fuzz_in/blank_test.txt
Normal file
2
aflfuzz/fuzz_in/blank_test.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
|
||||||
2
aflfuzz/fuzz_in/right_admin.txt
Normal file
2
aflfuzz/fuzz_in/right_admin.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
admin
|
||||||
|
admin123
|
||||||
2
aflfuzz/fuzz_in/right_user.txt
Normal file
2
aflfuzz/fuzz_in/right_user.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
user1
|
||||||
|
password1
|
||||||
2
aflfuzz/fuzz_in/wrong_admin.txt
Normal file
2
aflfuzz/fuzz_in/wrong_admin.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
admin
|
||||||
|
admin
|
||||||
2
aflfuzz/fuzz_in/wrong_user.txt
Normal file
2
aflfuzz/fuzz_in/wrong_user.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
user
|
||||||
|
password
|
||||||
19
aflfuzz/install.sh
Executable file
19
aflfuzz/install.sh
Executable 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
10
aflfuzz/run_fuzz.sh
Executable 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
|
||||||
Loading…
Add table
Add a link
Reference in a new issue