{"id":13845853,"url":"https://github.com/rotemreiss/uddup","last_synced_at":"2025-07-12T03:32:33.036Z","repository":{"id":54278418,"uuid":"336066205","full_name":"rotemreiss/uddup","owner":"rotemreiss","description":"Urls de-duplication tool for better recon.","archived":false,"fork":false,"pushed_at":"2024-07-10T07:58:28.000Z","size":34,"stargazers_count":136,"open_issues_count":6,"forks_count":21,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-11-20T03:15:40.910Z","etag":null,"topics":["bugbounty","recon","reconnaissance","url","url-parsing"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rotemreiss.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","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},"funding":{"custom":["https://www.buymeacoffee.com/2RS3C"]}},"created_at":"2021-02-04T19:52:19.000Z","updated_at":"2024-11-08T21:53:15.000Z","dependencies_parsed_at":"2024-07-10T09:39:17.079Z","dependency_job_id":"bc253248-f49c-4bf5-86a9-351f4e5b821f","html_url":"https://github.com/rotemreiss/uddup","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rotemreiss%2Fuddup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rotemreiss%2Fuddup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rotemreiss%2Fuddup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rotemreiss%2Fuddup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rotemreiss","download_url":"https://codeload.github.com/rotemreiss/uddup/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225791428,"owners_count":17524781,"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":["bugbounty","recon","reconnaissance","url","url-parsing"],"created_at":"2024-08-04T17:03:38.456Z","updated_at":"2024-11-21T19:30:46.392Z","avatar_url":"https://github.com/rotemreiss.png","language":"Python","funding_links":["https://www.buymeacoffee.com/2RS3C"],"categories":["Python"],"sub_categories":[],"readme":"# UDdup - URLs Deduplication Tool\n\nThe tool gets a list of URLs, and removes \"duplicate\" pages in the sense\nof URL patterns that are probably repetitive and points to the same web template.\n\nFor example:\n```\nhttps://www.example.com/product/123\nhttps://www.example.com/product/456\nhttps://www.example.com/product/123?is_prod=false\nhttps://www.example.com/product/222?is_debug=true\n```\nAll the above are probably points to the same product \"template\".\nTherefore it should be enough to scan only some of these URLs by our various scanners.\n\nThe result of the above after UDdup should be:\n```\nhttps://www.example.com/product/123?is_prod=false\nhttps://www.example.com/product/222?is_debug=true\n```\n\n## Why do I need it?\nMostly for better (automated) reconnaissance process,\nwith less noise (for both the tester and the target).\n\n## Examples\nTake a look at `demo.txt` which is the raw URLs file which results in `demo-results.txt`.\n\n---\n\n## Installation\n### With pip (Recommended)\n```bash\npip install uddup\n```\n\n### Manual (from code)\n```bash\n# Clone the repository.\ngit clone https://github.com/rotemreiss/uddup.git\n\n# Install the Python requirements.\ncd uddup\npip install -r requirements.txt\n```\n\n---\n## Usage\n\n`uddup -u demo.txt -o ./demo-result.txt`\n\n### More Usage Options\n`uddup -h`\n\nShort Form    | Long Form            | Description\n------------- | -------------------- |-------------\n-h            | --help               | Show this help message and exit\n-u\t\t\t  | --urls\t\t\t\t | File with a list of urls\n-o\t\t\t  | --output\t\t\t | Save results to a file\n-s\t\t\t  | --silent\t\t\t | Print only the result URLs\n-fp           | --filter-path        | Filter paths by a given Regex\n\n### Filter Paths by Regex\nAllows filtering custom paths pattern.\nFor example, if we would like to filter all paths that starts with `/product` we will need to run:\n```bash\n# Single Regex\nuddup -u demo.txt -fp \"^product\"\n```\n\n**Input:**\n```bash\nhttps://www.example.com/\nhttps://www.example.com/privacy-policy\nhttps://www.example.com/product/1\nhttps://www.example2.com/product/2\nhttps://www.example3.com/product/4\n```\n\n**Output:**\n```bash\nhttps://www.example.com/\nhttps://www.example.com/privacy-policy\n```\n\n### Advanced Regex with multiple path filters\n```bash\nuddup -u demo.txt -fp \"(^product)|(^category)\"\n```\n---\n## Contributing\nFeel free to fork the repository and submit pull-requests.\n\n---\n\n## Support\n\n[Create new GitHub issue][newissue]\n\nWant to say thanks? :) Message me on \u003ca href=\"https://www.linkedin.com/in/reissr\" target=\"_blank\"\u003eLinkedin\u003c/a\u003e\n\n\n---\n\n## License\n\n[![License](http://img.shields.io/:license-mit-blue.svg?style=flat-square)](http://badges.mit-license.org)\n\n- **[MIT license](http://opensource.org/licenses/mit-license.php)**\n\n\u003c!-- Markdown helper --\u003e\n[newissue]: https://github.com/rotemreiss/uddup/issues/new\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frotemreiss%2Fuddup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frotemreiss%2Fuddup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frotemreiss%2Fuddup/lists"}