{"id":26282039,"url":"https://github.com/chainreactors/urlfounder","last_synced_at":"2025-10-09T08:47:00.178Z","repository":{"id":171529440,"uuid":"623424983","full_name":"chainreactors/urlfounder","owner":"chainreactors","description":"Fast passive URL enumeration tool.","archived":false,"fork":false,"pushed_at":"2023-06-06T12:51:11.000Z","size":1388,"stargazers_count":76,"open_issues_count":0,"forks_count":5,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-05-07T07:41:31.379Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","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/chainreactors.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2023-04-04T10:50:31.000Z","updated_at":"2025-05-07T02:37:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"f533fe50-f181-4664-81a1-307cf0a503ac","html_url":"https://github.com/chainreactors/urlfounder","commit_stats":null,"previous_names":["chainreactors/urlfounder"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/chainreactors/urlfounder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chainreactors%2Furlfounder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chainreactors%2Furlfounder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chainreactors%2Furlfounder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chainreactors%2Furlfounder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chainreactors","download_url":"https://codeload.github.com/chainreactors/urlfounder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chainreactors%2Furlfounder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001054,"owners_count":26082991,"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","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-03-14T16:19:30.509Z","updated_at":"2025-10-09T08:47:00.143Z","avatar_url":"https://github.com/chainreactors.png","language":"Go","readme":"\nfork from https://github.com/projectdiscovery/subfinder\n\n# intro\n\n\u003ch4 align=\"center\"\u003eFast passive url enumeration tool.\u003c/h4\u003e\n\n![](https://socialify.git.ci/chainreactors/urlfounder/image?description=1\u0026font=Inter\u0026forks=1\u0026issues=1\u0026language=1\u0026name=1\u0026owner=1\u0026pattern=Circuit%20Board\u0026pulls=1\u0026stargazers=1\u0026theme=Light)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e •\n  \u003ca href=\"#running-urlfounder\"\u003eUsage\u003c/a\u003e •\n  \u003ca href=\"#post-installation-instructions\"\u003eAPI Setup\u003c/a\u003e •\n  \u003ca href=\"#urlfounder-go-library\"\u003eLibrary\u003c/a\u003e •\n\u003c/p\u003e\n\n`urlfounder` is a url discovery tool that returns valid urls for domain, using passive online sources.  If you need to actively fuzzing  http directory/file, [spray](https://github.com/chainreactors/spray) is the best choice.\n\n\n# Features\n\n\u003ch1 align=\"left\"\u003e\n  \u003cimg src=\"static/urlfounder-run.png\" alt=\"urlfounder\" width=\"700px\" \u003e\n\u003c/h1\u003e\n\n- Probe and extract key information, such as title, status code\n- Support for multiple output formats (JSON, file, standard output)\n- Multiple data sources to maximise coverage and accuracy of search results\n- Fast and lightweight\n- Bulk input support\n\n# Usage\n\n```\nurlfounder -h\n```\n\nThis will display help for the tool. Here are all the switches it supports.\n\n```\nUsage:\n./urlfounder [flags]\n\nFlags:\nINPUT:\n    -d, -domain string[]  domains to find urls for\n    -dL, -list string     file containing list of domains for url discovery\n\n    SOURCE:\n    -s, -sources string[]           specific sources to use for discovery. Use -ls to display all available sources.\n    -all                            use all sources for enumeration (slow)\n    -es, -exclude-sources string[]  sources to exclude from enumeration (-es alienvault,zoomeye)\n\nFILTER:\n    -m, -match string[]   url or list of url to match (file or comma separated)\n    -f, -filter string[]   url or list of url to filter (file or comma separated)\n\nRATE-LIMIT:\n    -rl, -rate-limit int  maximum number of http requests to send per second\n    -t int                number of concurrent goroutines for resolving (-active only) (default 10)\n\nOUTPUT:\n    -o, -output string       file to write output to\n    -oJ, -json               write output in JSONL(ines) format\n    -oD, -output-dir string  directory to write output (-dL only)\n    -cs, -collect-sources    include all sources in the output (-json only)\n    -sc, -status             include StatusCode in output\n    -tI, -title              include url titles in output\n\nCONFIGURATION:\n    -config string                flag config file (default \"/root/.config/urlfounder/config.yaml\")\n    -pc, -provider-config string  provider config file (default \"/root/.config/urlfounder/provider-config.yaml\")\n    -r string[]                   comma separated list of resolvers to use\n    -aC, -active                  display active urls only\n    -proxy string                 http proxy to use with urlfounder\n\nDEBUG:\n    -silent             show only urls in output\n    -version            show version of urlfounder\n    -v                  show verbose output\n    -nc, -no-color      disable color in output\n    -ls, -list-sources  list all available sources\n    -stats              report source statistics\n\nOPTIMIZATION:\n    -timeout int   seconds to wait before timing out (default 30)\n    -max-time int  minutes to wait for enumeration results (default 10)\n```\n\n## Post Installation Instructions\n\nYou can use the `urlfounder -ls` command to display all the available sources.\n\nThe following services require set http proxy to use：\n\n- webarchive\n- alienvault\n\nThe following services require configuring API keys to work:\n\n- [BeVigil](https://bevigil.com/osint-api)\n\nThese values are stored in the `$HOME/.config/urlfounder/provider-config.yaml` file which will be created when you run the tool for the first time. \n\nAn example provider config file:\n\n```\nalienvault: []\nbevigil:\n  - Tu8DSd6GqM1jDDDD\nwebarchive: []\n```\n\n# Running Urlfounder\n\nTo run the tool on a target, just use the following command.\n\n```console\n./urlfounder -d projectdiscovery.io\n\n_____  _______________________                   _________\n__/ / / /__/ __ \\__/ /___/ __/_________  ______________  /____________\n_/ / / /__/ /_/ /_/ / __/ /_ _/ __ \\  / / /_  __ \\  __  /_  _ \\_  ___/\n/ /_/ / _  _, _/_/ /___/ __/ / /_/ / /_/ /_  / / / /_/ / /  __/  /\n\\____/  /_/ |_| /_____/_/    \\____/\\__,_/ /_/ /_/\\__,_/  \\___//_/   V0.0.1\n\n[INF] Loading provider config from /root/.config/urlfounder/provider-config.yaml\n[INF] Enumerating urls for projectdiscovery.io\nhttps://projectdiscovery.io/\nhttps://chaos.projectdiscovery.io/\nhttps://dns.projectdiscovery.io/dns/%s/subdomainsinvalid\nhttps://dns.projectdiscovery.io/dns/%s/public\nhttps://dns.projectdiscovery.io/dns/projectdiscovery.io\nhttps://projectdiscovery.io\nhttps://dns.projectdiscovery.io/dns/%s/subdomains\nhttps://blog.projectdiscovery.io/abusing\nhttps://dns.projectdiscovery.io/dns/\nhttps://dns.projectdiscovery.io/dns/addinvalid\nhttp://projectdiscovery.io/\nhttps://projectdiscovery.io/open\nhttps://dns.projectdiscovery.io/dns/%s/subdomainsinternal\nhttps://nuclei.projectdiscovery.io\nhttps://nuclei.projectdiscovery.io/faq/templates/\nhttps://nuclei.projectdiscovery.io/templating\nhttps://cdn.projectdiscovery.io/cdn/cdn\nhttps://nuclei.projectdiscovery.io/faq/nuclei/\n[INF] Found 18 urls for projectdiscovery.io in 564 milliseconds 619 microseconds\n```\n\n## Urlfounder Go library\n\nUsage example：\n\n```\npackage main\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"github.com/chainreactors/urlfounder/v2/pkg/resolve\"\n\t\"github.com/chainreactors/urlfounder/v2/pkg/runner\"\n\t\"io\"\n\t\"log\"\n)\n\nfunc main() {\n\trunnerInstance, err := runner.NewRunner(\u0026runner.Options{\n\t\tThreads:            10,                       // Thread controls the number of threads to use for active enumerations\n\t\tTimeout:            30,                       // Timeout is the seconds to wait for sources to respond\n\t\tMaxEnumerationTime: 10,                       // MaxEnumerationTime is the maximum amount of time in mins to wait for enumeration\n\t\tResolvers:          resolve.DefaultResolvers, // Use the default list of resolvers by marshaling it to the config\n\t\tResultCallback: func(s *resolve.HostEntry) { // Callback function to execute for available host\n\t\t\tlog.Println(s.Host, s.Source)\n\t\t},\n\t})\n\n\tbuf := bytes.Buffer{}\n\terr = runnerInstance.EnumerateSingleDomain(\"projectdiscovery.io\", []io.Writer{\u0026buf})\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\n\tdata, err := io.ReadAll(\u0026buf)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\n\tfmt.Printf(\"%s\", data)\n}\n```\n\n### Wiki\n\ntodo\n\n# THANKS\n\n- [urlfounder](https://github.com/chainreactors/urlfounder)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchainreactors%2Furlfounder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchainreactors%2Furlfounder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchainreactors%2Furlfounder/lists"}