Skip to content

qsfuzz

Query string fuzzer for vulnerability detection

Description

qsfuzz (Query String Fuzz) fuzzes query string parameters to find vulnerabilities. You define custom rules that test each parameter for specific vulnerability classes like XSS, SQLi, SSRF, open redirect, and more. Highly customizable and fast.

Installation

BASH
go install github.com/ameenmaali/qsfuzz@latest

Basic Usage

BASH
# Fuzz URLs from stdin with default rules
cat urls.txt | qsfuzz -w rules.yaml

# Single URL
echo "https://target.com/search?q=test&page=1" | qsfuzz -w rules.yaml

Advanced Usage

BASH
# Custom concurrency
cat urls.txt | qsfuzz -w rules.yaml -c 30

# Timeout per request
cat urls.txt | qsfuzz -w rules.yaml -t 10

# Custom headers
cat urls.txt | qsfuzz -w rules.yaml -H "Cookie: session=abc"

# Output matches to file
cat urls.txt | qsfuzz -w rules.yaml -o findings.txt

Rule Example

YAML
# rules.yaml
rules:
  - description: "Reflected XSS"
    injections:
      - "<script>alert(1)</script>"
      - "'\"><img src=x onerror=alert(1)>"
    detect:
      - type: "body"
        content: "<script>alert(1)</script>"

  - description: "SQL Error"
    injections:
      - "' OR 1=1--"
      - "\" OR \"\"=\""
    detect:
      - type: "body"
        content: "SQL syntax"
      - type: "body"
        content: "mysql_fetch"

Common Workflows

BASH
# Collect URLs → fuzz query strings
gau target.com | grep "=" | qsfuzz -w rules.yaml -c 20

# Wayback + GAU → filter parameterized → fuzz
(gau target.com; waybackurls target.com) | sort -u | grep "?" | qsfuzz -w rules.yaml