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
puppeteeragainst 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 100npm 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 1337IMPORTANT: 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