CPFuzz: the Cartesian Product Fuzzer
Description
CPFuzz is a utility designed for security testing and fuzzing tasks. It takes multiple input files and creates all possible permutations (the Cartesian product) of their lines. This can be useful for generating comprehensive lists of potential URLs or other input data for fuzzing and penetration testing purposes.
For example, with input files containing HTTP protocols, domain names, and URL paths respectively, CPFuzz will generate all possible combinations of these components, thereby creating a comprehensive list of URLs.
Installation
To install CPFuzz, you need to have Go installed on your system.
go install github.com/d3mondev/cpfuzz@latest
Usage
cpfuzz file1 file2 file3 [...fileN]
Each file should contain a set of strings (lines) to be used in the permutations. CPFuzz will then output the permutations to the console.
Example
Given the following 3 files:
protocols.txt:
http://
https://
domains.txt:
example.com
www.example.com
paths.txt:
/index.html
/admin/
Running CPFuzz with these files as input will produce:
$ cpfuzz protocols.txt domains.txt paths.txt
http://example.com/index.html
http://example.com/admin/
http://www.example.com/index.html
http://www.example.com/admin/
https://example.com/index.html
https://example.com/admin/
https://www.example.com/index.html
https://www.example.com/admin/