sqlfuzz icon indicating copy to clipboard operation
sqlfuzz copied to clipboard

Simple SQL table fuzzing

SQLfuzz

Go Report Card GoDoc License made-with-Go sqlfuzz test workflow

Load random data into SQL tables for testing purposes. The tool can get the layout of the SQL table and fill it up with random data.

  • Installation
  • Usage
  • Flags
  • Package usage

Installation

MacOS

wget https://github.com/PumpkinSeed/sqlfuzz/releases/download/{RELEASE}/sqlfuzz_darwin_amd64 -O /usr/local/bin/sqlfuzz
chmod +x /usr/local/bin/sqlfuzz

Linux

# amd64 build
wget https://github.com/PumpkinSeed/sqlfuzz/releases/download/{RELEASE}/sqlfuzz_linux_amd64 -O /usr/local/bin/sqlfuzz
chmod +x /usr/local/bin/sqlfuzz

# arm64 build
wget https://github.com/PumpkinSeed/sqlfuzz/releases/download/{RELEASE}/sqlfuzz_linux_arm64 -O /usr/local/bin/sqlfuzz
chmod +x /usr/local/bin/sqlfuzz

Windows

You can download the Windows build here

Build from source

wget https://github.com/PumpkinSeed/sqlfuzz/archive/{RELEASE}.zip
# unzip
# cd into dir
go install main.go

Usage

# MySQL
sqlfuzz -u username -p password -d database -h 127.0.0.1 -t table -n 100000 -w 100

# Postgres
sqlfuzz -u username -p password -d database -h 127.0.0.1 -t table -n 100000 -w 100 -P 5432 -D postgres

Flags

  • u: User for database connection
  • p: Password for database connection
  • d: Database name for database connection
  • h: Host for database connection
  • P: Port for database connection
  • D: Driver for database connection (supported: mysql, postgres)
  • t: Table for fuzzing
  • n: Number of rows to fuzz
  • w: Concurrent workers to work on fuzzing
  • s: Seed value for reproducibility of data

Package usage

TODO: Write package