Skip to main content

A high-concurrency CLI tool for detecting web cache poisoning vulnerabilities.

Project description

CachePoisonDetector (CPD)

A high-concurrency CLI tool for detecting web cache poisoning vulnerabilities.

Overview

CPD is a security tool designed to identify vulnerabilities in web caching systems that allow cache poisoning attacks.

Installation

  1. Clone the repository:

    git clone https://github.com/kankburhan/cpd.git
    cd cpd
    
  2. Install dependencies using Poetry:

    poetry install
    

    Alternatively, calculate dependencies to requirements.txt and use pip:

    pip install .
    

Usage

CPD supports multiple input methods and extensive configuration options.

1. Basic Scan (--url)

Scan a single target URL.

# Using poetry
poetry run cpd scan --url https://example.com

# As an installed package
cpd scan -u https://example.com

2. Pipeline Mode (Stdin)

Pipe URLs from other tools (like waybackurls, gau, subfinder, or cat) directly into CPD. This is ideal for mass scanning.

# Scan URLs found by waybackurls
waybackurls target.com | cpd scan

# Scan URLs from a file using cat
cat urls.txt | cpd scan --concurrency 20

3. File Input (--file)

Read URLs from a text file (one URL per line).

cpd scan --file urls.txt

4. Raw Request Scan (--request-file)

Scan using a raw HTTP request definition (e.g., copied from Burp Suite).

# Save your request to a file (e.g. request.txt)
cpd scan --request-file request.txt

Alternative: Direct String (--raw) Use with caution due to shell escaping characters.

cpd scan --raw "GET /api/foo HTTP/1.1
Host: example.com"

5. Advanced Options

Custom Headers (--header)

Add custom headers to every request (e.g., cookies, authorization). You can use this flag multiple times.

cpd scan -u https://admin.example.com \
    -h "Cookie: session=12345" \
    -h "Authorization: Bearer XYZ"

Output to File (--output)

Save the findings to a JSON file.

cpd scan -u https://example.com --output results.json

Concurrency (--concurrency)

Control the number of simultaneous requests (default: 50).

cpd scan -f targets.txt --concurrency 100

Verbosity (--verbose, --quiet)

Control output levels.

cpd scan -u https://example.com -v  # Debug logging
cpd scan -u https://example.com -q  # Only show findings

5. Utilities

Validate Finding (validate)

Manually verify a vulnerability claim step-by-step.

cpd validate --url https://target.com --header "X-Forwarded-Host: evil.com"

Update Tool (update)

Check for and install the latest version of CPD.

cpd update

Features

  • Auto Update Check: Automatically checks for new versions on run. Auto Update
  • High Concurrency: Built with asyncio and aiohttp for speed.
  • Smart Baseline: Establishes a stable baseline to reduce false positives.
  • Advanced Poisoning:
    • Header Injection: X-Forwarded-Host, X-Forwarded-Scheme, Fastly-Client-IP, etc.
    • Path Normalization: Exploits backend URL decoding differences (/foo\bar).
    • Fat GET: Sends request bodies with GET requests.
    • Unkeyed Query Params: Injects parameters to test cache key inclusion.
    • Method Override: Tests X-HTTP-Method-Override.
  • Pipeline Ready: Designed to integrate into your reconnaissance workflow.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cpd_sec-0.2.3.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cpd_sec-0.2.3-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file cpd_sec-0.2.3.tar.gz.

File metadata

  • Download URL: cpd_sec-0.2.3.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.9.25 Linux/6.11.0-1018-azure

File hashes

Hashes for cpd_sec-0.2.3.tar.gz
Algorithm Hash digest
SHA256 3ec01f98eef5b7e3769a8999b34ae45b42f07df4c1ba827da6da19cb9ed64451
MD5 abe28e8370df0242cfc5e5b5daa6a7cc
BLAKE2b-256 1bff1ae6f4b52b62725d4f371fb9b47be428ef413766d62ec4a94ff11cd3c563

See more details on using hashes here.

File details

Details for the file cpd_sec-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: cpd_sec-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 16.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.9.25 Linux/6.11.0-1018-azure

File hashes

Hashes for cpd_sec-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 09e006e88b47c56e080687af7bfcc553e69407fea46210c0a572bd7dbac1c92b
MD5 98e60df0fdd9d80295569c9cc3b00e92
BLAKE2b-256 6dc41d68963c23335d5ba659833ffc9861b32561a908300524e2b2cb8e7524a5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page