Back to Blog
Research · Sep 12, 2024

Building Strike: High-Performance Fuzzing in Go

How we achieved 1000+ requests per second with zero throttling.

When we set out to build Strike, our fuzzing engine, we had one goal: make it the fastest web fuzzer in the world. Here's how we did it.

The Challenge

Existing fuzzers like ffuf and wfuzz are excellent tools, but they face limitations when dealing with complex targets. Connection pooling, rate limiting detection, and adaptive throttling were areas we knew we could improve.

Our Approach

Connection Pooling — We implemented aggressive connection reuse with HTTP/2 multiplexing support.

Worker Architecture — A carefully tuned goroutine pool that maximizes throughput while preventing resource exhaustion.

Adaptive Throttling — Automatic detection of rate limits and intelligent backoff strategies.

Results

Strike consistently achieves 1000+ requests per second on most targets, with peaks up to 5000 RPS on well-optimized servers.

Technical Details

The core engine is written in pure Go, leveraging the standard library's excellent HTTP/2 support. We use a custom connection pool that maintains warm connections and automatically handles connection failures.

Try KarmaGate now.

Skip to main content