Skip to main content

asdfuzz

Web application fuzzer that automatically detects and fuzzes the following data in HTTP requests:

  • URL directories,
  • URL parameters,
  • cookies,
  • form data,
  • and JSON data.

Quickstart

Install the asdfuzz package using pip (see below).

The easiest way to get started is to copy a request from the Network tab of Chrome DevTools. Select the option "Copy as fetch (Node.js)" and save the content to a file, such as: example.txt.

Run asdfuzz with the following command:

python -m asdfuzz --fetch-nodejs example.txt

Example

Example usage

The fuzzing starting point can be:

  • a raw HTTP request,
  • an OWASP ZAP message export,
  • or the content of "Copy as fetch (Node.js)" from the Network tab of Chrome DevTools.

Every individual field will be fuzzed in a separate section and the results are shown on screen. The performed requests and received responses are stored by default in a folder called asdfuzz_output/ for later reference. To skip a section while the fuzzer is already running, press [control]+[spacebar].

Individual fields in JSON data will be fuzzed recursively. If base64-urlencoded JSON data is present in parameters or cookies, this data will be fuzzed recursively as well.

Usage

Usage: python -m asdfuzz [OPTIONS]

Options:
  --filename PATH                 File containing a single HTTP request to 
                                  fuzz in raw HTTP format. [default: None]
  --zap-export PATH               File containing one or multiple HTTP
                                  requests to fuzz in OWASP ZAP message export
                                  format. [default: None]
  --fetch-nodejs PATH             File containing a single HTTP request to 
                                  fuzz in "Copy as fetch (Node.js)" format
                                  from Chrome DevTools. [default: None]
  --wordlist-file PATH            File containing the wordlist used for
                                  fuzzing. A default wordlist is used if this
                                  parameter is empty. In the wordlist, use
                                  template <original> to refer dynamically to
                                  the value in the original request.
                                  [default: None]
  --port INTEGER                  Port used for the connection.  [default:
                                  443]
  --https / --no-https            Use HTTPS.  [default: https]
  --filter-hostname-endswith TEXT
                                  Only keep requests ending with this
                                  hostname.
  --delay-seconds FLOAT           Seconds of delay between requests.
                                  [default: 0]
  --directories / --no-directories
                                  Fuzz directories in the URL.  [default:
                                  directories]
  --parameters / --no-parameters  Fuzz values of parameters in the URL.
                                  [default: parameters]
  --cookies / --no-cookies        Fuzz the values of cookies.  [default: no-
                                  cookies]
  --form-data / --no-form-data    Fuzz the values of HTTP form data.
                                  [default: form-data]
  --json-data / --no-json-data    Fuzz the values of JSON data.  [default:
                                  json-data]
  --add-header TEXT               Add an extra header to the request. For
                                  example: "Header: Value". [default: None]
  --confirmation / --no-confirmation
                                  Enter the interactive menu.  [default:
                                  confirmation]
  --output-directory PATH         Directory where the fuzzed requests and
                                  responses will be stored.  [default:
                                  asdfuzz_output]
  --debug / --no-debug            Enable debug mode.  [default: no-debug]
  --help                          Show this message and exit.

Installation

Releases are made available on PyPi. The recommended installation method is via pip:

python -m pip install asdfuzz

For a development setup, the requirements are in dev-requirements.txt. Subsequently, this repo can be locally pip-installed. Developer documentation is provided here.

Metadata

Release files for asdfuzz 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for asdfuzz 0.1.0
File Size Uploaded
asdfuzz-0.1.0.tar.gz 20.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for asdfuzz 0.1.0
File Interpreter ABI Platform
asdfuzz-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 45.6 kB

Release files / asdfuzz-0.1.0.tar.gz

Download URL asdfuzz-0.1.0.tar.gz
Size 20.7 kB
Tags Source
SHA-256 checksum
How to use checksums
e7b4ded9455e3ac11246ae62a9b3b6a8c4ad2fbf1cea89e25a6c7354fafdfbea
BLAKE2b-256 checksum
How to use checksums
e2773196323e8510a56c8ab81078a8fe719a8954b44bc59ff1ba73fc55e5d72b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.3

Release files / asdfuzz-0.1.0-py3-none-any.whl

Download URL asdfuzz-0.1.0-py3-none-any.whl
Size 24.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6725598ed35df4cd9c06d439918936e3a0cff9ed58aed91868bfe46ee2a90773
BLAKE2b-256 checksum
How to use checksums
681ac1072edf89969ba8dde61ccec45773e02e4b9b8f5a744482908afe19d74f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

0.0.1

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page