endpointscanner 7.3.1__tar.gz → 7.3.4__tar.gz

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: endpointscanner
3
- Version: 7.3.1
3
+ Version: 7.3.4
4
4
  Summary: Website endpoint reconnaissance tool and rate limit tester that can bypass simple captchas and WAFs.
5
5
  Project-URL: Homepage, https://github.com/SphericalFlower52811/endpointscanner
6
6
  Project-URL: Issues, https://github.com/SphericalFlower52811/endpointscanner/issues
@@ -17,7 +17,7 @@ Requires-Dist: httpx[http2]>=0.27.0
17
17
  Requires-Dist: colorama>=0.4.6
18
18
  Dynamic: license-file
19
19
 
20
- # EndpointScanner: Website Endpoint Scanner and Rate Limit Tester For Websites (Version 7.3.1)
20
+ # EndpointScanner: Website Endpoint Scanner and Rate Limit Tester (Version 7.3.4)
21
21
 
22
22
  A fast automated website reconnaissance tool that extracts endpoints, files, and even external links from websites. Automates IDOR and broken access control vulnerability testing through replacing variables with 1 in endpoints. Has a built in rate limit tester that can test on any endpoint, and can bypass simple WAFs/captchas and client-side SPAs.
23
23
 
@@ -70,7 +70,7 @@ Passable arguments:
70
70
 
71
71
  ## Installation
72
72
 
73
- You can install EndpointScanner via PyPI(global, recommended for Windows), Homebrew(MacOS), and Apt(Linux).
73
+ You can install EndpointScanner via PyPI(global, recommended for Windows and Linux) or Homebrew(MacOS).
74
74
 
75
75
  ### Installation via PyPI (or pip)
76
76
 
@@ -178,18 +178,6 @@ After that, you will need to install chromium on playwright for the headless bro
178
178
  python3 -m playwright install chromium
179
179
  ```
180
180
 
181
- ### Apt
182
-
183
- To install EndpointScanner via Apt (Linux), run these commands:
184
-
185
- ```bash
186
- wget https://github.com/SphericalFlower52811/endpointscanner/releases/download/v7.3.1/endpointscanner_7.3.1-1_all.deb
187
-
188
- sudo dpkg -i endpointscanner_7.3.1-1_all.deb
189
-
190
- python3 -m playwright install chromium
191
- ```
192
-
193
181
  ## Example Commands
194
182
 
195
183
  Example command to run to scan a site (show inaccessible endpoints, show assets, show progress as it finds endpoints, and show files that it got endpoints from):
@@ -263,9 +251,14 @@ Version 7.3 added:
263
251
  Version 7.3.1 added:
264
252
 
265
253
  - EndpointScanner now installable on:
266
- - Linux via sudo apt
267
254
  - Homebrew
268
255
 
256
+ Version 7.3.2 fixed a glitch showing robots.txt when it was not scanned.
257
+
258
+ Version 7.3.3 was another minor patch and included a llms.txt for LLMs to digest.
259
+
260
+ Version 7.3.4 fixed header for the variable S_HEADER, as it contained an invalid User-Agent Header.
261
+
269
262
  ## Plans for next version and the future
270
263
 
271
264
  Version 7.4:
@@ -1,4 +1,4 @@
1
- # EndpointScanner: Website Endpoint Scanner and Rate Limit Tester For Websites (Version 7.3.1)
1
+ # EndpointScanner: Website Endpoint Scanner and Rate Limit Tester (Version 7.3.4)
2
2
 
3
3
  A fast automated website reconnaissance tool that extracts endpoints, files, and even external links from websites. Automates IDOR and broken access control vulnerability testing through replacing variables with 1 in endpoints. Has a built in rate limit tester that can test on any endpoint, and can bypass simple WAFs/captchas and client-side SPAs.
4
4
 
@@ -51,7 +51,7 @@ Passable arguments:
51
51
 
52
52
  ## Installation
53
53
 
54
- You can install EndpointScanner via PyPI(global, recommended for Windows), Homebrew(MacOS), and Apt(Linux).
54
+ You can install EndpointScanner via PyPI(global, recommended for Windows and Linux) or Homebrew(MacOS).
55
55
 
56
56
  ### Installation via PyPI (or pip)
57
57
 
@@ -159,18 +159,6 @@ After that, you will need to install chromium on playwright for the headless bro
159
159
  python3 -m playwright install chromium
160
160
  ```
161
161
 
162
- ### Apt
163
-
164
- To install EndpointScanner via Apt (Linux), run these commands:
165
-
166
- ```bash
167
- wget https://github.com/SphericalFlower52811/endpointscanner/releases/download/v7.3.1/endpointscanner_7.3.1-1_all.deb
168
-
169
- sudo dpkg -i endpointscanner_7.3.1-1_all.deb
170
-
171
- python3 -m playwright install chromium
172
- ```
173
-
174
162
  ## Example Commands
