A comprehensive subdomain enumeration tool that combines Subfinder and Sublist3r results and serves them via a web interface.
- Location:
finder-backend/ - Port: 3000
- Technology: Go with Fiber web framework
- Function: Runs subdomain enumeration and serves results via API
- Location:
finder-frontend/ - Port: 3001 (default React port)
- Technology: React.js
- Function: Provides user interface to interact with the backend
- User Input: User enters a domain in the React frontend
- API Request: Frontend sends POST request to
http://localhost:3000/find - Backend Processing:
- Runs Subfinder:
subfinder -d domain -silent - Runs Sublist3r:
python sublist3r.py -d domain - Combines results:
combined := append(subfinderResults, sublist3rFiltered...) - Deduplicates:
combined_subs := deduplicate(combined)
- Runs Subfinder:
- API Response: Backend returns
combined_subsas JSON array - Frontend Display: React receives and displays the subdomains
POST /find- Main endpoint for subdomain enumerationGET /api/subdomains/:domain- Alternative GET endpointGET /health- Health check endpoint
cd finder-backend
go mod tidy
go run main.gocd finder-frontend
npm install
npm start- Frontend: http://localhost:3001
- Backend API: http://localhost:3000
[
"sub1.example.com",
"sub2.example.com",
"sub3.example.com",
"www.example.com",
"mail.example.com"
]Update these paths in finder-backend/main.go:
pythonPath := "/Users/name/Desktop/folder/Sublist3r/venv/bin/python" // your python env location
sublist3rPath := "/Users/name/Desktop/folder/Sublist3r" // sublist3r tool locationThe frontend is configured to call http://localhost:3000/find by default.
- Go 1.21+
- Fiber v2.52.0
- Subfinder (external tool)
- Sublist3r (external tool)
- React 19.1.0
- React DOM 19.1.0
- React Scripts 5.0.1
- Combined Enumeration: Uses both Subfinder and Sublist3r
- Deduplication: Removes duplicate subdomains
- Real-time Results: Shows results as they're found
- Error Handling: Graceful error handling and user feedback
- CORS Enabled: Frontend can communicate with backend
- Responsive UI: Modern, user-friendly interface
- User enters domain in the React frontend
- Frontend sends request to Go backend via Fiber API
- Backend runs Subfinder to find subdomains
- Backend runs Sublist3r to find additional subdomains
- Backend combines results using the
combined_subsvariable - Backend returns JSON array of unique subdomains
- Frontend displays results in a clean, organized list
The combined_subs variable contains the final deduplicated list of all subdomains found by both tools, which is then sent to the frontend for display.