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.
- {endpointscanner-7.3.1 → endpointscanner-7.3.4}/PKG-INFO +9 -16
- {endpointscanner-7.3.1 → endpointscanner-7.3.4}/README.md +8 -15
- {endpointscanner-7.3.1 → endpointscanner-7.3.4}/endpointscanner.egg-info/PKG-INFO +9 -16
- {endpointscanner-7.3.1 → endpointscanner-7.3.4}/enumerateendpoint.py +15 -8
- {endpointscanner-7.3.1 → endpointscanner-7.3.4}/pyproject.toml +1 -1
- {endpointscanner-7.3.1 → endpointscanner-7.3.4}/LICENSE +0 -0
- {endpointscanner-7.3.1 → endpointscanner-7.3.4}/endpointscanner.egg-info/SOURCES.txt +0 -0
- {endpointscanner-7.3.1 → endpointscanner-7.3.4}/endpointscanner.egg-info/dependency_links.txt +0 -0
- {endpointscanner-7.3.1 → endpointscanner-7.3.4}/endpointscanner.egg-info/entry_points.txt +0 -0
- {endpointscanner-7.3.1 → endpointscanner-7.3.4}/endpointscanner.egg-info/requires.txt +0 -0
- {endpointscanner-7.3.1 → endpointscanner-7.3.4}/endpointscanner.egg-info/top_level.txt +0 -0
- {endpointscanner-7.3.1 → endpointscanner-7.3.4}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: endpointscanner
|
|
3
|
-
Version: 7.3.
|
|
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
|
|
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)
|
|
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
|
|
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)
|
|
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.
|
|
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
|
|
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)
|
|
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("
|
|
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.
|
|
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
|
-
|
|
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."
|
|
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[
|
|
1241
|
-
print(f"
|
|
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("\
|
|
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.
|
|
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
|
|
File without changes
|
{endpointscanner-7.3.1 → endpointscanner-7.3.4}/endpointscanner.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|