Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

httpsuite logo

httpsuite

Unified HTTP Security Testing Tool
Bypass • CRLF • CORS • Methods • Smuggle — all in a single binary.

InstallationModulesUsageExamplesArchitectureCredits


httpsuite combines the best ideas from multiple open-source HTTP security tools into a single Go binary. Instead of juggling separate tools with different flags, payload files, and output formats, run one tool with a shared workflow, shared client, synced payload support, and smarter triage.

Why It Is Useful

  • Smart bypass filtering suppresses fake 200 or 3xx responses that still look like blocked templates
  • sync-payloads refreshes current payloads from upstream projects into payloads/
  • JSON output now carries richer bypass evidence such as reason, title, and fingerprint
  • A shared HTTP client provides retries, proxy support, custom headers, and TLS handling across modules
ModuleInspired ByWhat It Does
bypassnomore403403/401 bypass via verb tampering, verb case switching, header injection, path manipulation, double encoding, HTTP version probing, and block-page fingerprinting
crlfcrlfuzzCRLF injection scanning with multiple encoded escape payloads and reflected canary-header detection
corsCORStest / corserCORS misconfiguration detection for reflection, null, wildcard, prefix/suffix, subdomain, non-SSL, and alternate-port cases
methodshttpcHTTP method enumeration across 30+ methods with filtering and optional synced method payloads
smugglesmugglefuzzHTTP request smuggling via HTTP/2 downgrade with refreshed gadget parsing and synced default/extended gadget lists

Installation

From Source

git clone https://github.com/Aether-0/httpsuite.git
cd httpsuite
go build -o httpsuite .

Go Install

go install github.com/aether-0/httpsuite@latest

Move to PATH (optional)

sudo mv httpsuite /usr/local/bin/

Refresh Payload Files (optional)

httpsuite sync-payloads

Modules

Bypass

Tests a wide range of 403/401 bypass techniques against restricted endpoints:

  • Header injection with IP, host, URL, origin, and proxy-style headers
  • End-path and mid-path payload insertion
  • Verb tampering and verb case switching
  • Double URL encoding of path segments
  • Path case switching
  • Raw HTTP version probing with HTTP/1.0 and HTTP/1.1
  • Smart suppression of fake success responses that still look like blocked pages

CRLF

Tests for CRLF injection by generating encoded path payloads and looking for a reflected canary header:

  • Multiple encoded escape variants such as %0d%0a, %23%0d%0a, %u000d, %e5%98%8a%e5%98%8d, and more
  • Reflected header detection using X-Injected-Header-By: httpsuite
  • Works against single targets, files, or piped input

CORS

Detects several classes of CORS misconfiguration:

  • Origin reflection
  • Null-origin acceptance
  • Wildcard ACAO, including credential-related misconfigurations
  • Developer-backdoor origins
  • Prefix and suffix domain tricks
  • Subdomain trust issues
  • Non-SSL and alternate-port origin handling
  • Preflight inspection with OPTIONS

Methods

Enumerates allowed or interesting HTTP methods on target endpoints:

  • Built-in list of 30+ methods
  • Custom method lists with --methods
  • Status filtering with --status
  • Optional synced method payloads from payloads/bypass/httpmethods

Smuggle

Tests for HTTP request smuggling via HTTP/2 downgrade:

  • Raw HTTP/2 TLS connection setup with ALPN
  • Default and extended gadget banks
  • Support for custom gadget files with --wordlist
  • Synced gadget files from payloads/smuggle/
  • Configurable detection timeout with --interval

Usage

httpsuite <command> [flags]

Commands

CommandDescription
bypassTest for 403/401 bypass techniques
crlfTest for CRLF injection vulnerabilities
corsTest for CORS misconfiguration
methodsTest allowed HTTP methods on targets
smuggleTest for HTTP request smuggling via HTTP/2 downgrade
allRun all modules against target(s)
sync-payloadsDownload current upstream payload files into a local payload directory
versionShow version information
helpShow help message

Global Flags

FlagTypeDefaultDescription
-ustringTarget URL
-lstringFile containing list of URLs
-cint10Concurrency level
-tint10Timeout in seconds
-xstringProxy URL
-HstringCustom header (Key: Value) — repeatable
-ostringOutput file path
-jboolfalseJSON output mode
-sboolfalseSilent mode
-vboolfalseVerbose mode
-uastringhttpsuite/1.0Custom User-Agent string
--payload-dirstringpayloadsLocal payload override directory
--no-colorboolfalseDisable colored output
--redirectboolfalseFollow redirects
--random-agentboolfalseUse a random User-Agent

Module-Specific Flags

bypass

FlagDefaultDescription
--techniquesheaders,endpaths,midpaths,verbs,verbs-case,double-encoding,http-versions,path-caseComma-separated bypass techniques
--bypass-ip(none)Custom IP for header-based bypass generation

Notes:

  • Verbose mode explains why blocked-template responses were suppressed.
  • JSON output includes reason, title, and fingerprint fields for bypass findings.

cors

FlagDefaultDescription
--originhttps://evil.comCustom attacker origin
--deepfalseEnable deeper origin mutation coverage

methods

FlagDefaultDescription
--methods(all built-in)Custom comma-separated HTTP methods
--status(all)Filter results by status codes