175
163
 
176
164
  Example command to run to scan a site (show inaccessible endpoints, show assets, show progress as it finds endpoints, and show files that it got endpoints from):
@@ -244,9 +232,14 @@ Version 7.3 added:
244
232
  Version 7.3.1 added:
245
233
 
246
234
  - EndpointScanner now installable on:
247
- - Linux via sudo apt
248
235
  - Homebrew
249
236
 
237
+ Version 7.3.2 fixed a glitch showing robots.txt when it was not scanned.
238
+
239
+ Version 7.3.3 was another minor patch and included a llms.txt for LLMs to digest.
240
+
241
+ Version 7.3.4 fixed header for the variable S_HEADER, as it contained an invalid User-Agent Header.
242
+
250
243
  ## Plans for next version and the future
251
244
 
252
245
  Version 7.4:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: endpointscanner
3
- Version: 7.3.1
3
+ Version: 7.3.4
4
4
  Summary: Website endpoint reconnaissance tool and rate limit tester that can bypass simple captchas and WAFs.
5
5
  Project-URL: Homepage, https://github.com/SphericalFlower52811/endpointscanner
6
6
  Project-URL: Issues, https://github.com/SphericalFlower52811/endpointscanner/issues
@@ -17,7 +17,7 @@ Requires-Dist: httpx[http2]>=0.27.0
17
17
  Requires-Dist: colorama>=0.4.6
18
18
  Dynamic: license-file
19
19
 
20
- # EndpointScanner: Website Endpoint Scanner and Rate Limit Tester For Websites (Version 7.3.1)
20
+ # EndpointScanner: Website Endpoint Scanner and Rate Limit Tester (Version 7.3.4)
21
21
 
22
22
  A fast automated website reconnaissance tool that extracts endpoints, files, and even external links from websites. Automates IDOR and broken access control vulnerability testing through replacing variables with 1 in endpoints. Has a built in rate limit tester that can test on any endpoint, and can bypass simple WAFs/captchas and client-side SPAs.
23
23
 
@@ -70,7 +70,7 @@ Passable arguments:
70
70
 
71
71
  ## Installation
72
72
 
73
- You can install EndpointScanner via PyPI(global, recommended for Windows), Homebrew(MacOS), and Apt(Linux).
73
+ You can install EndpointScanner via PyPI(global, recommended for Windows and Linux) or Homebrew(MacOS).
74
74
 
75
75
  ### Installation via PyPI (or pip)
76
76
 
@@ -178,18 +178,6 @@ After that, you will need to install chromium on playwright for the headless bro
178
178
  python3 -m playwright install chromium
