waymore 7.0__py3-none-any.whl → 7.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
waymore/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "7.0"
1
+ __version__ = "7.2"
waymore/waymore.py CHANGED
@@ -158,7 +158,7 @@ DEFAULT_LIMIT = 5000
158
158
  DEFAULT_TIMEOUT = 30
159
159
 
160
160
  # Exclusions used to exclude responses we will try to get from web.archive.org
161
- DEFAULT_FILTER_URL = ".css,.jpg,.jpeg,.png,.svg,.img,.gif,.mp4,.flv,.ogv,.webm,.webp,.mov,.mp3,.m4a,.m4p,.scss,.tif,.tiff,.ttf,.otf,.woff,.woff2,.bmp,.ico,.eot,.htc,.rtf,.swf,.image,/image,/img,/css,/wp-json,/wp-content,/wp-includes,/theme,/audio,/captcha,/font,node_modules,/jquery,/bootstrap"
161
+ DEFAULT_FILTER_URL = ".css,.jpg,.jpeg,.png,.svg,.img,.gif,.mp4,.flv,.ogv,.webm,.webp,.mov,.mp3,.m4a,.m4p,.scss,.tif,.tiff,.ttf,.otf,.woff,.woff2,.bmp,.ico,.eot,.htc,.rtf,.swf,.image,/image,/img,/css,/wp-json,/wp-content,/wp-includes,/theme,/audio,/captcha,/font,node_modules,/jquery,/bootstrap,/_incapsula_resource"
162
162
 
163
163
  # MIME Content-Type exclusions used to filter links and responses from web.archive.org through their API
164
164
  DEFAULT_FILTER_MIME = "text/css,image/jpeg,image/jpg,image/png,image/svg+xml,image/gif,image/tiff,image/webp,image/bmp,image/vnd,image/x-icon,image/vnd.microsoft.icon,font/ttf,font/woff,font/woff2,font/x-woff2,font/x-woff,font/otf,audio/mpeg,audio/wav,audio/webm,audio/aac,audio/ogg,audio/wav,audio/webm,video/mp4,video/mpeg,video/webm,video/ogg,video/mp2t,video/webm,video/x-msvideo,video/x-flv,application/font-woff,application/font-woff2,application/x-font-woff,application/x-font-woff2,application/vnd.ms-fontobject,application/font-sfnt,application/vnd.android.package-archive,binary/octet-stream,application/octet-stream,application/pdf,application/x-font-ttf,application/x-font-otf,video/webm,video/3gpp,application/font-ttf,audio/mp3,audio/x-wav,image/pjpeg,audio/basic,application/font-otf,application/x-ms-application,application/x-msdownload,video/x-ms-wmv,image/x-png,video/quicktime,image/x-ms-bmp,font/opentype,application/x-font-opentype,application/x-woff,audio/aiff"
@@ -182,6 +182,7 @@ FILTER_KEYWORDS = ""
182
182
  URLSCAN_API_KEY = ""
183
183
  CONTINUE_RESPONSES_IF_PIPED = True
184
184
  WEBHOOK_DISCORD = ""
185
+ WEBHOOK_TELEGRAM = ""
185
186
  DEFAULT_OUTPUT_DIR = ""
186
187
  INTELX_API_KEY = ""
187
188
 
@@ -792,6 +793,18 @@ def showOptions():
792
793
  else:
793
794
  write(colored("Discord Webhook: ", "magenta") + colored(WEBHOOK_DISCORD))
794
795
 
796
+ if args.notify_telegram:
797
+ if WEBHOOK_TELEGRAM == "" or WEBHOOK_TELEGRAM == "YOUR_WEBHOOK":
798
+ write(
799
+ colored("Telegram Webhook: ", "magenta")
800
+ + colored(
801
+ "It looks like no Telegram webhook has been set in config.yml file.",
802
+ "red",
803
+ )
804
+ )
805
+ else:
806
+ write(colored("Telegram Webhook: ", "magenta") + colored(WEBHOOK_TELEGRAM))
807
+
795
808
  write(colored("Default Output Directory: ", "magenta") + colored(str(DEFAULT_OUTPUT_DIR)))
796
809
 
797
810
  if args.regex_after is not None:
