endpointscanner 7.2.2__tar.gz → 7.2.3__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.2.2 → endpointscanner-7.2.3}/PKG-INFO +6 -2
- {endpointscanner-7.2.2 → endpointscanner-7.2.3}/README.md +5 -1
- {endpointscanner-7.2.2 → endpointscanner-7.2.3}/endpointscanner.egg-info/PKG-INFO +6 -2
- {endpointscanner-7.2.2 → endpointscanner-7.2.3}/enumerateendpoint.py +15 -5
- {endpointscanner-7.2.2 → endpointscanner-7.2.3}/pyproject.toml +1 -1
- {endpointscanner-7.2.2 → endpointscanner-7.2.3}/LICENSE +0 -0
- {endpointscanner-7.2.2 → endpointscanner-7.2.3}/endpointscanner.egg-info/SOURCES.txt +0 -0
- {endpointscanner-7.2.2 → endpointscanner-7.2.3}/endpointscanner.egg-info/dependency_links.txt +0 -0
- {endpointscanner-7.2.2 → endpointscanner-7.2.3}/endpointscanner.egg-info/entry_points.txt +0 -0
- {endpointscanner-7.2.2 → endpointscanner-7.2.3}/endpointscanner.egg-info/requires.txt +0 -0
- {endpointscanner-7.2.2 → endpointscanner-7.2.3}/endpointscanner.egg-info/top_level.txt +0 -0
- {endpointscanner-7.2.2 → endpointscanner-7.2.3}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: endpointscanner
|
|
3
|
-
Version: 7.2.
|
|
3
|
+
Version: 7.2.3
|
|
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
|
|
@@ -16,7 +16,7 @@ Requires-Dist: playwright-stealth
|
|
|
16
16
|
Requires-Dist: httpx[http2]>=0.27.0
|
|
17
17
|
Dynamic: license-file
|
|
18
18
|
|
|
19
|
-
# Website Endpoint Scanner and Rate Limit Tester For Websites (Version 7.2.
|
|
19
|
+
# Website Endpoint Scanner and Rate Limit Tester For Websites (Version 7.2.3)
|
|
20
20
|
|
|
21
21
|
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.
|
|
22
22
|
|
|
@@ -189,12 +189,16 @@ Version 7.2.1 (patch update) added:
|
|
|
189
189
|
|
|
190
190
|
Version 7.2.2 just changed wording and description of the tool to be more clear.
|
|
191
191
|
|
|
192
|
+
Version 7.2.3 added one more sensitive endpoint and fixed bug where some paths would be / from extra files.
|
|
193
|
+
|
|
192
194
|
## Plans for next version and the future
|
|
193
195
|
|
|
194
196
|
Version 7.3 is planned to have:
|
|
195
197
|
|
|
196
198
|
- More JS Stacks to detect
|
|
197
199
|
- Detecting what type of captcha was used if the script is blocked.
|
|
200
|
+
- Fix pdf keys that look like endpoints (e.g. /Btn, /Widget)
|
|
201
|
+
- Fix bug in scanning extra file: openid configuration. (currently no verification that the file is in the config format, meaning on SPAs it will be mistaken as a real file.)
|
|
198
202
|
|
|
199
203
|
Future plans (May be added in the next version):
|
|
200
204
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Website Endpoint Scanner and Rate Limit Tester For Websites (Version 7.2.
|
|
1
|
+
# Website Endpoint Scanner and Rate Limit Tester For Websites (Version 7.2.3)
|
|
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
|
|
|
@@ -171,12 +171,16 @@ Version 7.2.1 (patch update) added:
|
|
|
171
171
|
|
|
172
172
|
Version 7.2.2 just changed wording and description of the tool to be more clear.
|
|
173
173
|
|
|
174
|
+
Version 7.2.3 added one more sensitive endpoint and fixed bug where some paths would be / from extra files.
|
|
175
|
+
|
|
174
176
|
## Plans for next version and the future
|
|
175
177
|
|
|
176
178
|
Version 7.3 is planned to have:
|
|
177
179
|
|
|
178
180
|
- More JS Stacks to detect
|
|
179
181
|
- Detecting what type of captcha was used if the script is blocked.
|
|
182
|
+
- Fix pdf keys that look like endpoints (e.g. /Btn, /Widget)
|
|
183
|
+
- Fix bug in scanning extra file: openid configuration. (currently no verification that the file is in the config format, meaning on SPAs it will be mistaken as a real file.)
|
|
180
184
|
|
|
181
185
|
Future plans (May be added in the next version):
|
|
182
186
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: endpointscanner
|
|
3
|
-
Version: 7.2.
|
|
3
|
+
Version: 7.2.3
|
|
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
|
|
@@ -16,7 +16,7 @@ Requires-Dist: playwright-stealth
|
|
|
16
16
|
Requires-Dist: httpx[http2]>=0.27.0
|
|
17
17
|
Dynamic: license-file
|
|
18
18
|
|
|
19
|
-
# Website Endpoint Scanner and Rate Limit Tester For Websites (Version 7.2.
|
|
19
|
+
# Website Endpoint Scanner and Rate Limit Tester For Websites (Version 7.2.3)
|
|
20
20
|
|
|
21
21
|
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.
|
|
22
22
|
|
|
@@ -189,12 +189,16 @@ Version 7.2.1 (patch update) added:
|
|
|
189
189
|
|
|
190
190
|
Version 7.2.2 just changed wording and description of the tool to be more clear.
|
|
191
191
|
|
|
192
|
+
Version 7.2.3 added one more sensitive endpoint and fixed bug where some paths would be / from extra files.
|
|
193
|
+
|
|
192
194
|
## Plans for next version and the future
|
|
193
195
|
|
|
194
196
|
Version 7.3 is planned to have:
|
|
195
197
|
|
|
196
198
|
- More JS Stacks to detect
|
|
197
199
|
- Detecting what type of captcha was used if the script is blocked.
|
|
200
|
+
- Fix pdf keys that look like endpoints (e.g. /Btn, /Widget)
|
|
201
|
+
- Fix bug in scanning extra file: openid configuration. (currently no verification that the file is in the config format, meaning on SPAs it will be mistaken as a real file.)
|
|
198
202
|
|
|
199
203
|
Future plans (May be added in the next version):
|
|
200
204
|
|
|
@@ -225,9 +225,7 @@ async def async_rate_test(url, num_reqs=100, method="GET", rb=None, rv=None, coo
|
|
|
225
225
|
print("[+] Streaming requests into the background network pipeline...")
|
|
226
226
|
await asyncio.sleep(45.0)
|
|
227
227
|
|
|
228
|
-
#
|
|
229
|
-
#Fancy label below
|
|
230
|
-
#----AFTER NETWORK IS GONE----
|
|
228
|
+
#label every single request using enumerate() to find out exactly when the first request timed out, or hit a non-200.
|
|
231
229
|
status_counts = {}
|
|
232
230
|
first_limit_at = None
|
|
233
231
|
|
|
@@ -404,7 +402,7 @@ def main():
|
|
|
404
402
|
exit(1)
|
|
405
403
|
|
|
406
404
|
if args.ratelimit_body and args.ratelimit_var:
|
|
407
|
-
# bracket escaping
|
|
405
|
+
# bracket escaping, so if someone puts {{X}} or X, it will end up as {X}.
|
|
408
406
|
expected_bracket_token = f"{{{args.ratelimit_var.strip('{}')}}}"
|
|
409
407
|
|
|
410
408
|
if expected_bracket_token not in args.ratelimit_body:
|
|
@@ -473,7 +471,7 @@ def main():
|
|
|
473
471
|
start_test_time = time.perf_counter()
|
|
474
472
|
#hardcoded dangerous endpoints to test
|
|
475
473
|
SENSITIVE_ENDPOINT = {
|
|
476
|
-
"/.env", "/.env.local", "/.env.production", "/.env.development",
|
|
474
|
+
"/.env", "/.env.local", "/.env.production", "/.env.development", ".env.dev",
|
|
477
475
|
"/.git/config", "/.git/HEAD", "/package.json", "/package-lock.json", "/.npmrc", "/.dockerenv",
|
|
478
476
|
"/.gitignore", "/api/health", "/admin", "/login", "/config",
|
|
479
477
|
"/.env.example", "/docker-compose.yml", "/.babelrc", "/.eslintrc.json",
|
|
@@ -504,6 +502,8 @@ def main():
|
|
|
504
502
|
for rule in rules:
|
|
505
503
|
clean_rule = rule.strip()
|
|
506
504
|
if clean_rule and clean_rule not in ["/", "/*"] and clean_rule not in found_paths:
|
|
505
|
+
if clean_rule.strip() in ["/", "/*"]:
|
|
506
|
+
continue
|
|
507
507
|
found_paths.add(clean_rule)
|
|
508
508
|
results_fromotherfiles.append(f"{clean_rule} [Source: robots.txt]")
|
|
509
509
|
if args.show_prog:
|
|
@@ -519,6 +519,8 @@ def main():
|
|
|
519
519
|
for loc in locs:
|
|
520
520
|
clean_path = loc.strip()
|
|
521
521
|
if clean_path and clean_path != "/" and clean_path not in found_paths:
|
|
522
|
+
if clean_path.strip() == "/":
|
|
523
|
+
continue
|
|
522
524
|
found_paths.add(clean_path)
|
|
523
525
|
if not args.tidy:
|
|
524
526
|
results_fromotherfiles.append(f"{clean_path} [Source: sitemap.xml]")
|
|
@@ -536,6 +538,8 @@ def main():
|
|
|
536
538
|
paths = re.findall(r'["\'](/[a-zA-Z0-9_\-\./]+)["\']', m_res.text)
|
|
537
539
|
for path in paths:
|
|
538
540
|
if path not in found_paths:
|
|
541
|
+
if path.strip() == "/":
|
|
542
|
+
continue
|
|
539
543
|
found_paths.add(path)
|
|
540
544
|
if not args.tidy:
|
|
541
545
|
results_fromotherfiles.append(f"{path} [Source: asset-manifest.json]")
|
|
@@ -553,6 +557,8 @@ def main():
|
|
|
553
557
|
paths = re.findall(r'["\'](/[a-zA-Z0-9_\-\./]+)["\']', m_res.text)
|
|
554
558
|
for path in paths:
|
|
555
559
|
if path not in found_paths:
|
|
560
|
+
if path.strip() == "/":
|
|
561
|
+
continue
|
|
556
562
|
found_paths.add(path)
|
|
557
563
|
if not args.tidy:
|
|
558
564
|
results_fromotherfiles.append(f"{path} [Source: {manifest_path.lstrip('/')}]")
|
|
@@ -572,6 +578,8 @@ def main():
|
|
|
572
578
|
paths = re.findall(r'["\'`](/[a-zA-Z0-9_\-\./{}:]+)["\'`]', sw_res.text)
|
|
573
579
|
for path in paths:
|
|
574
580
|
if path not in found_paths and not any(path.endswith(ext) for ext in ['.js', '.css']):
|
|
581
|
+
if path.strip() == "/":
|
|
582
|
+
continue
|
|
575
583
|
found_paths.add(path)
|
|
576
584
|
if not args.tidy:
|
|
577
585
|
results_fromotherfiles.append(f"{path} [Source: {sw_path}]")
|
|
@@ -589,6 +597,8 @@ def main():
|
|
|
589
597
|
paths = re.findall(r'https?://[^/]+(/[^"\']*)', oidc_res.text)
|
|
590
598
|
for path in paths:
|
|
591
599
|
if path not in found_paths:
|
|
600
|
+
if path.strip() == "/":
|
|
601
|
+
continue
|
|
592
602
|
found_paths.add(path)
|
|
593
603
|
if not args.tidy:
|
|
594
604
|
results_fromotherfiles.append(f"{path} [Source: openid-configuration]")
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "endpointscanner"
|
|
7
|
-
version = "7.2.
|
|
7
|
+
version = "7.2.3"
|
|
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.2.2 → endpointscanner-7.2.3}/endpointscanner.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|