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/
|
||||
data/
|
||||
|
||||
AFLplusplus/
|
||||
aflfuzz/configs/
|
||||
aflfuzz/fuzz_out/
|
||||
|
|
|
|||
16
README.md
16
README.md
|
|
@ -149,8 +149,18 @@ bash scripts/run.sh
|
|||
|
||||
Сначала соберите приложение и инициализируйте тестовую базу (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