-
v8.9
-
Changed
- BUG FIX: When downloading archived responses, the file extension is derived from the URL path. For some URLs (e.g. captured analytics/beacon requests with long query-string-like values after a
.in the path) this produced an extremely long "extension" that was appended to the filename, causing[Errno 36] File name too longerrors when writing files. The extension is now validated for length: if the determined extension is longer than 20 characters it is treated as invalid and set tounknown, preventing the "File name too long" failures. This check has been applied to both the Wayback/archive and URLScan response-saving code paths.
- BUG FIX: When downloading archived responses, the file extension is derived from the URL path. For some URLs (e.g. captured analytics/beacon requests with long query-string-like values after a
-
-
v8.8
-
Changed
- RELIABILITY FIX: Previously, many outbound HTTP requests were made without a timeout, e.g. getting the number of pages/links to search from sources, the URLScan / VirusTotal / Intelligence X API calls, the Common Crawl index collection lookup (including the streaming download of index data), and the Discord / Telegram completion notifications. If a source server was slow or unresponsive, a worker thread could block indefinitely and
waymorewould appear to hang with no way to recover other than killing it. All outbound requests now apply a default timeout ofDEFAULT_TIMEOUT(30) seconds when one is not explicitly set. This is done via a newTimeoutSessionwrapper aroundrequests.Sessionthat is used for every request. Calls that already specify their own timeout (including archived response downloads controlled by the-t/--timeoutargument) are unaffected and continue to use that value. - DEPENDENCY CLEANUP: Removed unused and incorrectly-scoped dependencies.
aiohttpandurlparse3were listed inrequirements.txtbut are never imported anywhere in the code — URL parsing uses the standard libraryurllib.parse, and concurrency usesasynciowith thread pool executors rather thanaiohttp.setuptoolswas listed as a runtime dependency but is only required at build time (it remains in the[build-system]requirements ofpyproject.toml). Theinstall_requireslist insetup.pyhas also been reconciled withrequirements.txt(removingurlparse3) so the two no longer disagree. This reduces the install footprint and dependency/CVE surface, with no change to functionality.
- RELIABILITY FIX: Previously, many outbound HTTP requests were made without a timeout, e.g. getting the number of pages/links to search from sources, the URLScan / VirusTotal / Intelligence X API calls, the Common Crawl index collection lookup (including the streaming download of index data), and the Discord / Telegram completion notifications. If a source server was slow or unresponsive, a worker thread could block indefinitely and
-
-
v8.7
- New
- If the
config.ymlfile is not found in the expected config directory (e.g.~/.config/waymore/on Linux or%APPDATA%/waymore/on Windows), it will be automatically created with default values. This fixes the issue where installing withpipxdid not create theconfig.ymlfile.
- If the
- New
-
v8.6
-
Changed
- BUG FIX: Passing
-ko/--keywords-onlyor-ra/--regex-afterpatterns in double quotes in bash (e.g.-ko "\.js(\?|$)") causes$)to be expanded by the shell to an empty string, giving an invalid regex\.js(\?|(unbalanced parenthesis). The resultingre.errorwas silently swallowed, returning no results with no explanation. Both-koand-rapatterns are now validated immediately after argument parsing; an invalid regex exits with a clear error and a tip to use single quotes (e.g.-ko '\. js(\?|$)'). - CHANGE: The
-ko/--keywords-onlypattern is wrapped for the Wayback CDX and Common Crawl APIs by a newcdxKeywordsFilter()helper. It always adds a.*prefix so the pattern can match anywhere in the URL (both APIs use Pythonre.match()semantics (anchors to start of string, not full-string)). Whether a.*suffix is added depends on the pattern: if it contains an unescaped$the suffix is omitted (the$anchors to end-of-URL already); otherwise.*is appended so the pattern acts as a substring match. Examples:\.js→filter=...(\.js).*;\.js(\?.*|$)→filter=...(\.js(\?.*|$)). If the Wayback CDX API returns a 502/504 Gateway Timeout when-kois used, a message is shown. The Common Crawl verbose output (-v) also now correctly includes the full requested index URL with the keywords filter. - BUG FIX: The
-ft/--filter-mime-typesand-mt/--match-mime-typesarguments rejected valid MIME types containing characters such as.,_,!, etc. The validation regex has been updated to allow all RFC-valid MIME token characters (A-Z a-z 0-9 ! # $ % & ' * + - . ^ _ backtick { | } ~) on each side of exactly one/.
- BUG FIX: Passing
-
-
v8.5
-
Changed
- BUG FIX: Fixed Issue #80 - Input paths containing spaces (e.g.,
thetrove.is/Books/Zardoz RPG/) were failing because URL-encoded spaces (%20) in returned URLs didn't match the literal spaces in the input. Now uses URL decoding before comparison. - BUG FIX: Fixed Issue #80 - Input paths were incorrectly forced to lowercase. URL paths are case-sensitive, so now only the hostname portion is lowercased while the path case is preserved.
- BUG FIX: Fixed Issue #80 - Input paths containing spaces (e.g.,
-
-
v8.4
-
Changed
- BUG FIX: The error
ERROR processURLScanUrl 1: 'NoneType' object has no attribute 'add'was fixed by ensuring that thelinksFoundURLScanandlinkMimesvariables are initialized before they are used. A similar fix was applied to many other variables to prevent similar errors.
- BUG FIX: The error
-
-
v8.3
-
Changed
- Dual-Method Config Creation: Restored the setup-time configuration creation logic in
setup.pywhile maintaining the robust runtime fallback inwaymore.py. This ensures better visibility and immediate setup for traditional installations while keepingpipxand wheel installations fully supported. - Minor cleanup and line-spacing improvements.
- Dual-Method Config Creation: Restored the setup-time configuration creation logic in
-
-
v8.2
-
Changed
- Reliable Config Creation: Improved the configuration file creation logic to ensure it works across all installation methods (e.g.,
pipx). The config file is now created robustly at runtime if it doesn't already exist. - Improved platform-specific path detection for Windows, Linux, and macOS.
- Fixed a bug where providing a relative path via
-cwould fail to create the default config if the directory was not already present. - Removed redundant and fragile install-time config copying logic from
setup.py.
- Reliable Config Creation: Improved the configuration file creation logic to ensure it works across all installation methods (e.g.,
-
-
v8.1
-
New
- Auto-create config.yml: If the
config.ymlfile is not found in the default location whenwaymoreruns, it will now be automatically created with default values. This fixes issues where the config file was not created during installation for some users.
- Auto-create config.yml: If the
-
-
v8.0
-
New
- GhostArchive Source: Added GhostArchive as a new URL source for
-mode UAND-mode R. This source doesn't have an API, so waymore crawls the HTML pages directly to extract archived URLs. The source paginates automatically until no more results are found. For-mode Rit will download the WARC files and extract the HTTP Responses and extra URLs from them. - Added
-xgaargument to exclude checks for links from ghostarchive.org. - Updated
--providersargument to acceptghostarchiveas a valid provider value. - Added
.aviftoFILTER_URLandimage/aviftoFILTER_MIMEinconfig.ymland default values inDEFAULT_FILTER_URLandDEFAULT_FILTER_MIME.
- GhostArchive Source: Added GhostArchive as a new URL source for
-
Changed
- Remove
application/pdffromFILTER_MIMEinconfig.ymland default values inDEFAULT_FILTER_MIME. These files can contain valuable information and should not be filtered out.
- Remove
-
-
v7.7
-
New
- Add a few more audio and video extensions to
FILTER_URLinconfig.ymland default values inDEFAULT_FILTER_URL - Add few more audio and video MIME type to
FILTER_MIMEinconfig.ymland default values inDEFAULT_FILTER_MIME - Added extar debug info to show the file being processed so if waymore seems to freeze on a specific file I can investigate.
- Add a few more audio and video extensions to
-
Changed
- Binary File Download Fix: Fixed critical bug where binary files (
.zip,.pdf,.gz, images, etc.) downloaded (with-mode R) were corrupted. The issue was that all responses were being handled as text (resp.text) and written in text mode with UTF-8 encoding, which mangles binary data during the encoding/decoding cycle. - Added
BINARY_EXTENSIONSconstant containing 50+ binary file extensions (.zip,.gz,.pdf,.exe,.png,.mp4, fonts, archives, etc.) - Added
BINARY_MIME_TYPESconstant containing 40+ binary MIME types (application/zip,application/pdf,image/*,audio/*,video/*, etc.) - Replaced
isBinaryFile()with improvedisBinaryContent()function that now checks actual content bytes for file signatures. This ensures HTML error pages are correctly treated as text even if the URL has a binary extension like.pdf. Priority order: (1) content inspection for file magic bytes, (2) Content-Type header, (3) URL extension as fallback. - Binary files are now downloaded using
resp.content(raw bytes) and written using binary mode ("wb"), preserving the original file data - Text files continue to use decoded bytes with UTF-8 encoding and Wayback cleanup regex processing
- Binary files that cannot determine an extension will use
.bininstead of.unknown - Raw Wayback Downloads (
id_modifier): For binary files, the Wayback Machine URL now includes theid_modifier (e.g.,/web/20090315210455id_/http://...) which retrieves the raw original file without any Wayback Machine modifications. This fixes corruption of media files like.wmv,.mp4, etc. - Added
isLikelyBinaryUrl()helper to pre-check if a URL has a binary extension before making the request - Added
addRawModifier()helper to insert theid_modifier into Wayback URLs - Added comprehensive binary file magic bytes signatures
- The
--source-ipoption is now only displayed in verbose (-v) output when it's explicitly configured. Previously, it always showed a default message even when not set.
- Binary File Download Fix: Fixed critical bug where binary files (
-
-
v7.6
-
New
-
Changed
- Fixed
notifyDiscord()andnotifyTelegram()functions to use the HTTP adapter for source IP binding consistency. - Added null checks for
HTTP_ADAPTERinchooseIntelxBase()and webhook functions for robustness.
- Fixed
-
-
v7.5
-
New
- IntelX Fallback Mechanism: Added automatic fallback between paid (
2.intelx.io) and free (free.intelx.io) Intelligence X endpoints. The tool now probes endpoints in order and automatically switches to the free endpoint if the paid one returns 401/402/403 errors, improving reliability for users with different API key types. - Added thread-local storage for IntelX URL configuration to support concurrent operations.
- Change the README to note that Intelligence X is now an academia or paid tier only source, not just paid.
- Thanks to the aleister1102 for PR #78 for this improvement.
- IntelX Fallback Mechanism: Added automatic fallback between paid (
-
-
v7.4
- BUG FIX: The source specific totals were showing as 0 when running
-mode Uand the errorERROR processIntelxUrl 1: name 'linksFoundIntelx' is not definedwas shown. This has been fixed.
- BUG FIX: The source specific totals were showing as 0 when running
-
v7.3
-
Changed
- The v7.2 changes were not correct to provide support for Telegram notifications. A new optional argument
-nt/--notify-telegramcan be used to send a notification to a Telegram webhook when waymore completes. This requiresTELEGRAM_BOT_TOKENandTELEGRAM_CHAT_IDto be provided in theconfig.ymlfile.
- The v7.2 changes were not correct to provide support for Telegram notifications. A new optional argument
-
v7.2
-
New
- Added support for Telegram notifications. A new optional argument
-nt/--notify-telegramcan be used to send a notification to a Telegram webhook when waymore completes. This requiresWEBHOOK_TELEGRAMto be provided in theconfig.ymlfile.
- Added support for Telegram notifications. A new optional argument
-
-
v7.1
-
New
- Add
/_incapsula_resourcetoFILTER_URLinconfig.yml(and the default constant if the config file is not found) to exclude this common response that is not part of the original target. The response also causes regex "catastrophic backtracking" inxnLinkFinderso I am excluding here aswell as looking into solving that problem.
- Add
-
-
v7.0
-
New
- Async Concurrent Source Fetching: Implemented asynchronous concurrent fetching from all URL sources (Wayback Machine, Common Crawl, AlienVault OTX, URLScan, VirusTotal, Intelligence X) for significantly improved performance (2-4x faster for multi-source runs).
- Added
asyncioorchestration layer to manage concurrent execution while maintaining backward compatibility with existing synchronous code. - Added
aiohttpdependency to requirements for async HTTP support. - Added thread-safe locks (
threading.Lock) to protect shared global state (linksFound,linkMimes,urlscanRequestLinks) from race conditions during concurrent operations.
-
Changed
- Sources are now fetched concurrently instead of sequentially, with proper error handling to ensure one source failure doesn't stop others.
- Properly initialized
linksFoundandlinkMimesas global variables to preventNoneTypeerrors during concurrent access. - Removed local reassignments of global variables in source functions (
getURLScanUrls,getCommonCrawlUrls,getVirusTotalUrls) that were causing race conditions. - All
.add()operations on shared sets are now protected with locks for thread safety. - Minimum Python version: Now requires Python 3.7+ for
async/awaitsupport. - Ensure the default value for
-lcc/--limit-common-crawlis set to 1. - Set the default value for
-p/--processesto 2. This will speed things if people don't specify a value, and shouldn't cause any issues. - Fixed duplicate rate limit messages from AlienVault when using parallel processes by checking
stopSourcebefore printing the 429 error message. - Fixed issue where AlienVault would show an "Unexpected response" error after a "Rate limit reached" error.
- Wayback streaming improvements: Wayback Machine requests now use
stream=Trueto retrieve results as they arrive. If the connection is interrupted (Response ended prematurelyerror), all URLs processed before the error are still saved instead of losing everything. Error messages now show how many URLs were saved before the connection failed. - Ctrl-C interrupt for streaming requests (2025-12-03): Fix SIGINT handling so a live streaming response is closed when Ctrl-C is pressed, allowing blocking
session.get(..., stream=True)requests to be interrupted and stop faster. This exposes the active response to the SIGINT handler and closes it to cancel blocking network I/O. - Session-level interrupt fix (2025-12-03T11:36:18.961Z): Also expose and close the active requests.Session when SIGINT is received to more reliably abort blocking streaming requests on some platforms/environments.
- Interruptible rate-limit waits (2025-12-03T12:04:37.195Z): Replaced blocking time.sleep() calls used when rate-limited with an interruptible wait driven by a global threading.Event (interrupt_event). The SIGINT handler now sets interrupt_event so rate-limit waits wake early when Ctrl-C is pressed.
- Unique Link Counting: The link count displayed for each source (Wayback, Common Crawl, etc.) now represents the number of unique URLs found from that source, rather than the total number of URLs found (which included duplicates). The final total still shows the unique URLs found across all sources.
- Memory Optimization: Significant reduction in memory usage by preventing duplicate storage of links. Links are now stored only in source-specific sets during processing and merged into the main set at the end, with source sets being cleared immediately to free up memory.
- Link Counting Consistency: Fixed a discrepancy where source-specific link counts could be higher than the final total. All link counting now uses the same normalization (removing ports 80/443) and filtering logic to ensure consistency.
- Source-Specific Link Counting: Added separate link counts for each source (Wayback, Common Crawl, etc.) to provide more detailed information about the number of unique links found from each source.
-
-
v6.6
-
Changed
- The
-from/--from-dateand-to/--to-datearguments were not used for getting URLs from Wayback Archive, only for responses. These have been changed to apply to both modeUand modeRfor Wayback. They will not be used for URLs if the-f/--filter-responses-onlyargument is passed. - The
-lcyargument will be removed and the-from/--from-dateand-to/--to-datearguments will now determine which Common Crawl indexes to get and which records from the files will be returned if filtering is required. - The
-from/--from-dateand-to/--to-datearguments were also not used for getting URLs from Common Crawl, Alien Vault and Virus Total within the date limits. IMPORTANT: There are some exceptions with sources unable to get URLs within date limits: Virus Total - all known sub domains will still be returned; Intelligence X - all URLs will still be returned.
- The
-
-
v6.5
-
New
- Added GitHub Actions CI workflow with automated linting (ruff), formatting checks (black), and testing (pytest) across Python 3.9-3.12
- Added
pyproject.tomlwith modern Python project configuration and tool settings - Added basic test suite with import test
- Added
docker-entrypoint.shfor proper permission handling in Docker containers
-
Changed
- Docker improvements: Upgraded to multi-stage build using Python 3.12-slim for smaller image size and better security
- Docker security: Container now runs as non-root user (appuser) with proper permission handling via gosu
- Docker build: Now uses
python -m build --wheelinstead of deprecatedsetup.py install - Fixed circular import issue in
setup.pyby addingget_version()function to read version via regex - Simplified Docker usage command in README (removed redundant
waymorecommand from entrypoint) - Applied black and ruff formatting to
setup.pyandpyproject.toml
-
Thanks
-
-
v6.4
-
New
- Add
.ruff_cacheand.pytest_cacheto.gitignorenow required after v6.3 changes.
- Add
-
Changed
- BUG FIX: The version was now being shown as outdated because of changes made in v6.3. The version just needed white space stripped now.
-
-
v6.3
-
Changed
- Code quality improvements: Fixed all bare
except:statements to useexcept Exception:for better error handling practices. - Fixed undefined variable issue by properly declaring
processas a global variable. - Removed unused variable assignments to clean up the codebase.
- Applied consistent code formatting (black) and linting (ruff) across all Python files.
- All changes are code quality improvements with no functional impact.
- Code quality improvements: Fixed all bare
-
-
v6.2
-
New
- Add argument
--stream. Using it will output URLs to STDOUT as soon as they are found (duplicates will be shown). Only works with-mode U. All other output is suppressed, so use-vto see any errors. Use-oUto explicitly save results to file (wil be deduplicated). Issue 54
- Add argument
-
Changed
- Change the
--versionargument to show the version and whether it is outdated or not, in the same way as the banner.
- Change the
-
-
v6.1
-
INFO: v6.0 was skipped because there was an error in the version uploaded to PyPi and it cannot be replaced
-
New
- Get archived responses from URLScan in addition to wayback machine. The same processing to get the links will be done, but the
_idvalues will be stored and then the DOM for each response can be retrieved fromhttps://urlscan.io/dom/{UUID}. Sometimes the API may not have saved the DOM, so these are just skipped. - BUG FIX: The
-from/--from-dateand-to/--to-datevalues can take the formatYYYYMMDDhhmmss(or part of) but wasn't validated that it was a valid date/time. Validation now added. - BUG FIX: The search for links on URLScan wasn't taking into account the
-fromor-tofields. These are now used to format the{DATERANGE}section inURLSCAN_URL. - BUG FIX: If a URL is passed as input, then the links from URLScan would just match the domain, not the URL.
- Get archived responses from URLScan in addition to wayback machine. The same processing to get the links will be done, but the
-
Changed
- Pass the waymore version in the User-Agent when making requests to URLScan.
- Rename
index.txttowaymore_index.txtinstead, to allowxnLinKFinderidentify awaymoreresponse directory better.
-
-
v5.1
- BUG FIX: When calling URLScan API, it would sometimes return a 429 response straight away. It was assumed this was just to do with the API rate limiting, but it seemed to been related to the User-Agent and was a WAF 429 rather than a specific API 429. It now sets a specific user agent of
waymore by xnl-h4ck3rwhich always works for now.
- BUG FIX: When calling URLScan API, it would sometimes return a 429 response straight away. It was assumed this was just to do with the API rate limiting, but it seemed to been related to the User-Agent and was a WAF 429 rather than a specific API 429. It now sets a specific user agent of
-
v5.0
-
New
- Add source Intelligence X - intelx.io. It requires a paid API key to do the
/phonebook/searchthrough their API (as of 2024-09-01, the Phonebook service has been restricted to paid users due to constant abuse by spam accounts). - Add argument
-xixto exclude checks for links from Intelligence X (intelx.io). - Add
INTELX_API_KEYtoconfig.yml.
- Add source Intelligence X - intelx.io. It requires a paid API key to do the
-
-
v4.9
-
Changed
- BUG FIX: The error
ERROR combineInlineJS 1: local variable 'fileNumber' referenced before assignmentis raised when there are external javascript files provided viasrcbut no inline javascript sections. The correct message will be displayed now without an error being raised. - BUG FIX: If a status code filter does not include
404(whether specified inconfig.ymlor changed via-fcor-mc) then the logic was causing a response to not be downloaded. - BUG FIX: When downloading responses, the URL needs to all be in lower case, regardless of the URL that the API returns that may have uppercase characters. This resulted in some responses not being found and failing to download.
- BUG FIX: The error
-
-
v4.8
-
Changed
- BUG FIX: When downloading responses and creating the file name, sometimes the file extension is incorrectly derived and has
/in it, e.g.5146045725697.well-known/openid-configuration, and this causes the writing of the file to fail. If the derived extension does contain/then it will be reset to blank, and determined a different way.
- BUG FIX: When downloading responses and creating the file name, sometimes the file extension is incorrectly derived and has
-
-
v4.7
-
New
- BUG FIX: If an input domain has unicode in, e.g
xñl.uk, then it will be converted to the punycode version, e.g.xn--xl-zja.ukto use that as the input instead. This will ensure the URLs and responses are correctly retrieved from the archive sources.
- BUG FIX: If an input domain has unicode in, e.g
-
-
v4.6
-
New
- Add argument
-ftto specify a list of MIME Types to filter. This will override theFILTER_MIMElist inconfig.yml. NOTE: This will NOT be applied to Alien Vault OTX and Virus Total because they don't have the ability to filter on MIME Type. Sometimes URLScan does not have a MIME Type defined - these will always be included. Consider excluding sources if this matters to you.. - Add argument
-mtto specify a list of MIME Types to match. This will be used instead of the default filtering usingFILTER_MIMElist inconfig.yml, or filtering using-ft. NOTE: This will NOT be applied to Alien Vault OTX and Virus Total because they don't have the ability to filter on MIME Type. Sometimes URLScan does not have a MIME Type defined - these will always be included. Consider excluding sources if this matters to you.. - Add argument
--providersin the same way asgau. A comma separated list of source providers that you want to get URLs from. The values can bewayback,commoncrawl,otx,urlscanandvirustotal. Passing this will override any exclude arguments (e.g.-xwm,-xcc, etc.) passed to exclude sources, and reset those based on what was passed with this argument.
- Add argument
-
Changed
- When argument
--verbosehas been used and the options are shown, show the name of providers that will be searched instead of the exclude arguments, e.g.-xwm,-xcc, etc. - Change
HTTP_ADAPTER_CCused for Common Crawl requests to useretries+3instead ofreties+20. This was originally suggested by Common Crawl, but there are so many issues it can just take forever to get anything from their API, and often fail anyway. - Change the default of
-lccto 1 instead of 3 because of so many problems with Common Crawl. - BUG FIX: If a connection error occurs when getting the Common Crawl index file, then error
ERROR getCommonCrawlUrls 1: object of type 'NoneType' has no len()is displayed. This will now be suppressed. - BUG FIX: If arg
-mcwas not passed and-ftwas, when options were shown to the user (inshowOptionsfunction), the value of-mcwas shown for-ft. - BUG FIX: When a MIME type is used in a filter for Wayback Machine that has a
+in it (e.g.image/svg+xml), then the+was replaced because that'#s the only way Wayback recognises it. However, it was being escaped first and was being converted toimage/svg\.xmlinstead ofimage/svg.xmlso was not recognised in the filter.
- When argument
-
-
v4.5
-
Change
- BUG FIX: When
-f/--filter-responses-onlyis used, and retrieving Wayback Archive links, the links were still being filtered for URL exclusions, e.g. the extensions. This has been fixed and should return more links in that situation. - BUG FIX: If there is an invalid response from Alien Vault, then the error
ERROR: getAlienVaultUrls 1: Expecting value: line 1 column 1 (char 0)is raised. This will be handled properly. - BUG FIX: If there is an invalid response from URLScan, then the error
ERROR getURLScanUrls 1: local variable 'jsonResp' referenced before assignmentis raised. This will be handled properly. - BUG FIX: If there is an invalid response from Virus Total, then the error
ERROR getVirusTotalUrls 1: Expecting value: line 1 column 1 (char 0)is raised. This will be handled properly. - BUG FIX: When retrieving links from the Wayback Archive, and the user presses Ctrl-C to cancel the program, the error
[ ERR ] Error getting response for page - local variable 'resp' referenced before assignmentwas displayed. This will no longer be shown.
- BUG FIX: When
-
-
v4.4
-
New
- When using
-mode R, if input was used that does find results, but then those reults don't match the input given, then display a message. For example, if input iswww.hackerone.com/xnlthen wayback machine returns links forhttp://hackerone.com/xnl(without thewww.). These don't match so aren't returned, but a message will give the user and clue as to what to change the input to if they did want those.
- When using
-
Changed
- BUG FIX:Rewrite the logic in
linksFoundAddand correct a typo that always made a runtime error occur and always add a link, without doing the check to see if the domain matches what was searched for (it's rare other URLs are included anyway). Also use newlinksFoundResponseAddwith similar logic, but remove the prefixed timestamp which occurs with response links. - BUG FIX: If a URL is passed (instead of just a domain) as input for
-mode Rto download archived responses, it would not download anything because it would check the result contains the input, but the default port number is included in wayback results, but not included in the input. This has been corrected. - Remove
argparsefromsetup.pyandrequirements.txtbecause it is a standard Python module.
- BUG FIX:Rewrite the logic in
-
-
v4.3
-
Changed
- Wayback Machine seemed to have made some changes to their CDX API without any notice or documentation. This caused problems getting URLs for
-mode Ubecause the API pagination no longer worked. If a number of pages cannot be returned, then all links will be retrieved in one request. However, if they "fix" the problem and pagination starts working again, it will revert to previous code that will get results a page at a time. - Although the bug fix for Github Issue #45 appeared to be working fine since the last version, the "changes" made by Wayback machine seemed to have broken that too. The code had to be refactored to work (i.e. don't include the
collapseparameter at all ifnone), but also no longer works with multiple fields. - When
-cois used, there is no way to tell how long the results will take from Wayback machine now because all the data is retrieved in one request. While pagination is broken, this will just returnUnknownbut will revert back to previous functionality if pagination is fixed.
- Wayback Machine seemed to have made some changes to their CDX API without any notice or documentation. This caused problems getting URLs for
-
-
v4.2
-
Changed
- BUG FIX: Github Issue #45 - When getting archived responses from wayback machine, by default it is supposed to get one capture per day per URL (this interval can be changed with
-ci). But, it was only getting one response per day, not for all the different URLs per day. Thanks to @zakaria_ounissi for raising this. - BUG FIX: Github Issue #46 - The config
FILTER_URLlist was being applied to links found from all sources, except wayback machine. So if the MIME type wasn't correct, it was possible that links that matchedFILTER_URLwere still included in the output. Thanks to @brutexploiter for raising this.
- BUG FIX: Github Issue #45 - When getting archived responses from wayback machine, by default it is supposed to get one capture per day per URL (this interval can be changed with
-
-
v4.1
-
Changed
- Removed line
from tqdm import tqdmas it is not needed and will cause errors if not installed.
- Removed line
-
-
v4.0
-
New
- Add argument
-oijs/--output-inline-js. If passed, and archived responses are requested, all unique scripts from the responses (excluding.js,.csv,.xls,.xslx,.doc,.docx,.pdf,.msi,.zip,.gzip,.gz,.tar,.rar,.json) will be extracted and written to filescombinedInline{}.js(in the same response directory) where{}will be the number of the file for every 1000 unique scripts. There will also be a filecombinedInlineSrc.txtwritten that will contain thesrcvalue for all inline external scripts. - Exclude SOME downloaded custom 404 responses for
-mode Rif 404 status is to be excluded. The custom 404 pages will be identified by the regex<title>[^\<]*(404|not found)[^\<]*</title>. - Add
long_description_content_typetosetup.pyto upload to PyPi - Add
waymoretoPyPiso can be installed withpip install waymore
- Add argument
-
Changed
- When getting the
DEFAULT_OUTPUT_DIR, use theos.path.expanduserto ensure that the full path is used.
- When getting the
-
-
v3.7
-
Changed
- Fix a big that can occur in some situations where error
ERROR processResponses 1: [Errno 2] No such file or directory: 'testing/responses.tmp'shown. The required directories weren't being created correctly. - Remove a debug print line I left in!
- Remove this script from downloaded responses that's now being included by archive.org:
<script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> - Remove the comment
<!-- End Wayback Rewrite JS Include -->from the downloaded responses. - Clarify that
-nlfargument is only relevant tomode U.
- Fix a big that can occur in some situations where error
-
-
v3.6
-
Changed
- Added
-koto the suggestions displayed for Responses when the-co/--check-onlyoption is used, and there a huge amount of requests to be made. - Remove
-kofrom the suggestion displayed for Urls when the-co/--check-onlyoption is used, because this doesn't affect this. The-kois applied after the links are retrieved. - Add a statement to
setup.pyto show whereconfig.ymlis created if it doesn't already exist. This is to help in figuring out Issue #41.
- Added
-
-
v3.5
-
Changed
- Change
READMEdescriptions of-oUand-oRto reference recentDEFAULT_OUTPUT_DIR. - Change description of
-raarg in code and onREADMEto say all sources. - Other small improvements to
README.
- Change
-
-
v3.4
-
New
- Add
DEFAULT_OUTPUT_DIRto theconfig.ymlfile. This will be used to specify the default directory where output will be written if the-oUand-oRoptions aren't used. If blank, this defaults to the directory whereconfig.ymlis stored (typically~/.config/waymore/).
- Add
-
-
v3.3
-
New
- Add
WEBHOOK_DISCORDtoconfig.ymlto provide a webhook to be notified whenwaymorehas finished, because in some cases it can take a looooooong time! - Add arg
-nd/--notify-discordto send a notification to the specified Discord webhook inconfig.ymlwhenwaymorecompletes. This is useful when becausewaymorecan take a looooong time to complete for some targets.
- Add
-
-
v3.2
-
New
- When getting the Common Crawl index file, if the response is 503, then let the user know it's unavailable. If anything other than 429 or 403, then print an error.
-
Changed
- Don't show the coffee link if the output is piped out to something else.
- Remove the
mimetypeslibrary as it turned out to be quite inaccurate compared to just getting the path extension and using content type of response. Also improve the extension logic. - If the input has a path, then make sure it is treated as if no subdomains are wanted, i.e. don't prefix with
*.. This stopped links coming back from archive.org - Change the messaging to make more sense when multiple sources are used, showing
Links found...for the first, butExtra links found...for the rest.
-
-
v3.1
-
Changed
- Make the identification of extension type better when creating the archived hash files. First try the
mimetypeslibrary that guesses the extension based on the mimetype. If that doesn't work, try to get the extension from the path. If the extension cannot be retrieved from the path, it will be derived from thecontent-typeheader. If a generic type still can't be obtained, it will be set to the 2nd part of thecontent-typeafter the/. If still unknown, it will be set to.unknown. There will be no more.xnlextensions by default. - Updated
READMEand images to reflect the most recent version.
- Make the identification of extension type better when creating the archived hash files. First try the
-
-
v3.0
-
New
- Allow
waymoreto be installed usingpiporpipxso it can be run from any directory. - Show the current version of the tool in the banner, and whether it is the latest, or outdated.
- When installing
waymore, if theconfig.ymlalready exists then it will keep that one and createconfig.yml.NEWin case you need to replace the old config. - Add reference to VirusTotal v2 API in
README.md. - Fix a big where the
results/targetfolder was being created every time, even if the-oUand-oRarguments were passed. - Include "Buy Me a Coffee" link at the end of output.
- Allow
-
Changed
- Change installation instructions in
README.md. - If
--check-onlywas passed and it looks like it will take a long time. include the-koargument in the message description of arguments to consider.
- Change installation instructions in
-
-
v2.6
-
New
- Use
tldextractlibrary to determine whether the input is a subdomain, or just a domain. - Include
tldextractinsetup.py
- Use
-
Changed
- Fix a bug that causes Alien Vault to not return any links if a subdomain is passed as input. This happens because the api is called with
/indicators/domain/. If a URL is passed, it will use/indicators/hostname/instead and return links successfully. - Fix a bug that causes URLScan to fail with error
[ 400 ] Unable to get links from urlscan.io. This happens when a URL is sent as input because URLScan.io can only retrieve information for hosts. Also, if a host is sent with a trailing/then it will be stripped for URLScan.io so it doesn't think there is a path. - Fix a bug that causes Alien Vault to fail with runtime error
ERROR getAlienVaultUrls 1: 'full_size'. This happens when a URL is sent as input. This will now successfully return links for passed URLs.
- Fix a bug that causes Alien Vault to not return any links if a subdomain is passed as input. This happens because the api is called with
-
-
v2.5
-
New
- Show a warning if the user may be passing a sub domain. The chances are that they want all subs if a domain, so should just call for the domain only.
-
-
v2.4
-
New
- Add lots of extra search terms to the
DEFAULT_FILTER_KEYWORDSandFILTER_KEYWORDSinconfig.yml
- Add lots of extra search terms to the
-
Changed
- The Common Crawl HTTPAdaptor for retry strategy will just be applied for code 503. There was an issue with 504 errors happening, and then waymore effectively freezes because of the retry strategy. The Common Crawl documentation (https://commoncrawl.org/blog/oct-nov-2023-performance-issues) just says to retry on 503.
-
-
v2.3
-
New
- Add
jiraas a search term to theDEFAULT_FILTER_KEYWORDSandFILTER_KEYWORDSinconfig.yml
- Add
-
-
v2.2
-
New
- Add
-lcyargument. This lets you limit the number of Common Crawl index collections searched by the year of the index data. The earliest index has data from 2008. Setting to 0 (default) will search collections or any year (but in conjuction with-lcc). For example, if you are only interested in data from 2015 and after, pass-lcy 2015. This will override the value of-lccif passed.
- Add
-
-
v2.1
-
New
- When the responses are downloaded from archive.org they include some archive.orf code such as scripts and stylesheets. This is usually removed but they may have changed this so was being included again. This change will ensure the new code is removed so the response doesn't include the archive.org code.
-
-
v2.0
-
New
- Add VirusTotal as a source for URLs. We will get URLs from the v2 API domain report. This can include sub domains, detected URLs, and undetected URLs in the response. It does not give you the status code or MIME type of the links, so we will just check against extension.
- Show a specific message for Wayback Machine if there is a Connection Refused error. This happens when they have blocked the users IP.
- Add some pointless celebration messages to the banner for a few different dates!
-
-
v1.37
-
New
- Add argument
-co/--check-only. If passed, then it will just get the count of requests that need to be made to get URLs from the sources, and how many archived responses will be downloaded. It will try to give an idea of the time the tool could take with the settings given.
- Add argument
-
-
v1.36
-
New
- Add argument
-wrlr/--wayback-rate-limit-retrywhich is the number of minutes the user wants to wait for a rate limit pause on Wayback Machine (archive.org) instead of stopping with a429error. This defaults to 3 minutes which is a time that seems to work for a while after. - Add some additional User-Agents to use when making requests to the API providers.
- Add new MIME exclusions
video/x-ms-wmv,image/x-png,video/quicktime,image/x-ms-bmp,font/opentype,application/x-font-opentype,application/x-woffandaudio/aiff.
- Add argument
-
Changed
- Change the default
-p/--processesto 1 instead of 3. This is to help with the rate limiting now put in place by web.archive.org. If set to 1 we can also ensure that the pages are processed in order and save where we stopped. - Change the
backoff_factoronHTTP_ADAPTERfrom 1 to 1.1 to help with the rate limiting now put in place by web.archive.org. - Change the
pagesset to a list to ensure pages are processed in order (only does if--processesis 1).
- Change the default
-
-
v1.35
-
New
- I had a specific problem with my ISP blocking archive.org for adult content (!) which resulted in a large and confusing error message. This has been replaced by a more useful message if this happens for anyone else.
-
-
v1.34
-
Changed
- Any scheme, port number, query string, or URL fragment will be removed from the input values.
- Only show the warning
No value for "URLSCAN_API_KEY" in config.yml - consider adding (you can get a FREE api key at urlscan.io)if the-xusargument wasn't passed. - If the input has a domain AND path, then it will still be searched for links, and the mode will not be forced to R.
- When input value is validated and
<stdin>is used, just assume one line is a domain/url, and multiple lines are treated as a file (so the correct description is shown).
-
-
v1.33
-
Changed
- A bug existed that would cause any site that had only had one page of links to not be completely retrieved. Change the processing for Wayback Machine that gets the number of pages. If the total number of pages is 1, then don't pass page number at all.
- In the
getSPACERfunction, add 5 to the length instead of taking 1 away, to text artifacts aren't left.
-
-
v1.32
-
Changed
- Changes to prevent
SyntaxWarning: invalid escape sequenceerrors when Python 3.12 is used.
- Changes to prevent
-
-
v1.31
-
New
- Add new argument
-urlr/--urlscan-rate-limit-retryto pass the number of minutes that you want to wait between each rate-limit pause from URLScan. - Add new MIME exclusions
application/x-msdownloadandapplication/x-ms-application.
- Add new argument
-
Changed
- When getting URLs from the results of URLScsn, also get the
[task][url]values. Thanks to @Ali45598547 for highlighting this! - When the URLScan rate limits, it says how many seconds you need to wait until you can try again. If less than 1 minute, the program will wait automatically to get more results. If more than 1 minute, then the code will wait for the length of time specified by the
-urlr/--urlscan-rate-limit-retryargument, if passed. - For CommonCrawl, do at least 20 retires. This helps reduce the problem of `503`` errors and doing many retries was suggested by CommonCrawl them selves to deal with the problem.
- When getting URLs from the results of URLScsn, also get the
-
-
v1.30
-
Changed
- If there any
+in the MIME types, e.g.image/svg+xml, then replace the+with a.otherwise the wayback API does not recognise it. - Add
application/font-otfto theFILTER_MIMEvalue inconfig.yml.
- If there any
-
-
v1.29
-
New
- Check for specific text in response code of 503 (which usually means the site is down for maintenance or not available) and return a specific message instead of the full response.
-
-
v1.28
-
New
- Added
application/font-otftoDEFAULT_FILTER_MIME
- Added
-
Changed
- Fix a bug that overwrites the output URLs file if the input is a file that contains different hosts.
-
-
v1.27
-
Changed
- Set the default for
-lccto 3 instead of 0 to only search the 3 latest indexes for Common Crawl instead of all of them.
- Set the default for
-
-
v1.26
-
Changed
- Allow an input value of just a TLD, e.g.
.mil. If a TLD is passed then resources for all domains with that TLD will be retrieved. NOTE: If a TLD is passed then the Alien Vault OTX source is excluded because it needs a full domain.
- Allow an input value of just a TLD, e.g.
-
-
v1.25
-
Changed
- Fix a bug that always strips the port number from URLs found. It should only remove the port if it is :80 or :443
-
-
v1.24
-
Changed
- Handle errors with the config file better. Display specific message to say if the file isn't found or if there is a formatting error. If there is any other kind of error, the error message will be displayed. THe default values will be used in the case of any of these errors.
-
-
v1.23
-
Changed
- The
-ko/--keywords-onlyargument can now be passed without a value, which will use theFILTER_KEYWORDSinconfig.ymlas before, or passed with a Regex value that will be used instead. For example,-ko "admin"to only get links containing the wordadmin, or-ko "\.js(\?\|$)"to only get JS files. The Regex check is NOT case sensitive.
- The
-
-
v1.22
-
Changed
- Fix issue #23. If a file is passed as input, an error would occur if any of the domains in the file contained a capital letter or ended with a full stop. The regex in
validateArgInputhas been amended to fix this, adn any.on the end of a domain is stripped and domain converted to lowercase before processing.
- Fix issue #23. If a file is passed as input, an error would occur if any of the domains in the file contained a capital letter or ended with a full stop. The regex in
-
-
v1.21
-
Changed
- Fix issue #24. If the
FILTER_CODEinconfig.ymlis set to one status code then it is needs to be explicitly set to a string ingetConfig()
- Fix issue #24. If the
-
-
v1.20
-
New
- Add argument
-fcfor filtering HTTP status codes. Using this will override theFILTER_CODEvalue fromconfig.yml. This is for specifying HTTP status codes you want to exclude from the results, and are provided in a comma separated list. - Add argument
-mcfor matching HTTP status codes. Using this will override theFILTER_CODEvalue fromconfig.ymlAND the-fcargument. This is for specifying HTTP status codes you want to match from the results, and are provided in a comma separated list.
- Add argument
-
Changed
- Changed how filters are specified in the request to the Common Crawl API. Removes the regex negative lookahead which is not needed if you use
filter=!
- Changed how filters are specified in the request to the Common Crawl API. Removes the regex negative lookahead which is not needed if you use
-
-
v1.19
-
Changed
- Bug fix - ignore any blank lines in the input file when validating if input is in the correct format
-
-
v1.18
-
Changed
- Cache the Common Crawl
collinfo.jsonfile locally. The file is only updated a few times per year so there is no point in requesting it every time waymore is run. Common Crawl can struggle with volume against it's API which can cause timeouts, and currently, about 10% of all requests they get are for thecollinfo.json! - Add a HTTPAdapter specifically for Common Crawl to have
retriesandbackoff_factorincreased which seems to reduce the errors and maximize the results found.
- Cache the Common Crawl
-
-
v1.17
- Changed
- If an input file has a sub domain starting with _ or - then an error was raised, but these are valid. This bug has been fixed.
- In addition to the fix above, the error message will show what line was flagged in error so the user can raise an issue on Github about it if they believe it is an error.
- Changed
-
v1.16
- Changed
- Fix a bug that raises
ERROR processURLOutput 6: [Errno 2] No such file or directory: ''if the value passed to-oUhas no directory specified as part of the file name.
- Fix a bug that raises
- Changed
-
v1.15
- Changed
- Fix bug that shows an error when
-vis passed and-oUdoes not specify a directory, just a filename
- Fix bug that shows an error when
- Changed
-
v1.14
- Changed
- Fix a bug with the
-c/--configoption
- Fix a bug with the
- Changed
-
v1.13
-
New
- Added argument
-oU/--output-urlsto allow the user to specify a filename (including path) for the URL links file when-mode U(orBoth) is used. If not passed, then the filewaymore.txtwill be created in theresults/{target.domain}directory as normal. If a path is passed with the file, then any directories will be created. For example:-oU ~/Recon/Redbull/waymoreUrls.txt - Added argument
-oR/--output-responsesto allow the user to specify a directory (or path) where the archived responses andindex.txtfile is written when-mode R(orBoth) is used. If any directories in the path do not exist they will be created. For example:-oR ~/Recon/Redbull/waymoreResponses
- Added argument
-
Changed
- When removing all web archive references in the downloaded archived response, there were a few occasions this wasn't working so the regex has been changed to be more specific to ensure this works.
-
-
v1.12
- New
- Added argument
-c/--configto specify the full path of a YML config file. If not passed, it looks for fileconfig.ymlin the same directory as runtime filewaymore.py
- Added argument
- New
-
v1.11
- New
- Added argument
-nlf/--new-links-file. If passed, and you run-mode Uor-mode Bto get URLs more than once for the same target, thewaymore.txtwill still be appended with new links (unless-owis passed), but a new output file calledwaymore.newwill also be written. If there are no new links, the empty file will still be created. This can be used for continuous monitoring of a target. - Added a
waymorefolder containing a new__init__.pyfile that contains the__version__value. - Added argument
--verisonto display the current version. - Show better error messages if the archive.org site returns a
Blocked Site Error.
- Added argument
- Changed
- If a file of domains is passed as input, make sure spaces are stripped from the lines.
- Change
.gitignoreto include__pycache__. - Move images to
waymore/imagesfolder.
- New
-
v1.10
- New
- If
-mode Uis run for the same target again, by default new links found will be added to thewaymore.txtfile and duplicates removed. - Added argument
-ow/--output-overwritethat can be passed to force thewaymore.txtfile to be overwritten with newly found links instead of being appended.
- If
- Changed
- Change the README.md to reflect new changes
- New
-
v1.9
- New
- Add functionality to continue downloading archived responses if it does not complete for any reason. When downloading archived responses, a file called
responses.tmpwill be created with the links of all responses that will be downloaded. There will also be acontinueresp.tmpthat will store the index of the current response being saved. If these files exist when run again, the user will be prompted whether to continue a previous run (so new filters will be ignored) or start a new one. - Add
CONTINUE_RESPONSES_IF_PIPEDtoconfig.yml. Ifstdinorstdoutis piped from another process, the user is not prompted whether they want a previous run of downloading responses. This value will determine whether to continue a previous run, or start a new one, in that situation.
- Add functionality to continue downloading archived responses if it does not complete for any reason. When downloading archived responses, a file called
- Changed
- Corrected the total pages shown when getting wayback URLs
- Included missing packages in the
requirements.txtdocument. - Fix Issue #16 (#16)
- New
-
v1.8
- Changed
- When archived responses are saved as files, the extension
.xnlwill no longer be used if-url-filenameis passed. If-url-filenameis not passed then the filename is represented by a hash value. The extension of these files will be set to.xnlonly of the original file type cannot be derived from the original URL.
- When archived responses are saved as files, the extension
- Changed
-
v1.7
- New
- Added
-xwmparameter to exclude getting URL's from Wayback Machine (archive.org) - Added
-lr/--limit-requeststhat can be used to limit the number of requests made per source (excluding Common Crawl) when getting URL's. For example, if you run waymore for-i twitter.comit says there are 28,903,799 requests to archive.org that need to be made (that could take almost 1000 days for some people!!!). The default value for the argument is 0 (Zero) which will apply no limit as before. There is also an problem with the Wayback Machine CDX API where the number of pages returned is not correct when filters are applied and can cause issues. Setting this parameter to a sensible value can relieve that issue (it may take a while for archive.org to address the problem).
- Added
- Changed
- Make sure that filters in API URL's are escaped correctly
- Add error handling to
getMemory()to avoid any errors ifpsutilis not installed
- New
-
v1.6
- New
- Add a docker option to run
waymore. Include instructions inREADME.mdand a newDockerFile
- Add a docker option to run
- Changed
- If multiple domain/URLs are passed by file or STDIN, remove
*.from the start of any input values. - Change the default
FILTER_KEYWORDSto include more useful words. - If a link found from an API has port 80 or 443 specified, e.g.
https://exmaple.com:80/examplethen remove the:80. Many links have this in archive.org so this could reduce the number of similar links reported. - Amend
setup.pyto includeurlparse3that is now used to get the domain and port of links found
- If multiple domain/URLs are passed by file or STDIN, remove
- New
-
v1.5
- New
- Add argument
-ko/--keywords-onlywhich if passed, will only get Links (unless-fis passed) that have a specified keyword in the URL, and will only download responses (regardless of-f) where the keyword is in the URL. These multiple keywords can be specified inconfig.ymlin a comma separated list. - Add a
FILTER_KEYWORDSkey/pair toconfig.yml(and default value in code) initially set toadmin,login,logon,signin,register,dashboard,portal,ftp,cpanel
- Add argument
- Changed
- Only add to the MIME type list if the
-voption is used because they are not displayed otherwise. - Warn the user if there is a value missing from the config.yml file
- Fixed small bug in
getURLScanUrlsthat raised an error forgetSPACER
- Only add to the MIME type list if the
- New
-
v1.4
- New
- Added
-m /--memory-thresholdargument to set memory threshold percentage. If the machines memory goes above the threshold, the program will be stopped and ended gracefully before running out of memory (default: 95) - If
-vverbose output was used, memory stats will be output at the end, and also shown on teh progress bar downloading responses. - Included
psutilinsetup.py
- Added
- Changed
- Fix some display issues not completely done in v1.3, regarding trailing spaces when errors are displayed.
- Remove line
os.kill(os.getpid(),SIGINT)fromprocessArchiveUrlwhich isn't needed and just causes more error if a user does press Ctrl-C.
- New
-
v1.3
- New
- Added functionality to allow output Links output to be piped to another program (the output file will still be written). Errors and progress bar are written to STDERR. No information about archived responses will be piped.
- Added functionality to allow input to be piped to waymore. This will be the same as passing to
-iargument.
- Changed
- Use a better way to add trailing spaces to strings to cover up other strings (like progress bar), regardless of terminal width.
- Change the README to mention
-xusargument and how to get a URLScan API key to add to the config file.
- New
-
v1.2
- Changed
- Removed User-Agent
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0.1because it caused problems on some domains inxnLinkFindertool, so removing from here too. - Base the length of the progress bar (show when downloading archived responses) on the width of the terminal so it displays better and you don't get multiple lines on smaller windows.
- Amend
.gitignoreto include other unwanted files
- Removed User-Agent
- Changed
-
v1.1
- New
- Allow a file of domains/URL's to be passed as input with
-iinstead of just one.
- Allow a file of domains/URL's to be passed as input with
- Changed
- Remove version numbers from
requirements.txtas these aren't really needed and may cause some issues.
- Remove version numbers from
- New
-
v1.0
- New
- Added URLScan as a source of URL's. Waymore now has all the same sources for URLs as gau
- Added
-xusparameter to exclude URLScan when getting URL's. - Added
-rparameter to specify the number of times requests are retried if they return 429, 500, 502, 503 or 504 (default: 1). - Made requests use a retry strategy using
-rvalue, and also abackoff_factorof 1 for Too Many Redirect (429) responses. - General bug fixes.
- Changed
- Fixed a bug with was preventing HTTP Status Code filtering from working on Alien Vaults requests.
- Fixed a bug that was preventing MIME type filtering from working on Common Crawl requests.
- Correctly escape all characters is strings compared in regex with re.escape instead of just changing
.to\. - Changed default MIME type filter to include: video/webm,video/3gpp,application/font-ttf,audio/mp3,audio/x-wav,image/pjpeg,audio/basic
- Changed default URL filter to include:/jquery,/bootstrap
- If Ctrl-C is used to end the program, try to ensure that results at that point are still saved before ending.
- New
-
v0.3
- New
- Added Alien Vault OTX as a source of URL's. Results cannot be checked against MIME filters though because that info is not available in the API response.
- Added
-xavparameter to exclude Alien Vault when getting URL's.
- Changed
- Improved regex for the
-iinput value to ensure it's a valid domain, with or without sub domains and path, but no query string or fragments. - General tidying up and improvements
- Improved regex for the
- New
-
v0.2
- New
- Added to the TODO list on README.md of changes coming soon
- Changed
- When getting URl's from archive.org it now uses pagination. Instead of one API call (how waybackurls does it), it makes one call per page of URL's (how gau does it). This actually results in a lot more URL's being returned even though the archive.org API docs seem to imply it should be the same. So in comparison to gau it now returns the same number of URL's from archive.org
- Ensure input domain/path is URL encoded when added to the API call URL's
- New
-
v0.1 - Initial release