{"id":19937161,"url":"https://github.com/d3mondev/crossjoin","last_synced_at":"2025-05-03T14:31:07.617Z","repository":{"id":177362466,"uuid":"660254082","full_name":"d3mondev/crossjoin","owner":"d3mondev","description":"Generate a cross join, also known as a Cartesian product, from the lines of the specified files. This process is useful for creating fuzzing payloads.","archived":false,"fork":false,"pushed_at":"2023-06-29T18:34:00.000Z","size":17,"stargazers_count":20,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T16:17:18.120Z","etag":null,"topics":["bug-bounty","bugbounty","bugbounty-tool","bugbounty-tools","cartesian-product","cross-join","crossjoin","fuzzer","fuzzing","hacking","hacking-tool","penetration-testing","penetration-testing-tools","permutation"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/d3mondev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-29T15:28:49.000Z","updated_at":"2025-04-05T13:25:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"777eee64-859c-4b05-8318-fd21e985eb7b","html_url":"https://github.com/d3mondev/crossjoin","commit_stats":null,"previous_names":["d3mondev/crossjoin"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3mondev%2Fcrossjoin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3mondev%2Fcrossjoin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3mondev%2Fcrossjoin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3mondev%2Fcrossjoin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/d3mondev","download_url":"https://codeload.github.com/d3mondev/crossjoin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252203188,"owners_count":21710904,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bug-bounty","bugbounty","bugbounty-tool","bugbounty-tools","cartesian-product","cross-join","crossjoin","fuzzer","fuzzing","hacking","hacking-tool","penetration-testing","penetration-testing-tools","permutation"],"created_at":"2024-11-12T23:31:15.932Z","updated_at":"2025-05-03T14:31:07.609Z","avatar_url":"https://github.com/d3mondev.png","language":"Go","readme":"# Crossjoin\n\n![Example output](https://i.imgur.com/XeJQCqp.png)\n\n## Description\n\n`crossjoin` 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.\n\nFor example, with input files containing HTTP protocols, domain names, and URL paths respectively, `crossjoin` will generate all possible combinations of these components, thereby creating a comprehensive list of URLs.\n\n[![Twitter URL](https://img.shields.io/twitter/url/https/twitter.com/d3mondev.svg?style=social\u0026label=Follow%20%40d3mondev)](https://twitter.com/d3mondev)\n\n## Installation\nYou can download a release from the [Releases](https://github.com/d3mondev/crossjoin/releases) page.\n\nAlternatively, you can compile it yourself. You need to have [Go](https://go.dev/dl/) installed on your system.\n\n```\ngo install github.com/d3mondev/crossjoin@latest\n```\n\n## Usage\n\n```bash\ncrossjoin file1 file2 file3 [...fileN]\n```\n\nEach file should contain a set of strings (lines) to be used in the permutations. `crossjoin` will then output the permutations to the console.\n\nIf standard input (stdin) is provided, the program will use it as the first input.\n\n```bash\ncommand | crossjoin file1 file2 ...\n```\n\n## Example\n\nGiven the following 3 files:\n\n#### protocols.txt:\n```plaintext\nhttp://\nhttps://\n```\n\n#### domains.txt:\n```plaintext\nexample.com\nwww.example.com\n```\n\n#### paths.txt:\n```plaintext\n/index.html\n/admin/\n```\n\nRunning `crossjoin` with these files as input will produce:\n\n```\n$ crossjoin protocols.txt domains.txt paths.txt\n\nhttp://example.com/index.html\nhttp://example.com/admin/\nhttp://www.example.com/index.html\nhttp://www.example.com/admin/\nhttps://example.com/index.html\nhttps://example.com/admin/\nhttps://www.example.com/index.html\nhttps://www.example.com/admin/\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd3mondev%2Fcrossjoin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fd3mondev%2Fcrossjoin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd3mondev%2Fcrossjoin/lists"}