Tiny "automatic" fuzzer for chromium using puppeteer. [WIP]
Domato generates fuzz files.
Puppeteer running in headless mode for testing.
Make sure that you've downloaded Chromium with ASAN in asan-mac-release
folder.
- Generate fuzz files with
domato
. - Serve these files using
serve
. - Run
puppeteer
against every generated file.
git clone https://github.com/Metnew/molybden.git && cd molybden
npm i
Make sure you have python and it exists in $PATH!
# Generate 100 fuzz files in ./dist folder
npm run generate
# Which is equal to:
# python ./domato/generator.py --output_dir ./dist --no_of_files 100
npm run generate
accepts env vars:
DOMATO_DIR
- output_dir for domatoDOMATO_NUM_FILES
- number of files to generate
# Generate 1337 fuzz files in ./hello/world folder
DOMATO_DIR=./hello/world DOMATO_NUM_FILES=1337 npm run generate
# Which is equal to:
# python ./domato/generator.py --output_dir ./hello/world --no_of_files 1337
IMPORTANT: domato can't generate folders for your files. You have to create empty folder for fuzz files (e.g. ./dist) by yourself. Else you'll get:
Writing a sample to ./dist/fuzz-0.html
Error writing to output
Writing a sample to ./dist/fuzz-1.html
Error writing to output
Run mkdir ./dist
before npm run generate
!
# Start puppeteer using files from DOMATO_DIR.
npm run start
# Which is equal to node `./src`
npm run start
accepts env vars:
DOMATO_DIR
- folder with generated fuzz filesPORT
- free port forserve
Apache-2.0 License.
Vladimir Metnew vladimirmetnew@gmail.com