Brainstorm is an innovative web fuzzing tool that integrates traditional fuzzing techniques with AI-powered insights, leveraging local Large Language Models (LLMs) via Ollama to optimize the discovery of hidden directories, files, and endpoints in web applications.

By combining the speed and efficiency of tools like ffuf with the intelligence of LLMs, Brainstorm significantly enhances the fuzzing process, uncovering more endpoints with fewer requests.

Key Features

  1. AI-Powered Path Generation: Brainstorm uses local LLMs to analyze extracted links from a target website and generate intelligent guesses for potential paths and filenames.
  2. Iterative Learning: The tool learns from its discoveries, refining its suggestions in subsequent cycles to maximize efficiency.
  3. Customizable Fuzzing: Users can specify models, prompts, status codes, and cycles to tailor the fuzzing process to their needs.

Brainstorm operates in a repetitive cycle:

  • Extract initial links from the target website.
  • Use an LLM model (e.g., qwen2.5-coder) to suggest new paths based on these links.
  • Fuzz the suggested paths using ffuf.
  • Incorporate valid discoveries into the next cycle for further exploration.

This approach reduces the number of requests sent to the target site while increasing the likelihood of finding hidden resources, making it particularly effective for applications with strict rate limits or defenses against brute-force attacks.

Brainstorm includes two main tools:

  1. fuzzer.py: A general-purpose fuzzer for path discovery.
  2. fuzzer_shortname.py: Specialized for discovering short filenames (e.g., legacy 8.3 formats).

Requirements:

  • Python 3.6+
  • ffuf
  • Ollama (for running local LLMs)
  • Python dependencies listed in requirements.txt

To get started:

  1. Clone the repository and install dependencies: bashgit clone https://github.com/Invicti-Security/brainstorm.git cd brainstorm pip install -r requirements.txt
  2. Ensure ffuf is installed and Ollama is running locally.
  3. Run basic fuzzing: bashpython fuzzer.py "ffuf -w ./fuzz.txt -u http://example.com/FUZZ"

Brainstorm has demonstrated exceptional results compared to traditional wordlist-based fuzzing:

  • ffuf with wordlist jsp.txt: 100,000 requests yielded 5 endpoints.
  • Brainstorm: Only 328 requests uncovered 10 endpoints.

This efficiency highlights Brainstorm’s potential to transform web fuzzing by combining AI-driven insights with robust traditional methods.

LEAVE A REPLY

Please enter your comment!
Please enter your name here