@@ -850,7 +863,7 @@ def getConfig():
850
863
  """
851
864
  Try to get the values from the config file, otherwise use the defaults
852
865
  """
853
- global FILTER_CODE, FILTER_MIME, FILTER_URL, FILTER_KEYWORDS, URLSCAN_API_KEY, VIRUSTOTAL_API_KEY, CONTINUE_RESPONSES_IF_PIPED, subs, path, waymorePath, inputIsDomainANDPath, HTTP_ADAPTER, HTTP_ADAPTER_CC, argsInput, terminalWidth, MATCH_CODE, WEBHOOK_DISCORD, DEFAULT_OUTPUT_DIR, MATCH_MIME, INTELX_API_KEY
866
+ global FILTER_CODE, FILTER_MIME, FILTER_URL, FILTER_KEYWORDS, URLSCAN_API_KEY, VIRUSTOTAL_API_KEY, CONTINUE_RESPONSES_IF_PIPED, subs, path, waymorePath, inputIsDomainANDPath, HTTP_ADAPTER, HTTP_ADAPTER_CC, argsInput, terminalWidth, MATCH_CODE, WEBHOOK_DISCORD, DEFAULT_OUTPUT_DIR, MATCH_MIME, INTELX_API_KEY, WEBHOOK_TELEGRAM
854
867
  try:
855
868
 
856
869
  # Set terminal width
@@ -1115,6 +1128,26 @@ def getConfig():
1115
1128
  )
1116
1129
  WEBHOOK_DISCORD = ""
1117
1130
 
1131
+ if args.notify_telegram:
1132
+ try:
1133
+ WEBHOOK_TELEGRAM = config.get("WEBHOOK_TELEGRAM")
1134
+ if str(WEBHOOK_TELEGRAM) == "None" or str(WEBHOOK_TELEGRAM) == "YOUR_WEBHOOK":
1135
+ writerr(
1136
+ colored(
1137
+ 'No value for "WEBHOOK_TELEGRAM" in config.yml - default set',
1138
+ "yellow",
1139
+ )
1140
+ )
1141
+ WEBHOOK_TELEGRAM = ""
1142
+ except Exception:
1143
+ writerr(
1144
+ colored(
1145
+ 'Unable to read "WEBHOOK_TELEGRAM" from config.yml - default set',
1146
+ "red",
1147
+ )
1148
+ )
1149
+ WEBHOOK_TELEGRAM = ""
1150
+
1118
1151
  try:
1119
1152
  DEFAULT_OUTPUT_DIR = config.get("DEFAULT_OUTPUT_DIR")
1120
1153
  if str(DEFAULT_OUTPUT_DIR) == "None" or str(DEFAULT_OUTPUT_DIR) == "":
@@ -1214,6 +1247,7 @@ def getConfig():
1214
1247
  FILTER_KEYWORDS = ""
1215
1248
  CONTINUE_RESPONSES_IF_PIPED = True
1216
1249
  WEBHOOK_DISCORD = ""
1250
+ WEBHOOK_TELEGRAM = ""
1217
1251
  DEFAULT_OUTPUT_DIR = os.path.expanduser("~/.config/waymore")
1218
1252
 
1219
1253
  except Exception as e:
@@ -5763,6 +5797,34 @@ def notifyDiscord():
5763
5797
  writerr(colored("ERROR notifyDiscord 1: " + str(e), "red"))
5764
5798
 
5765
5799
 
5800
+ def notifyTelegram():
5801
+ global WEBHOOK_TELEGRAM, args
5802
+ try:
5803
+ data = {
5804
+ "text": "waymore has finished for `-i " + args.input + " -mode " + args.mode + "` ! 🤘",
5805
+ }
5806
+ try:
5807
+ result = requests.post(WEBHOOK_TELEGRAM, json=data)
5808
+ if 300 <= result.status_code < 200:
5809
+ writerr(
5810
+ colored(
5811
+ getSPACER(
5812
+ "WARNING: Failed to send notification to Telegram - " + result.json()
5813
+ ),
5814
+ "yellow",
5815
+ )
5816
+ )
5817
+ except Exception as e:
5818
+ writerr(
5819
+ colored(
5820
+ getSPACER("WARNING: Failed to send notification to Telegram - " + str(e)),
5821
+ "yellow",
5822
+ )
5823
+ )
5824
+ except Exception as e:
5825
+ writerr(colored("ERROR notifyTelegram 1: " + str(e), "red"))
5826
+
5827
+
5766
5828
  def checkScript(script):
