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
-
Clone the repository:
git clone https://github.com/kankburhan/cpd.git cd cpd
-
Install dependencies using Poetry:
poetry installAlternatively, 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.
- High Concurrency: Built with
asyncioandaiohttpfor 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.
- Header Injection:
- Pipeline Ready: Designed to integrate into your reconnaissance workflow.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cpd_sec-0.2.9.tar.gz.
File metadata
- Download URL: cpd_sec-0.2.9.tar.gz
- Upload date:
- Size: 17.4 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da397675bc79396d7130dc919eceb3cc40c9f7170cfdbee4ae91498048acaa01
|
|
| MD5 |
b3e0faae258b271bdf06097275de2eb1
|
|
| BLAKE2b-256 |
fd463ea0c97a772234e38dcf86aaf4c212f66f6a59d68cd6b9fe15f7e3f71bb7
|
File details
Details for the file cpd_sec-0.2.9-py3-none-any.whl.
File metadata
- Download URL: cpd_sec-0.2.9-py3-none-any.whl
- Upload date:
- Size: 19.7 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2fffd2e2fff662f6a12e03d2742cb62f6e1e2d6534f288b7416b5c4c54bca723
|
|
| MD5 |
fef6e52d750b6001e036ea6c02cc1f84
|
|
| BLAKE2b-256 |
60a8a1afdc387080da1eb5365ac23994b4560e1a6f7181cccd4958d3a8a27e60
|