Way Finder is a lightweight Bash script designed to assist bug bounty hunters in automating reconnaissance tasks. It allows users to fetch URLs from web archives, filter them for specific vulnerability parameters, and dynamically manage keyword-based searches. Whether you're hunting for XSS, LFI, SQLi, or other vulnerabilities, [Tool Name] is here to streamline your workflow.
- Fetch URLs: Extract URLs from the Wayback Machine for a given domain.
- Filter URLs: Search for specific vulnerability patterns such as XSS, SQLi, SSRF, and more.
- Add Keywords: Dynamically add custom keywords for vulnerability searches.
- Custom Output: Save results to organized output files.
- Help Menu: Access all available commands and usage details.
-
Clone the repository:
git clone https://github.com/yourusername/tool-name.git cd tool-name
-
Make the script executable:
chmod +x tool
-
Ensure you have
waybackurls
installed:go install github.com/tomnomnom/waybackurls@latest
Run the tool with the desired flags and arguments. Below is a list of all supported options:
Flag | Description |
---|---|
--urls |
Fetch URLs from Wayback Machine for a given domain. |
--xss |
Filter URLs containing XSS-related parameters. |
--lfi |
Filter URLs for Local File Inclusion patterns. |
--sqli |
Filter URLs for SQL Injection patterns. |
--redir |
Filter URLs for Open Redirect patterns. |
--ssrf |
Filter URLs for Server-Side Request Forgery patterns. |
--rce |
Filter URLs for Remote Code Execution patterns. |
--add |
Add a custom keyword to a vulnerability type filter. |
-d |
Specify the domain for URL collection. |
-f |
Specify the input file for URL filtering. |
-o |
Specify the output file to save results. |
--help |
Display the help menu with all available options. |
tool --urls -d example.com -o waybackurls.txt
tool --xss -f waybackurls.txt -o xss_urls.txt
tool --add --xss "<iframe"
tool --sqli -f urls.txt -o sqli_urls.txt
tool --help
This project is licensed under the MIT License.
- Parse command-line arguments (
--urls
,-d
,-o
). - Validate inputs:
- Ensure
-d
(domain) and-o
(output file) are provided. - Check if waybackurls is installed.
- Ensure
- Run waybackurls with the domain and save the results to the specified output file.
- Display a success message or error if the command fails.
Task 1: Create a function to handle argument parsing. Task 2: Validate inputs and check prerequisites (e.g., waybackurls is installed). Task 3: Run waybackurls and save the output to a file.
- Parse command-line arguments (
--xss
,--lfi
, etc., with-f
and-o
). - Validate inputs:
- Ensure
-f
(input file) and-o
(output file) are provided. - Check if the input file exists.
- Ensure
- Based on the chosen vulnerability type:
- Use
grep
to search for predefined keywords in the input file. - Save matching URLs to the output file.
- Use
- Provide success or error messages.
Tasks:
- Task 1: Define predefined keyword lists for each vulnerability type (e.g., XSS, LFI).
- Task 2: Implement keyword filtering using
grep
. - Task 3: Write functions for each vulnerability type (e.g.,
filter_xss
,filter_lfi
).
Goal: Allow users to add new keywords for vulnerability-specific filters.
Algorithm:
- Parse command-line arguments (
--add
, vulnerability type, keyword). - Validate inputs:
- Ensure vulnerability type (
--xss
,--lfi
, etc.) is valid. - Check if a keyword is provided.
- Ensure vulnerability type (
- Append the new keyword to the corresponding keyword list (stored in a file or array).
- Confirm that the keyword has been added successfully.
Tasks:
- Task 1: Store keyword lists in external files or a configuration file for persistence.
- Task 2: Write functions to add keywords dynamically.
- Task 3: Update filtering logic to include custom keywords.
Goal: Organize the script into reusable functions and enhance usability.
Algorithm:
- Create modular functions:
parse_arguments()
: Handle argument parsing.run_waybackurls()
: Fetch URLs.filter_urls()
: Filter URLs based on type.add_keyword()
: Add new keywords.
- Use
case
orif-elif
blocks to handle different operations (--urls
,--xss
, etc.). - Validate all inputs and provide meaningful error messages for invalid usage.
- Include a help menu with usage instructions.
Tasks:
- Task 1: Modularize all operations into functions.
- Task 2: Add input validation for robustness.
- Task 3: Write a
--help
menu with descriptions of all options.
Goal: Add more filtering options for vulnerabilities like SSRF, RCE, etc.
Algorithm:
- Define keyword lists for new vulnerabilities.
- Implement functions for filtering additional vulnerabilities (
filter_ssrf
,filter_rce
). - Integrate these functions into the main script.
Tasks:
- Task 1: Research common patterns and keywords for new vulnerabilities.
- Task 2: Add functions and keywords for new vulnerability types.
- Task 3: Test and refine new features.
Goal: Enhance usability and functionality.
Possible Additions:
- Output Formatting: Save results in structured formats like CSV or JSON.
- Multithreading: Use
xargs
orparallel
for faster filtering. - Custom Commands: Allow users to define and run custom grep commands.
- Logging: Implement logging for errors and operations.
- Interactive Mode: Add an interactive menu for non-CLI users.
By dividing the development into these stages, you can build and test each feature incrementally, ensuring a robust and functional tool. Let me know if you need a starting script or more details! 😊