5767
5829
  try:
5768
5830
  if script.replace("\n", "").strip() != "":
@@ -6307,6 +6369,12 @@ def main():
6307
6369
  action="store_true",
6308
6370
  help="Whether to send a notification to Discord when waymore completes. It requires WEBHOOK_DISCORD to be provided in the config.yml file.",
6309
6371
  )
6372
+ parser.add_argument(
6373
+ "-nt",
6374
+ "--notify-telegram",
6375
+ action="store_true",
6376
+ help="Whether to send a notification to Telegram when waymore completes. It requires WEBHOOK_TELEGRAM to be provided in the config.yml file.",
6377
+ )
6310
6378
  parser.add_argument(
6311
6379
  "-oijs",
6312
6380
  "--output-inline-js",
@@ -6526,12 +6594,17 @@ def main():
6526
6594
  writerr(colored("ERROR main 1: " + str(e), "red"))
6527
6595
 
6528
6596
  finally:
6529
- # Send a notification to discord if requested
6597
+ # Send a notification to discord or telegram if requested
6530
6598
  try:
6531
6599
  if args.notify_discord and WEBHOOK_DISCORD != "":
6532
6600
  notifyDiscord()
6533
6601
  except Exception:
6534
6602
  pass
6603
+ try:
6604
+ if args.notify_telegram and WEBHOOK_TELEGRAM != "":
6605
+ notifyTelegram()
6606
+ except Exception:
6607
+ pass
6535
6608
  try:
6536
6609
  if sys.stdout.isatty():
6537
6610
  writerr(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: waymore
3
- Version: 7.0
3
+ Version: 7.2
4
4
  Summary: Find way more from the Wayback Machine, Common Crawl, Alien Vault OTX, URLScan, VirusTotal & Intelligence X!
5
5
  Home-page: https://github.com/xnl-h4ck3r/waymore
6
6
  Author: xnl-h4ck3r
@@ -21,7 +21,7 @@ Dynamic: license-file
21
21
 
22
22
  <center><img src="https://github.com/xnl-h4ck3r/waymore/blob/main/waymore/images/title.png"></center>
23
23
 
24
- ## About - v7.0
24
+ ## About - v7.2
25
25
 
26
26
  The idea behind **waymore** is to find even more links from the Wayback Machine than other existing tools.
27
27
 
@@ -120,6 +120,7 @@ pipx install git+https://github.com/xnl-h4ck3r/waymore.git
120
120
  | -urlr | --urlscan-rate-limit-retry | The number of minutes the user wants to wait for a rate limit pause on URLScan.io instead of stopping with a `429` error (default: 1). |
121
121
  | -co | --check-only | This will make a few minimal requests to show you how many requests, and roughly how long it could take, to get URLs from the sources and downloaded responses from Wayback Machine (unfortunately it isn't possible to check how long it will take to download responses from URLScan). |
122
122
  | -nd | --notify-discord | Whether to send a notification to Discord when waymore completes. It requires `WEBHOOK_DISCORD` to be provided in the `config.yml` file. |
123
+ | -nt | --notify-telegram | Whether to send a notification to Telegram when waymore completes. It requires `WEBHOOK_TELEGRAM` to be provided in the `config.yml` file. |
123
124
  | -oijs | --output-inline-js | Whether to save combined inline javascript of all relevant files in the response directory when `-mode R` (or `-mode B`) has been used. The files are saved with the name `combinedInline{}.js` where `{}` is the number of the file, saving 1000 unique scripts per file. The file `combinedInlineSrc.txt` will also be created, containing the `src` value of all external scripts referenced in the files. |
124
125
  | -v | --verbose | Verbose output |
125
126
  | | --version | Show current version number. |
@@ -170,7 +171,8 @@ The `config.yml` file (typically in `~/.config/waymore/`) have values that can b
170
171
  - `FILTER_KEYWORDS` - Only links and responses will be returned that contain the specified keywords if the `-ko`/`--keywords-only` argument is passed (without providing an explicit value on the command line), e.g. `admin,portal`
171
172
  - `URLSCAN_API_KEY` - You can sign up to [urlscan.io](https://urlscan.io/user/signup) to get a **FREE** API key (there are also paid subscriptions available). It is recommended you get a key and put it into the config file so that you can get more back (and quicker) from their API. NOTE: You will get rate limited unless you have a full paid subscription.
172
173
  - `CONTINUE_RESPONSES_IF_PIPED` - If retrieving archive responses doesn't complete, you will be prompted next time whether you want to continue with the previous run. However, if `stdout` is piped to another process it is assumed you don't want to have an interactive prompt. A value of `True` (default) will determine assure the previous run will be continued. if you want a fresh run every time then set to `False`.
173
- - `WEBHOOK_DISCORD` - If the `--notify-discord` argument is passed, `waymore` will send a notification to this Discord wehook when a successful XSS is found.
174
+ - `WEBHOOK_DISCORD` - If the `--notify-discord` argument is passed, `waymore` will send a notification to this Discord wehook.
175
+ - `WEBHOOK_TELEGRAM` - If the `--notify-telegram` argument is passed, `waymore` will send a notification to this Telegram wehook.
174
176
  - `DEFAULT_OUTPUT_DIR` - This is the default location of any output files written if the `-oU` and `-oR` arguments are not used. If the value of this key is blank, then it will default to the location of the `config.yml` file.
175
177
  - `INTELX_API_KEY` - You can sign up to [intelx.io here](https://intelx.io/product). It requires a paid API key to do the `/phonebook/search` through their API (as of 2024-09-01, the Phonebook service has been restricted to paid users due to constant abuse by spam accounts).
176
178
 
@@ -0,0 +1,8 @@
1
+ waymore/__init__.py,sha256=4TdZBI0WwoIYmsXMgu2lnF3i9IxtNBVO4xCVBwBu2gk,20
2
+ waymore/waymore.py,sha256=4frf2-aadaNFTPlgvdVBazpFdgh3LBx3oAGoLsM1i-g,276172
3
+ waymore-7.2.dist-info/licenses/LICENSE,sha256=o_jq62xZ1YxI8tqzQKbNtqr3RW2i5sh0rk6ixCJEroU,1068
4
+ waymore-7.2.dist-info/METADATA,sha256=scJFBF3kv9IVMiD-r3p-86NPHatA39ZLVOmHbzD3pU8,52348
5
+ waymore-7.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
6
+ waymore-7.2.dist-info/entry_points.txt,sha256=YHy5EUf3r_7OTkt9jvylLjNeg7Z5yvIVm5RUAyfNcN4,49
7
+ waymore-7.2.dist-info/top_level.txt,sha256=RFTphkWaRu1N7lUWIPUjabgCPQ3ETmNllF7qze4JJ_s,8
8
+ waymore-7.2.dist-info/RECORD,,
@@ -1,8 +0,0 @@
1
- waymore/__init__.py,sha256=NvDQnrD09CEwUQaMbcu5QZqslCNsgpKzgt7scQ5ZgJ8,20
2
- waymore/waymore.py,sha256=jNYKiZf7Toqlo5gpQo-ebm70cR47QvLfsyaDHsmmS0Y,273363
3
- waymore-7.0.dist-info/licenses/LICENSE,sha256=o_jq62xZ1YxI8tqzQKbNtqr3RW2i5sh0rk6ixCJEroU,1068
4
- waymore-7.0.dist-info/METADATA,sha256=YzkVssN-6ICCcv8Cnt3gXjvLYv6UAHOyNvwR4KAihZo,51560
5
- waymore-7.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
6
- waymore-7.0.dist-info/entry_points.txt,sha256=YHy5EUf3r_7OTkt9jvylLjNeg7Z5yvIVm5RUAyfNcN4,49
7
- waymore-7.0.dist-info/top_level.txt,sha256=RFTphkWaRu1N7lUWIPUjabgCPQ3ETmNllF7qze4JJ_s,8
8
- waymore-7.0.dist-info/RECORD,,
File without changes