179
179
  ```
180
180
 
181
- ### Apt
182
-
183
- To install EndpointScanner via Apt (Linux), run these commands:
184
-
185
- ```bash
186
- wget https://github.com/SphericalFlower52811/endpointscanner/releases/download/v7.3.1/endpointscanner_7.3.1-1_all.deb
187
-
188
- sudo dpkg -i endpointscanner_7.3.1-1_all.deb
189
-
190
- python3 -m playwright install chromium
191
- ```
192
-
193
181
  ## Example Commands
194
182
 
195
183
  Example command to run to scan a site (show inaccessible endpoints, show assets, show progress as it finds endpoints, and show files that it got endpoints from):
@@ -263,9 +251,14 @@ Version 7.3 added:
263
251
  Version 7.3.1 added:
264
252
 
265
253
  - EndpointScanner now installable on:
266
- - Linux via sudo apt
267
254
  - Homebrew
268
255
 
256
+ Version 7.3.2 fixed a glitch showing robots.txt when it was not scanned.
257
+
258
+ Version 7.3.3 was another minor patch and included a llms.txt for LLMs to digest.
259
+
260
+ Version 7.3.4 fixed header for the variable S_HEADER, as it contained an invalid User-Agent Header.
261
+
269
262
  ## Plans for next version and the future
270
263
 
271
264
  Version 7.4:
@@ -40,7 +40,7 @@ PYODIDE_VFS_PRECISION_PATTERNS = [
40
40
  ]
41
41
 
42
42
  S_HEADER = {
43
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ...",
43
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
44
44
  "Cache-Control": "no-store",
45
45
  "Pragma": "no-cache",
46
46
  "If-None-Match": "",
@@ -359,7 +359,8 @@ async def async_rate_test(url, num_reqs=100, method="GET", rb=None, rv=None, coo
359
359
  for idx, (h, body_data, json_flag) in enumerate(processed_queue):
360
360
  asyncio.create_task(worker(h, body_data, json_flag, idx))
361
361
 
362
- print("[+] Streaming requests into the background network pipeline...")
362
+ print("Finishing up rate limiting test...")
363
+ #wait for all responses to load properly
363
364
  await asyncio.sleep(45.0)
364
365
 
365
366
  #label every single request using enumerate() to find out exactly when the first request timed out, or hit a non-200.
@@ -432,9 +433,11 @@ def checktime(st, at):
432
433
  else:
433
434
  if choice in ['n', 'no']:
434
435
  print('Scan stopped. Any data found in the time window will be printed.')
436
+ print('Sensitive endpoints like ".git/config" will be automatically skipped.')
435
437
  else:
436
438
  print('Choice not recognised, and will be defaulted to no.')
437
439
  print('Scan stopped. Any data found in the time window will be printed.')
440
+ print('Sensitive endpoints like ".git/config" will be automatically skipped.')
438
441
  return "STOP"
439
442
  return "CONTINUE"
440
443
  def main():
@@ -469,7 +472,7 @@ def main():
469
472
  init(autoreset=True)
470
473
  print()
471
474
  print("-" * 40)
472
- print(f"{Style.BRIGHT}Endpointscanner {Fore.LIGHTMAGENTA_EX}v7.3.1")
475
+ print(f"{Style.BRIGHT}Endpointscanner {Fore.LIGHTMAGENTA_EX}v7.3.4")
473
476
  print("-" * 40)
474
477
  print()
475
478
  if args.no_duplicate_prog and not args.show_prog:
@@ -648,7 +651,7 @@ def main():
648
651
  try:
649
652
  r_res = requests.get(urljoin(target, "/robots.txt"), headers=E_HEADER, impersonate=impersonate_settings, timeout=4)
650
653
  if r_res.status_code == 200:
651
- e_files.append('/robots.txt')
654
+ appendrobottoe = False
652
655
 
653
656
  for line in r_res.text.splitlines():
654
657
  _local_robots_line = line.strip()
@@ -663,6 +666,9 @@ def main():
663
666
  if _local_directive in ["disallow", "allow"]:
664
667
  if _local_payload and _local_payload not in ["/", "/*"] and _local_payload not in found_paths:
665
668
  found_paths.add(_local_payload)
669
+ if appendrobottoe == False:
670
+ e_files.append('/robots.txt')
671
+ appendrobottoe = True
666
672
  if not args.tidy:
667
673
  results_fromotherfiles.append(f"{_local_payload} [Source: robots.txt]")
668
674
  else:
@@ -1084,7 +1090,7 @@ def main():
1084
1090
  if nested_netloc == target_netloc:
1085
1091
  nested_safe = True
1086
1092
  elif get_apex(nested_netloc) == get_apex(target_netloc):
1087
- if any(token in nested_netloc for token in ["assets.", "cdn.", "vendor."]):
1093
+ if any(token in nested_netloc for token in ["assets.", "cdn."]):
1088
1094
  nested_safe = True
1089
1095
 
1090
1096
  if nested_safe and check_nested_url not in js_files:
@@ -1237,18 +1243,19 @@ def main():
1237
1243
  if len(found_paths) >= 12500:
1238
1244
  exaggerate = "REALLY REALLY "
1239
1245
 
1240
- print(f"\n[!] Number of endpoints found is {exaggerate}large.")
1241
- print(f"[*] Estimated sorting time: {esttime}")
1246
+ print(f"\n[WARNING] Number of endpoints found is {exaggerate}large.")
1247
+ print(f"Estimated sorting time: {esttime}")
1242
1248
 
1243
1249
  try:
1244
1250
  userawoutput = input("Would you like to use the raw output instead? (No sorting at all) [y/n]\n >>> ")
1245
1251
  if userawoutput.lower() in ['y', 'yes']:
1252
+ print("Endpoints will not be sorted.")
1246
1253
  args.raw_output = True
1247
1254
  else:
1248
1255
  print("Endpoints will still be sorted.")
1249
1256
  args.raw_output = False
1250
1257
  except (KeyboardInterrupt, SystemExit):
1251
- print("\n[!] Scan cancelled by user.")
1258
+ print("\nScan cancelled by user.")
1252
1259
  return
1253
1260
 
1254
1261
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "endpointscanner"
7
- version = "7.3.1"
7
+ version = "7.3.4"
8
8
  readme = "README.md"
9
9
  description = "Website endpoint reconnaissance tool and rate limit tester that can bypass simple captchas and WAFs."
10
10
  requires-python = ">=3.9"
File without changes