smuggle

FlagDefaultDescription
--extendedfalseUse the extended gadget list
--wordlistCustom gadget file
--interval5Detection timeout in seconds

Notes:

  • The smuggling module targets https:// endpoints that negotiate HTTP/2 over TLS.

sync-payloads

FlagDefaultDescription
--payload-dirpayloadsDestination payload directory
-t20Sync timeout in seconds
-sfalseSilent mode
--no-colorfalseDisable colored output

Examples

Bypass

# Basic 403/401 bypass scan
httpsuite bypass -u https://example.com/admin

# Focus on specific techniques
httpsuite bypass -u https://example.com/admin --techniques headers,endpaths,http-versions

# Show suppression reasons and richer bypass triage
httpsuite bypass -u https://example.com/admin -v -j

# Use a custom bypass IP
httpsuite bypass -u https://example.com/admin --bypass-ip 10.0.0.1

CRLF

# Basic CRLF scan
httpsuite crlf -u https://example.com

# Scan a URL list with higher concurrency
httpsuite crlf -l urls.txt -c 50

# Through a proxy
httpsuite crlf -u https://example.com -x http://127.0.0.1:8080

CORS

# Basic CORS scan
httpsuite cors -u https://example.com

# Deep scan with custom origin
httpsuite cors -u https://example.com --deep --origin https://attacker.com

# Multiple targets
httpsuite cors -l urls.txt -c 20

Methods

# Enumerate all built-in methods
httpsuite methods -u https://example.com

# Test specific methods and filter by status
httpsuite methods -u https://example.com --methods GET,POST,PUT,DELETE --status 200,201,405

# JSON output
httpsuite methods -u https://example.com -j -o results.json

Smuggle

# Basic smuggling scan
httpsuite smuggle -u https://example.com

# Extended gadget list with longer detection timeout
httpsuite smuggle -u https://example.com --extended --interval 10

# Custom gadget file
httpsuite smuggle -u https://example.com --wordlist gadgets.txt

Payload Sync

# Sync payloads into the default directory
httpsuite sync-payloads

# Sync into a custom payload directory
httpsuite sync-payloads --payload-dir payloads-custom

Run All Modules

# Full scan
httpsuite all -u https://example.com

# Full scan with verbose output and higher concurrency
httpsuite all -u https://example.com -v -c 20

Piping and Output

# Pipe targets from stdin
cat urls.txt | httpsuite cors
echo "https://example.com" | httpsuite methods

# Plain text output
httpsuite all -u https://example.com -o scan.log

# JSON output
httpsuite bypass -u https://example.com/admin -j -o bypass.json

Architecture

httpsuite/
├── main.go                      # Entry point
├── cmd/
│   └── root.go                  # CLI routing & flag parsing
├── internal/
│   ├── bypass/
│   │   ├── bypass.go            # Scanner logic, triage, raw HTTP version checks
│   │   └── payloads.go          # Embedded payloads + synced payload loaders
│   ├── crlf/
│   │   └── crlf.go              # Encoded CRLF payload generation and reflection checks
│   ├── cors/
│   │   └── cors.go              # Origin generation, preflight, response analysis
│   ├── methods/
│   │   └── methods.go           # Method enumeration logic
│   └── smuggle/
│       ├── smuggle.go           # HTTP/2 downgrade testing
│       └── gadgets.go           # Embedded gadget banks
├── pkg/
│   ├── common/
│   │   └── types.go             # Shared config and result types
│   ├── httpclient/
│   │   ├── client.go            # Shared HTTP client
│   │   └── summary.go           # Response fingerprinting and HTML normalization
│   ├── output/
│   │   └── output.go            # Banner, terminal, JSON, and file output
│   ├── payloadsync/
│   │   └── payloadsync.go       # Upstream payload downloader/extractor
│   └── utils/
│       └── utils.go             # URL helpers, case variants, file helpers
└── payloads/
    ├── bypass/                  # Synced bypass payload files
    └── smuggle/                 # Synced smuggle gadget files

How It Works

  1. Input: accepts a single URL, a list file, or piped stdin
  2. Dispatch: routes to a specific module or runs all modules in sequence
  3. Shared Client: applies timeout, retries, proxy, headers, and TLS settings consistently
  4. Concurrent Workers: each module runs with a worker pool controlled by -c
  5. Triage: bypass responses are fingerprinted and compared against blocked baselines
  6. Output: results stream to stdout and optionally to text or JSON output files

Credits

httpsuite is built by combining techniques and ideas from these projects:

ToolAuthorContribution
nomore403devploitHeader and path-based bypass techniques
crlfuzzdwisiswant0CRLF escape sequence inspiration
CORStestRUB-NDSCORS payload classes and evaluation patterns
corsercyinnoveLightweight CORS testing workflow
httpcAether-0HTTP method testing ideas
smugglefuzzMoopingerHTTP/2 smuggling gadget ideas and payload format

Disclaimer

This tool is intended for authorized security testing and educational use only. Always obtain proper authorization before testing systems you do not own or manage.


License

MIT License — see LICENSE for details.

关于 About

No description, website, or topics provided.

语言 Languages

Go100.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
3
Total Commits
峰值: 2次/周
Less
More

核心贡献者 Contributors