Fuzzing DSL Projects for Fun and Bugs
Run in docker
- Build the Dockerfile
- Enter each project and run
build.sh
andfuzz.sh
, respectively
Local deployment
Prerequisites
Targets
git submodule update --init --recursive
TODO
- TOML
Data Processing
- Collect all the distributed results
ensure dir hang_collect_{package_name}
, queue_collect_{package_name}
and dir crashes_collect_{package_name}
has collected all the related data.
Move all the related subdirs into the corresponding result dir (e.g., {package_name}-1, {package_name}-2)
- Gather Data
python collect_result.py
bash gather_result.sh
Reproduce and Triage
- AFLPlusplus
docker run -ti --privileged --net=host -v ${SOURCE}:/src aflplusplus/aflplusplus
export CC=afl-clang-fast
sed -i "s/gcc/${CC}/g" makefile
apt update
apt install golang # important !!
wget https://dl.google.com/go/go1.12.1.linux-amd64.tar.gz
tar -xzf go1.12.1.linux-amd64.tar.gz -C /usr/local
mkdir /go
export GOPATH=/go
export GOROOT=/usr/local/go
export PATH=$GOROOT/bin:$PATH:/go/bin
go get -u github.com/bnagy/crashwalk/cmd/...
mkdir ~/src
git clone https://github.com/jfoote/exploitable.git ~/src/exploitable
cwtriage --root crashes_collect_dir/ -afl > triage.log
- GDB
Ensure the source code is compiled properly.
Records and Progress
Google Sheet
Huntr Link
LICENSE
GPL