Skip to content

bl4ck0w1/drift

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

drift-logo

**Differential Recon & Inference Fuzzing Tool**

Authenticated API triage and discovery for penetration testers and researchers

Python Platform License Author

DRIFT is an API security testing CLI built for real-world authenticated testing. It helps you move from a frontend or captured API request to the endpoints that matter, then test them with focused modules for BOLA, version regression, JWT, shadow discovery, and GraphQL.

Why DRIFT?

Most API workflows are fragmented: you discover endpoints in one place, compare responses in another, test authorization in another, then manually stitch everything together in Burp.

DRIFT is built to make that first serious pass faster and cleaner:

  • Auth-first workflow — built for real bearer tokens and real API requests
  • Low-noise behavior — target-fit gating, catch-all detection, and confidence-aware findings
  • Focused modules — BOLA, version regression, JWT, shadow endpoint discovery, and GraphQL
  • Manual-review friendly — proxy support for Burp so every lead can be inspected and replayed

Features at a Glance

  • Fingerprinting: fast recon to decide what kind of target you are dealing with
  • BOLA / IDOR: object-level fuzzing across multiple ID formats, with optional cross-user comparison
  • Version Regression: checks for alternate versions and weaker controls
  • JWT Analysis: decoding, attack-surface mapping, tampering, and weak-secret checks
  • Shadow Discovery: harvests API routes from JS bundles, common specs, and curated API paths
  • GraphQL Testing: introspection, field harvesting, batching, alias abuse, and auth checks
  • Confidence-Aware Findings: validated, probable, heuristic, and weak findings to reduce overclaiming

Quick Start

Requirements

  • Python 3.8+
  • pip
  • Git

Build / Install

git clone https://github.com/bl4ck0wl/drift.git
cd drift

python -m venv venv

# Windows
venv\Scripts\activate

# macOS / Linux
source venv/bin/activate

pip install -r requirements.txt
pip install -e .

CLI Reference (--help)

drift --help


           **                            ***
            **                  *      ** ***      *
            **                 ***    **   ***    **
            **                  *     **          **
            **   ***  ****            **        ********
        *** **    **** **** * ***     ******   ********
       *********   **   ****   ***    *****       **
      **   ****    **           **    **          **
      **    **     **           **    **          **
      **    **     **           **    **          **
      **    **     **           **    **          **
      **    **     **           **    **          **
      **    **     ***          **    **          **
       *****        ***         *** * **           **
        ***                      ***   **


      Differential Recon & Inference Fuzzing Tool
      Author: bl4ck0wl

Usage:
  drift <command> [options]

Commands:
  scan         Run all DRIFT modules against a target API
  bola         Deep BOLA/IDOR fuzzing on a specific endpoint
  version      API version regression discovery and security diff
  jwt          Full JWT attack suite
  shadow       Hidden endpoint discovery
  graphql      GraphQL full attack suite
  fingerprint  Quick API recon — no attacks, just detection

Global Options:
  --no-color   Disable ANSI colors
  --version    Show version and exit
  -h, --help   Show this help message and exit

scan  — Run all DRIFT modules against a target API

  -u, --url <url>          Target API URL with object ID
  -t, --token <token>      Auth token (Bearer ...)
  -T, --token-b <token>    Second token for cross-user BOLA proof
  -d, --delay <sec>        Delay between requests (default: 0.5)
  -p, --proxy <proxy>      Proxy URL
  -o, --output <file>      Output file (.html or .json)
  -v, --verbose            Verbose output

  Example:
    drift scan -u https://api.target.com/v2/users/1234 -t "Bearer eyJ..." -T "Bearer eyJ...B" -o report.html

bola  — Deep BOLA/IDOR fuzzing on a specific endpoint

  -u, --url <url>          Endpoint URL containing an object ID
  -t, --token <token>      Primary auth token
  -T, --token-b <token>    Second token for cross-user proof
  -d, --delay <sec>        Delay between requests
  -p, --proxy <proxy>      Proxy URL
  -v, --verbose            Show candidate IDs being tested

  Example:
    drift bola -u https://api.target.com/v2/invoices/INV-9874 -t "Bearer eyJ..." -T "Bearer eyJ...B"

version  — API version regression discovery and security diff

  -u, --url <url>          Target API URL
  -t, --token <token>      Auth token
  -d, --delay <sec>        Request delay
  -p, --proxy <proxy>      Proxy URL
  -v, --verbose            Show every version being probed

  Example:
    drift version -u https://api.target.com/v2/admin/users -t "Bearer eyJ..."

jwt  — Full JWT attack suite

  -t, --token <jwt>        JWT token to analyze
  -u, --url <url>          Target URL to replay forged tokens against
  -p, --proxy <proxy>      Proxy URL
  -v, --verbose            Show each attack being attempted

  Example:
    drift jwt -t "eyJhbGciOiJSUzI1NiJ9..." -u https://api.target.com/v2/admin

shadow  — Hidden endpoint discovery

  -u, --url <url>          Frontend app URL
  -t, --token <token>      Auth token
  -p, --proxy <proxy>      Proxy URL
  -v, --verbose            Show every path being probed

  Example:
    drift shadow -u https://app.target.com -t "Bearer eyJ..."

graphql  — GraphQL full attack suite

  -u, --url <url>          GraphQL endpoint URL
  -t, --token <token>      Auth token
  -p, --proxy <proxy>      Proxy URL
  -v, --verbose            Show every query being sent

  Example:
    drift graphql -u https://api.target.com/graphql -t "Bearer eyJ..."

fingerprint  — Quick API recon — no attacks, just detection

  -u, --url <url>          Target URL
  -t, --token <token>      Auth token for deeper fingerprinting

  Example:
    drift fingerprint -u https://api.target.com/v2/users/me -t "Bearer eyJ..."

                                   Authorized use only. You must have explicit permission before scanning or probing any target.

Usage Examples

1) Fingerprint a real API endpoint

drift fingerprint -u https://api.target.com/v2/users/me -t "Bearer eyJ..."

2) Run a full scan on an object endpoint

drift scan -u https://api.target.com/v2/users/1234 -t "Bearer eyJ..." -o report.html

3) Run BOLA / IDOR with two tokens

drift bola -u https://api.target.com/v2/invoices/INV-9874 -t "Bearer eyJ...ACCOUNT_A..." -T "Bearer eyJ...ACCOUNT_B..."

4) Discover hidden API routes from the frontend

drift shadow -u https://app.target.com -t "Bearer eyJ..."

5) Proxy through Burp for manual review

drift scan -u https://api.target.com/v2/users/1234 -t "Bearer eyJ..." --proxy http://127.0.0.1:8080

License

MIT License — see LICENSE.

Compliance & Ethics

⚠️ Authorized Use Only

DRIFT is intended for:

  • penetration testing with written permission
  • bug bounty programs within published scope
  • internal application security testing
  • research in controlled environments

Always obtain authorization and follow applicable laws and platform rules.

About

DRIFT is an API security testing CLI built for real-world authenticated testing. It helps you move from a frontend or captured API request to the endpoints that matter, then test them with focused modules for BOLA, version regression, JWT, shadow discovery, and GraphQL.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages