From 5e473e65bce1212699c44b0ec67dd12f2bd2d3eb Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Sun, 24 May 2026 15:10:44 +0300 Subject: [PATCH 01/42] Normalize directory scan prefix paths --- CHANGELOG.md | 5 +++++ data/directories.dat | 13 +++++++------ src/lib/reader/reader.py | 21 +++++++++++++++++++++ tests/test_lib_reader.py | 16 ++++++++++++++++ 4 files changed, 49 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c05248d8..fa1de8b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ CHANGELOG ======= +v5.17.0 (xx.xx.2026) +--------------------------- +- (fix) directory scan prefix normalization so as example `--prefix locale` and `--prefix locale/` both scan under `/locale/` instead of concatenating paths as `/locale`. +- (dictionary) cleaned and normalized the internal directories list (+XXX potential interesting paths). + v5.16.1 (24.05.2026) --------------------------- - (fix) reduced duplicate fingerprint traffic by reusing exact same method+URL probe responses within a single fingerprint pass. diff --git a/data/directories.dat b/data/directories.dat index 2c145290..12f19cb5 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -40336,6 +40336,9 @@ data.sql.zip data.sqlite data.tar.bz2 data.tar.gz +member.inc +aerfans +stamember.php data.tgz data.tsv data.txt @@ -40380,6 +40383,9 @@ data/passwords.dat data/passwords.txt data/passwords.zip data/pay.json +uploadsp +user_admin +user_admin.php data/payments.json data/pgdata/pg_hba.conf data/project.rar @@ -41519,6 +41525,7 @@ dblclk DBLIST dblist dblog +aermember.php dblog.info dblogin.php dbm @@ -110226,7 +110233,6 @@ user-agreement.html user-controls user-data user-data.txt -user-data.txt.i user-edit.php user-login.php user-mode @@ -112218,17 +112224,13 @@ var/lib/cloud/instance/obj.pkl var/lib/cloud/instance/scripts var/lib/cloud/instance/sem var/lib/cloud/instance/user-data.txt -var/lib/cloud/instance/user-data.txt.i var/lib/cloud/instance/vendor-data.txt -var/lib/cloud/instance/vendor-data.txt.i var/lib/cloud/instanceboot-finished var/lib/cloud/instancecloud-config.txt var/lib/cloud/instancedatasource var/lib/cloud/instanceobj.pkl var/lib/cloud/instanceuser-data.txt -var/lib/cloud/instanceuser-data.txt.i var/lib/cloud/instancevendor-data.txt -var/lib/cloud/instancevendor-data.txt.i var/lib/mysql/mysql/user.frm var/lib/postgresql/data/pg_hba.conf var/log @@ -112471,7 +112473,6 @@ vendita_pc.htm vendite.php vendor vendor-data.txt -vendor-data.txt.i vendor.php vendor/2fa vendor/.env diff --git a/src/lib/reader/reader.py b/src/lib/reader/reader.py index 797643ff..b11bc42c 100644 --- a/src/lib/reader/reader.py +++ b/src/lib/reader/reader.py @@ -318,6 +318,25 @@ def _subdomains__line(cls, line, params): return params.get('scheme') + line + '.' + host + port + @staticmethod + def _normalize_directory_prefix(prefix): + """ + Normalize directory scan prefix as a path segment. + + :param str|None prefix: raw prefix from CLI/config/session + :return: normalized prefix with trailing slash, or an empty string + """ + + if prefix is None: + return '' + + prefix = str(prefix).strip().strip('/') + + if not prefix: + return '' + + return '{0}/'.format(prefix) + def _directories__line(self, line, params): """ Read lines from directories file @@ -332,6 +351,8 @@ def _directories__line(self, line, params): if prefix is None: prefix = self.__browser_config.get('prefix', '') + prefix = self._normalize_directory_prefix(prefix) + if prefix: line = prefix + line diff --git a/tests/test_lib_reader.py b/tests/test_lib_reader.py index 039fc443..c92c25ba 100644 --- a/tests/test_lib_reader.py +++ b/tests/test_lib_reader.py @@ -255,6 +255,22 @@ def test_directories_line_uses_prefix_when_configured(self): self.assertEqual(line, 'http://example.com/admin/login.php') + def test_directories_line_normalizes_prefix_without_trailing_slash(self): + """Reader._directories__line() should treat bare prefix values as path segments.""" + + reader = self.create_reader(browser_config={'prefix': 'admin', 'list': 'directories'}) + line = reader._directories__line('login.php\n', {'scheme': 'http://', 'host': 'example.com', 'port': 80}) + + self.assertEqual(line, 'http://example.com/admin/login.php') + + def test_directories_line_normalizes_prefix_with_outer_slashes(self): + """Reader._directories__line() should avoid duplicated separators around prefixes.""" + + reader = self.create_reader(browser_config={'prefix': '/admin/', 'list': 'directories'}) + line = reader._directories__line('/login.php\n', {'scheme': 'http://', 'host': 'example.com', 'port': 80}) + + self.assertEqual(line, 'http://example.com/admin/login.php') + def test_directories_line_appends_non_default_port(self): """Reader._directories__line() should include a non-default port in the final URL.""" From 355fd7c5cfebd7c45e5d3418841af565fc060acf Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Sun, 24 May 2026 15:18:55 +0300 Subject: [PATCH 02/42] Guard weak auto-calibration baselines --- CHANGELOG.md | 3 +- src/lib/browser/browser.py | 65 +++++++++++++++++++++++++++++++++++--- tests/test_lib_browser.py | 47 +++++++++++++++++++++++++++ 3 files changed, 109 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fa1de8b1..4fdeb93b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ CHANGELOG v5.17.0 (xx.xx.2026) --------------------------- - (fix) directory scan prefix normalization so as example `--prefix locale` and `--prefix locale/` both scan under `/locale/` instead of concatenating paths as `/locale`. +- (fix) `--auto-calibration` now disables weak HTTP baselines when too many probes are blocked, ignored, or failed, preventing sparse signatures from over-filtering scan results. - (dictionary) cleaned and normalized the internal directories list (+XXX potential interesting paths). v5.16.1 (24.05.2026) @@ -400,7 +401,7 @@ v5.10.0 (28.04.2026) - (dictionary) cleaned and normalized directories list - (dictionary) refreshed subdomains wordlist with `+1251780` entries - (tests) added unittest coverage for CI/CD fail-on exit codes -- (tests) added unittest coverage for adaptive cooldown behaviour +- (tests) added unittest coverage for adaptive cooldown behavior v5.9.2 (27.04.2026) --------------------------- diff --git a/src/lib/browser/browser.py b/src/lib/browser/browser.py index c4290940..d33faca1 100644 --- a/src/lib/browser/browser.py +++ b/src/lib/browser/browser.py @@ -1203,24 +1203,31 @@ def calibrate(self): dns_wildcard_addresses = self.__build_dns_wildcard_addresses() signatures = [] - for url in self.__build_calibration_urls(): + calibration_urls = self.__build_calibration_urls() + calibration_probe_stats = { + 'blocked': 0, + 'failed': 0, + 'ignored': 0, + } + + for url in calibration_urls: try: response_object = self.__request_with_waf_safe_mode(url) response_data = self.__response.handle( response_object, request_url=url, items_size=0, - total_size=self.__config.calibration_samples, + total_size=len(calibration_urls), ignore_list=[], emit_debug=False ) if response_data is None: + calibration_probe_stats['ignored'] += 1 continue if response_data[0] == 'blocked': - tpl.warning( - msg='Auto-calibration probe skipped because it was classified as blocked: {0}'.format(url)) + calibration_probe_stats['blocked'] += 1 continue signatures.append(Calibration.build_signature(response_object, response_data)) @@ -1229,11 +1236,30 @@ def calibrate(self): if self.__is_standalone_proxy_mode() is True: raise BrowserError(error) + calibration_probe_stats['failed'] += 1 tpl.warning(msg='Auto-calibration probe failed: {0}'.format(error)) except (HttpRequestError, HttpsRequestError, ResponseError) as error: + calibration_probe_stats['failed'] += 1 tpl.warning(msg='Auto-calibration probe failed: {0}'.format(error)) + http_baseline_disabled = False + if self.__is_weak_calibration_baseline(len(signatures), len(calibration_urls)) is True: + http_baseline_disabled = True + tpl.warning( + msg=( + 'Auto-calibration HTTP baseline is weak: usable={0}/{1}, blocked={2}, failed={3}, ' + 'ignored={4}. Runtime response calibration disabled for this target.' + ).format( + len(signatures), + len(calibration_urls), + calibration_probe_stats['blocked'], + calibration_probe_stats['failed'], + calibration_probe_stats['ignored'], + ) + ) + signatures = [] + self.__calibration = Calibration( signatures=signatures, threshold=self.__config.calibration_threshold, @@ -1257,13 +1283,42 @@ def calibrate(self): self.__mark_session_dirty() return self.__calibration - tpl.warning(msg='Auto-calibration disabled: no usable baseline signatures') + if http_baseline_disabled is not True: + tpl.warning(msg='Auto-calibration disabled: no usable baseline signatures') return None except (AttributeError, TypeError, ValueError) as error: tpl.warning(msg='Auto-calibration skipped: {0}'.format(error)) return None + @staticmethod + def __is_weak_calibration_baseline(usable_signatures, requested_samples): + """Return True when the HTTP calibration baseline is too sparse. + + Weak baselines are dangerous because a single usable response can + overfit noisy targets after most probes were blocked, ignored, or + failed. Keep one-sample and two-sample scans backward-compatible, but + require a minimum half-sample quorum for larger calibration runs. + + :param int usable_signatures: number of usable response signatures + :param int requested_samples: number of requested calibration probes + :return: True when response calibration should be disabled + :rtype: bool + """ + + try: + usable_signatures = int(usable_signatures or 0) + requested_samples = int(requested_samples or 0) + except (TypeError, ValueError): + return False + + if requested_samples < 3 or usable_signatures <= 0: + return False + + minimum_usable = max(2, (requested_samples + 1) // 2) + + return usable_signatures < minimum_usable + def __is_active_sniffer_enabled(self, name): """Return True when a built-in active sniffer is enabled. diff --git a/tests/test_lib_browser.py b/tests/test_lib_browser.py index 8b3bd12e..c0380997 100644 --- a/tests/test_lib_browser.py +++ b/tests/test_lib_browser.py @@ -2859,6 +2859,53 @@ def test_calibrate_should_skip_none_and_blocked_probe_responses(self): self.assertEqual(response_handler.handle.call_count, 2) warning_mock.assert_any_call(msg='Auto-calibration disabled: no usable baseline signatures') + def test_calibrate_should_disable_weak_http_baseline(self): + """Browser.calibrate() should disable sparse HTTP baselines after blocked probes.""" + + br = self.make_browser() + setattr(br, '_Browser__config', self.browser_configuration({ + 'reports': 'std', + 'host': 'example.com', + 'port': 80, + 'scheme': 'http://', + 'auto_calibrate': True, + 'calibration_samples': 8, + 'calibration_threshold': 0.92, + })) + + client = MagicMock() + client.request.return_value = SimpleNamespace( + status=404, + headers={'Content-Type': 'text/html'}, + data=b'not found' + ) + setattr(br, '_Browser__client', client) + + response_handler = MagicMock() + response_handler.handle.side_effect = [ + ('success', 'http://example.com/abcdef123456-0', '9B', '404'), + ('blocked', 'http://example.com/assets/abcdef123456-1.map', '6KB', '403'), + ('blocked', 'http://example.com/abcdef123456-2.php', '6KB', '403'), + ('blocked', 'http://example.com/abcdef123456-3.html', '6KB', '403'), + ('blocked', 'http://example.com/api/abcdef123456-4', '6KB', '403'), + ('blocked', 'http://example.com/static/abcdef123456-5.js', '6KB', '403'), + ('blocked', 'http://example.com/wp-content/uploads/abcdef123456-6.php', '6KB', '403'), + ('blocked', 'http://example.com/admin/abcdef123456-7', '6KB', '403'), + ] + setattr(br, '_Browser__response', response_handler) + + with patch('src.lib.browser.browser.tpl.info'), \ + patch('src.lib.browser.browser.tpl.warning') as warning_mock: + actual = br.calibrate() + + self.assertIsNone(actual) + warning_mock.assert_called_once_with( + msg=( + 'Auto-calibration HTTP baseline is weak: usable=1/8, blocked=7, failed=0, ignored=0. ' + 'Runtime response calibration disabled for this target.' + ) + ) + def test_calibrate_should_continue_after_probe_request_error(self): """Browser.calibrate() should continue and disable baseline when probes fail.""" From bc33ed305387bfbf345ad2abea79b6a234be1cc9 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Sun, 24 May 2026 15:35:51 +0300 Subject: [PATCH 03/42] Use safer calibration probes in WAF-safe mode --- CHANGELOG.md | 1 + data/directories.dat | 12 +++++------ src/lib/browser/browser.py | 42 ++++++++++++++++++++++++++++++-------- tests/test_lib_browser.py | 35 +++++++++++++++++++++++++++++++ 4 files changed, 75 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fdeb93b..e1b33138 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ v5.17.0 (xx.xx.2026) --------------------------- - (fix) directory scan prefix normalization so as example `--prefix locale` and `--prefix locale/` both scan under `/locale/` instead of concatenating paths as `/locale`. - (fix) `--auto-calibration` now disables weak HTTP baselines when too many probes are blocked, ignored, or failed, preventing sparse signatures from over-filtering scan results. +- (fix) reduced WAF-safe auto-calibration noise by using neutral calibration probe paths when `--waf-safe-mode` is enabled, avoiding high-risk `.php`, `.map`, `admin`, and `wp-*` probe shapes. - (dictionary) cleaned and normalized the internal directories list (+XXX potential interesting paths). v5.16.1 (24.05.2026) diff --git a/data/directories.dat b/data/directories.dat index 12f19cb5..211bb905 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -18207,6 +18207,8 @@ aenovoshop aeon aep aerepair.aspx +aerfans +aermember.php aero aerobics aeromail @@ -40336,9 +40338,6 @@ data.sql.zip data.sqlite data.tar.bz2 data.tar.gz -member.inc -aerfans -stamember.php data.tgz data.tsv data.txt @@ -40383,9 +40382,6 @@ data/passwords.dat data/passwords.txt data/passwords.zip data/pay.json -uploadsp -user_admin -user_admin.php data/payments.json data/pgdata/pg_hba.conf data/project.rar @@ -41525,7 +41521,6 @@ dblclk DBLIST dblist dblog -aermember.php dblog.info dblogin.php dbm @@ -71324,6 +71319,7 @@ member.bak member.cgi member.htm member.html +member.inc member.php member/2fa member/about @@ -101091,6 +101087,7 @@ stalkerlab stalled_issues.php stallion stallions +stamember.php stamp-h1 stampa stampa.asp @@ -109998,6 +109995,7 @@ uploadshell.inc uploadshell.php uploadshell.phtml uploadshell.py +uploadsp uploadtest.asp uploadtest.aspx uploadtest.php diff --git a/src/lib/browser/browser.py b/src/lib/browser/browser.py index d33faca1..aa8ffd51 100644 --- a/src/lib/browser/browser.py +++ b/src/lib/browser/browser.py @@ -1425,7 +1425,40 @@ def __build_calibration_urls(self): urls = [] token = uuid.uuid4().hex[:12] - path_templates = ( + path_templates = self.__build_calibration_path_templates() + + for index in range(self.__config.calibration_samples): + template = path_templates[index % len(path_templates)] + path = template.format(token=token, index=index) + urls.append(self.__build_calibration_url(path)) + + return urls + + def __build_calibration_path_templates(self): + """Return calibration path templates for the current runtime profile. + + Regular auto-calibration keeps mixed URL shapes to detect different + soft-404/catch-all behaviours. In WAF safe mode, avoid high-risk + scanner-like probes such as `.php`, `.map`, `admin`, and + `wp-content/uploads/*.php` because those paths are commonly treated as + attack indicators by edge protections before the scan starts. + + :return: tuple[str, ...] + """ + + if True is getattr(self.__config, 'is_waf_safe_mode', False): + return ( + '{token}-{index}', + 'assets/{token}-{index}', + 'static/{token}-{index}', + 'media/{token}-{index}', + 'content/{token}-{index}', + 'resources/{token}-{index}', + 'public/{token}-{index}', + 'files/{token}-{index}', + ) + + return ( '{token}-{index}', 'assets/{token}-{index}.map', '{token}-{index}.php', @@ -1436,13 +1469,6 @@ def __build_calibration_urls(self): 'admin/{token}-{index}', ) - for index in range(self.__config.calibration_samples): - template = path_templates[index % len(path_templates)] - path = template.format(token=token, index=index) - urls.append(self.__build_calibration_url(path)) - - return urls - def __build_calibration_url(self, path): """ Build a calibration URL under the configured scan prefix. diff --git a/tests/test_lib_browser.py b/tests/test_lib_browser.py index c0380997..f87aca9f 100644 --- a/tests/test_lib_browser.py +++ b/tests/test_lib_browser.py @@ -2705,6 +2705,41 @@ def test_calibrate_should_build_mixed_probe_url_shapes(self): 'http://example.com/admin/abcdef123456-7', ]) + def test_calibrate_should_build_waf_safe_probe_url_shapes(self): + """Browser calibration probes should avoid risky URL shapes in WAF safe mode.""" + + br = self.make_browser() + setattr(br, '_Browser__config', self.browser_configuration({ + 'reports': 'std', + 'host': 'example.com', + 'port': 80, + 'scheme': 'http://', + 'auto_calibrate': True, + 'waf_safe_mode': True, + 'calibration_samples': 8, + })) + + with patch('src.lib.browser.browser.uuid.uuid4') as uuid4_mock: + uuid4_mock.return_value.hex = 'abcdef1234567890' + actual = br._Browser__build_calibration_urls() + + self.assertEqual(actual, [ + 'http://example.com/abcdef123456-0', + 'http://example.com/assets/abcdef123456-1', + 'http://example.com/static/abcdef123456-2', + 'http://example.com/media/abcdef123456-3', + 'http://example.com/content/abcdef123456-4', + 'http://example.com/resources/abcdef123456-5', + 'http://example.com/public/abcdef123456-6', + 'http://example.com/files/abcdef123456-7', + ]) + + joined = ' '.join(actual).lower() + self.assertNotIn('.php', joined) + self.assertNotIn('.map', joined) + self.assertNotIn('/admin/', joined) + self.assertNotIn('/wp-content/', joined) + def test_calibrate_should_build_baseline_from_probe_responses(self): """Browser.calibrate() should build baseline signatures from calibration probes.""" From 777929b296c8f56c2642ea3f8d8046cf4749583e Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Sun, 24 May 2026 16:35:11 +0300 Subject: [PATCH 04/42] Reduce Bitrix auth iframe malware false positives --- CHANGELOG.md | 5 +- src/core/http/plugins/response/malware.py | 100 +++++++++++++++++- ...test_core_http_plugins_response_malware.py | 70 ++++++++++++ 3 files changed, 171 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1b33138..41ebecb9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,10 @@ CHANGELOG ======= v5.17.0 (xx.xx.2026) --------------------------- -- (fix) directory scan prefix normalization so as example `--prefix locale` and `--prefix locale/` both scan under `/locale/` instead of concatenating paths as `/locale`. -- (fix) `--auto-calibration` now disables weak HTTP baselines when too many probes are blocked, ignored, or failed, preventing sparse signatures from over-filtering scan results. +- (fix) directory scan prefix normalization so `--prefix locale` and `--prefix locale/` both scan under `/locale/` instead of concatenating paths as `/locale`. +- (fix) `--auto-calibrate` now disables weak HTTP baselines when too many probes are blocked, ignored, or failed, preventing sparse signatures from over-filtering scan results. - (fix) reduced WAF-safe auto-calibration noise by using neutral calibration probe paths when `--waf-safe-mode` is enabled, avoiding high-risk `.php`, `.map`, `admin`, and `wp-*` probe shapes. +- (fix) reduced `--sniff malware` false positives for standard Bitrix admin login pages by allowlisting the built-in hidden `auth_frame` iframe only when strong Bitrix login markers are present. - (dictionary) cleaned and normalized the internal directories list (+XXX potential interesting paths). v5.16.1 (24.05.2026) diff --git a/src/core/http/plugins/response/malware.py b/src/core/http/plugins/response/malware.py index 60d5fd61..7619ac07 100644 --- a/src/core/http/plugins/response/malware.py +++ b/src/core/http/plugins/response/malware.py @@ -133,6 +133,13 @@ class MalwareResponsePlugin(ResponsePluginProvider): ), }, ) + BITRIX_ADMIN_LOGIN_MARKERS = ( + re.compile(r'\bid\s*=\s*[\"\']bx-admin-prefix[\"\']', re.IGNORECASE), + re.compile(r'\bBX\.adminLogin\b', re.IGNORECASE), + re.compile(r'/bitrix/js/main/core/core_admin_login\.js', re.IGNORECASE), + re.compile(r'/bitrix/panel/main/login\.css', re.IGNORECASE), + re.compile(r'\bclass\s*=\s*[\"\'][^\"\']*bx-admin-auth-form', re.IGNORECASE), + ) def __init__(self, _void): """ @@ -194,7 +201,7 @@ def detect(cls, text): continue for match in pattern.finditer(source): - if cls._is_allowed_match(signal, match): + if cls._is_allowed_match(signal, match, source): continue key = (signal.get('signal'), match.group(0).lower()) @@ -213,12 +220,13 @@ def detect(cls, text): return cls._build_detection(findings) @classmethod - def _is_allowed_match(cls, signal, match): + def _is_allowed_match(cls, signal, match, source=''): """ Check whether a malware signal match is a known benign integration. :param dict signal: signal definition :param re.Match match: regex match + :param str source: full decoded response body for contextual allowlists :return: True when the match should be ignored :rtype: bool """ @@ -227,8 +235,96 @@ def _is_allowed_match(cls, signal, match): if pattern.search(match.group(0)): return True + if signal.get('signal') == 'hidden-iframe' and cls._is_bitrix_login_auth_frame(source, match): + return True + return False + @classmethod + def _is_bitrix_login_auth_frame(cls, source, match): + """ + Decide whether a hidden iframe is the built-in Bitrix admin auth target. + + The allowlist is intentionally narrow: only the empty ``auth_frame`` iframe + is ignored, and only when the surrounding page has strong Bitrix admin-login + markers. Any non-empty or external hidden iframe remains reportable. + + :param str source: full decoded response body + :param re.Match match: hidden iframe match + :return: True when this is the standard Bitrix auth iframe + :rtype: bool + """ + + if cls._is_bitrix_admin_login_page(source) is not True: + return False + + tag = cls._extract_opening_tag(source, match) + if not tag: + return False + + if cls._get_tag_attribute(tag, 'name').lower() != 'auth_frame': + return False + + src = cls._get_tag_attribute(tag, 'src').strip() + if src != '': + return False + + return True + + @classmethod + def _is_bitrix_admin_login_page(cls, source): + """ + Check whether a response body is a standard Bitrix admin login page. + + :param str source: full decoded response body + :return: True when strong Bitrix login markers are present + :rtype: bool + """ + + text = str(source or '') + hits = sum(1 for pattern in cls.BITRIX_ADMIN_LOGIN_MARKERS if pattern.search(text)) + return hits >= 3 and '/bitrix/' in text.lower() + + @staticmethod + def _extract_opening_tag(source, match): + """ + Extract the complete opening HTML tag for a regex match. + + :param str source: full decoded response body + :param re.Match match: regex match starting at an opening tag + :return: bounded opening tag or empty string + :rtype: str + """ + + text = str(source or '') + start = int(match.start()) + end = text.find('>', start, start + 1000) + if end < 0: + return match.group(0) + + return text[start:end + 1] + + @staticmethod + def _get_tag_attribute(tag, name): + """ + Return a quoted HTML attribute value from an opening tag. + + :param str tag: opening HTML tag + :param str name: attribute name + :return: attribute value or empty string + :rtype: str + """ + + pattern = re.compile( + r'\b{0}\s*=\s*([\"\'])(.*?)\1'.format(re.escape(str(name))), + re.IGNORECASE | re.DOTALL, + ) + match = pattern.search(str(tag or '')) + if match is None: + return '' + + return match.group(2) + @classmethod def _build_match(cls, signal, match): """ diff --git a/tests/test_core_http_plugins_response_malware.py b/tests/test_core_http_plugins_response_malware.py index 5847d75b..9a976fc6 100644 --- a/tests/test_core_http_plugins_response_malware.py +++ b/tests/test_core_http_plugins_response_malware.py @@ -27,6 +27,36 @@ def make_response(self, status=200, body=b'', headers=None): return HTTPResponse(status=status, body=body, headers=headers or {'Content-Type': 'text/html'}) + @staticmethod + def make_bitrix_login_body(extra=''): + """ + Build a compact Bitrix admin login page fixture. + + :param str extra: optional extra HTML inserted into body + :return: HTML fixture + :rtype: str + """ + + return ''' + + + + + + + + +
+ +
+ + {0} + + + '''.format(extra) + def assert_malware_detection(self, body, subtype, family, confidence=70, headers=None): """ Assert that a response body is classified as malware. @@ -121,6 +151,46 @@ def test_ignores_google_tag_manager_noscript_hidden_iframe(self): self.assertIsNone(MalwareResponsePlugin(None).process(response)) self.assertFalse(hasattr(response, 'opendoor_malware_detection')) + def test_ignores_bitrix_admin_login_auth_frame_hidden_iframe(self): + """Standard Bitrix auth_frame iframe should not be treated as malware.""" + + body = self.make_bitrix_login_body() + response = self.make_response(body=body.encode('utf-8')) + + self.assertIsNone(MalwareResponsePlugin(None).process(response)) + self.assertFalse(hasattr(response, 'opendoor_malware_detection')) + + def test_still_detects_auth_frame_hidden_iframe_without_bitrix_context(self): + """auth_frame by itself must not disable hidden iframe detection.""" + + self.assert_malware_detection( + '', + 'malware', + 'hidden-iframe-injection', + 82, + ) + + def test_still_detects_external_hidden_iframe_on_bitrix_login_page(self): + """Bitrix allowlist must not hide injected external hidden iframes.""" + + body = self.make_bitrix_login_body( + '' + ) + + detection = self.assert_malware_detection(body, 'malware', 'hidden-iframe-injection', 82) + self.assertEqual(detection['count'], 1) + self.assertIn('https://bad.example', detection['matches'][0]['evidence']) + + def test_still_detects_non_empty_bitrix_auth_frame_src(self): + """Bitrix auth_frame allowlist must require an empty iframe source.""" + + body = self.make_bitrix_login_body().replace( + 'name="auth_frame" src=""', + 'name="auth_frame" src="https://bad.example/payload.html"', + ) + + self.assert_malware_detection(body, 'malware', 'hidden-iframe-injection', 82) + def test_still_detects_non_gtm_hidden_iframe(self): """Allowlisting GTM must not disable hidden iframe detection for unknown hosts.""" From 9a8de2a3dbc305832905e0de012dea496058c083 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Mon, 25 May 2026 01:46:58 +0300 Subject: [PATCH 05/42] Clarify runtime diagnostics queue accounting --- CHANGELOG.md | 1 + src/lib/browser/browser.py | 5 +++-- tests/test_lib_browser.py | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 41ebecb9..b66585ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ v5.17.0 (xx.xx.2026) - (fix) `--auto-calibrate` now disables weak HTTP baselines when too many probes are blocked, ignored, or failed, preventing sparse signatures from over-filtering scan results. - (fix) reduced WAF-safe auto-calibration noise by using neutral calibration probe paths when `--waf-safe-mode` is enabled, avoiding high-risk `.php`, `.map`, `admin`, and `wp-*` probe shapes. - (fix) reduced `--sniff malware` false positives for standard Bitrix admin login pages by allowlisting the built-in hidden `auth_frame` iframe only when strong Bitrix login markers are present. +- (fix) clarified Runtime Diagnostics queue accounting by showing consumed items, submitted HTTP jobs, and pre-request skipped items separately. - (dictionary) cleaned and normalized the internal directories list (+XXX potential interesting paths). v5.16.1 (24.05.2026) diff --git a/src/lib/browser/browser.py b/src/lib/browser/browser.py index aa8ffd51..3be7be73 100644 --- a/src/lib/browser/browser.py +++ b/src/lib/browser/browser.py @@ -770,8 +770,9 @@ def __format_runtime_diagnostics(self, status='completed'): ('items', total), ('progress', '{0}/{1} ({2})'.format(processed, total, progress)), ( - 'requests', - '{0} submitted, {1} skipped before request'.format( + 'queue', + '{0} consumed, {1} submitted, {2} pre-request skipped'.format( + payload.get('processed'), payload.get('submitted'), payload.get('skipped_before_request'), ), diff --git a/tests/test_lib_browser.py b/tests/test_lib_browser.py index f87aca9f..c52d3ccc 100644 --- a/tests/test_lib_browser.py +++ b/tests/test_lib_browser.py @@ -1578,7 +1578,7 @@ def test_done_prints_debug_runtime_diagnostics_after_reports(self): self.assertIn('| Runtime diagnostics', rendered) self.assertIn('| items | 10', rendered) self.assertIn('| progress | 10/10 (100.0%)', rendered) - self.assertIn('| requests | 9 submitted, 1 skipped before request', rendered) + self.assertIn('| queue | 10 consumed, 9 submitted, 1 pre-request skipped', rendered) self.assertIn('| rate | 5.0/s average', rendered) self.assertIn('| time | active 00:00:02, remaining 00:00:00', rendered) self.assertIn('| threads | 1', rendered) @@ -1710,7 +1710,7 @@ def test_runtime_diagnostics_handles_zero_totals_and_malformed_result_counters(s rendered = br._Browser__format_runtime_diagnostics(status='completed') self.assertIn('| progress | 0/0 (0.0%)', rendered) - self.assertIn('| requests | 0 submitted, 0 skipped before request', rendered) + self.assertIn('| queue | 0 consumed, 0 submitted, 0 pre-request skipped', rendered) self.assertIn('| rate | 0.0/s average', rendered) self.assertIn('| threads | 2', rendered) self.assertIn('| retries | exhausted transport paths 0, fail streak 0/10', rendered) From 0b3344527867a9585173e2643bbafe4975770356 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Mon, 25 May 2026 17:26:09 +0300 Subject: [PATCH 06/42] (fix) subdomain scans so missing/no-response candidates are skipped without triggering the directory retry fail-streak abort guard --- CHANGELOG.md | 1 + data/directories.dat | 9 ++ docs/Usage.md | 6 +- docs/Wizard.md | 2 +- opendoor.conf | 7 +- src/lib/browser/browser.py | 84 +++++++++++++++---- tests/test_lib_browser.py | 72 ++++++++++++++++ ...t_lib_browser_fingerprint_runtime_extra.py | 2 +- 8 files changed, 158 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b66585ee..66fb78b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ CHANGELOG ======= v5.17.0 (xx.xx.2026) --------------------------- +- (fix) subdomain scans so missing/no-response candidates are skipped without triggering the directory retry fail-streak abort guard. - (fix) directory scan prefix normalization so `--prefix locale` and `--prefix locale/` both scan under `/locale/` instead of concatenating paths as `/locale`. - (fix) `--auto-calibrate` now disables weak HTTP baselines when too many probes are blocked, ignored, or failed, preventing sparse signatures from over-filtering scan results. - (fix) reduced WAF-safe auto-calibration noise by using neutral calibration probe paths when `--waf-safe-mode` is enabled, avoiding high-risk `.php`, `.map`, `admin`, and `wp-*` probe shapes. diff --git a/data/directories.dat b/data/directories.dat index 211bb905..73de677c 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -33913,6 +33913,7 @@ cloudnine clouds cloudstore/configmysql.xml clover +clover.xml clp cls cls.php @@ -43531,6 +43532,7 @@ dlr_jasmin.php dls dlstats_nbulker.php dlt +DLUsers dm dm-config dm.asp @@ -76698,6 +76700,7 @@ newsign.aspx newsignup.php newsimage newsimages +newsindex.php newsinfo newsinsert2000.pdf newsite @@ -83514,6 +83517,7 @@ phpcommunitycalendar phpcompat.php phpconnect.php phpcounter +phpcs.xml phpdata.php phpdb phpdbadm.php @@ -106001,6 +106005,11 @@ tests.jsf tests.php tests/.env Tests/Application/.env +tests/database/manager_users.sql +tests/database/site_content.sql +tests/database/site_templates.sql +tests/database/site_tmplvars.sql +tests/database/user_attributes.sql tests/default_settings/v7.0/.env tests/default_settings/v8.0/.env tests/default_settings/v9.0/.env diff --git a/docs/Usage.md b/docs/Usage.md index da8130a4..26a8ee4b 100644 --- a/docs/Usage.md +++ b/docs/Usage.md @@ -268,11 +268,13 @@ opendoor --host https://example.com -r 5 opendoor --host https://example.com --retries 5 --retries-fail-streak 10 ``` -`--retries-fail-streak` controls how many consecutive paths may exhaust the configured retry budget before OpenDoor aborts the scan. +`--retries-fail-streak` controls how many consecutive directory paths may exhaust the configured retry budget before OpenDoor aborts a directory scan. Default: `10`. -Use this to avoid spending a full wordlist on a target that became unavailable, while still tolerating occasional path-specific `Max retries exceeded` responses. Any normally processed response resets the streak. Paths that exhaust retries are still recorded as skipped/ignored before the abort threshold is evaluated. +Subdomain scans do not use this abort guard. Missing HTTP responses are expected during subdomain enumeration, so exhausted subdomain candidates are recorded as skipped/ignored and the scan continues. + +Use this option for directory scans to avoid spending a full wordlist on a target that became unavailable, while still tolerating occasional path-specific `Max retries exceeded` responses. Any normally processed response resets the directory-scan streak. Paths that exhaust retries are still recorded as skipped/ignored before the abort threshold is evaluated. Examples: diff --git a/docs/Wizard.md b/docs/Wizard.md index 0b5449d0..1a6f8aee 100644 --- a/docs/Wizard.md +++ b/docs/Wizard.md @@ -131,7 +131,7 @@ Notes: - `HEAD` is faster for status/size-oriented discovery. - `GET` is better when body-based filters or body-oriented sniffers are required. - `timeout` and `retries` should be increased for slow or unstable targets. -- `retries_fail_streak` aborts the scan only after this many consecutive paths exhaust retries. +- `retries_fail_streak` aborts directory scans only after this many consecutive paths exhaust retries; subdomain scans ignore this abort guard because missing candidates are expected. - `delay` can be used to reduce request pressure. - `threads` controls concurrency (1 ~ 50). diff --git a/opendoor.conf b/opendoor.conf index ed439454..666ccb0a 100755 --- a/opendoor.conf +++ b/opendoor.conf @@ -27,9 +27,10 @@ timeout = 30 # Max retries inside one request before a path is treated as exhausted retries = 3 -# Abort scan after this many consecutive paths exhaust configured retries -# Any normal processed response resets this streak. -# Increase for unstable or WAF-sensitive targets; decrease for fail-fast scans. +# Abort directory scans after this many consecutive paths exhaust configured retries . +# Subdomain scans ignore this abort guard because missing candidate responses are expected. +# Any normal processed response resets this streak in directory scans. +# Increase for unstable or WAF-sensitive targets; decrease for fail-fast directory scans. retries_fail_streak = 10 # Enable opt-in legacy TLS compatibility for weak-DH HTTPS targets. diff --git a/src/lib/browser/browser.py b/src/lib/browser/browser.py index 3be7be73..3f046320 100644 --- a/src/lib/browser/browser.py +++ b/src/lib/browser/browser.py @@ -654,6 +654,30 @@ def __format_diagnostics_bool(value): return 'enabled' if value is True else 'disabled' + @staticmethod + def __format_transport_diagnostics(payload): + """Format transport-failure diagnostics for the active scan mode. + + Directory scans use the consecutive exhausted-retry fail-streak as an + availability guard. Subdomain scans do not enforce that guard because + missing HTTP responses are normal enumeration misses. + + :param dict payload: runtime diagnostics payload + :return: formatted diagnostics value + :rtype: str + """ + + if payload.get('retries_fail_streak_enforced') is not True: + return 'subdomain misses {0}, fail-fast disabled'.format( + payload.get('transport_skipped'), + ) + + return 'exhausted transport paths {0}, fail streak {1}/{2}'.format( + payload.get('transport_skipped'), + payload.get('retries_fail_streak'), + payload.get('retries_fail_limit'), + ) + def __record_pre_request_skip(self): """Record one dictionary item skipped before an HTTP request was submitted. @@ -705,6 +729,7 @@ def __runtime_diagnostics_payload(self, status='completed'): 'remaining_seconds': remaining_seconds, 'retries_fail_streak': self.__safe_progress_int(getattr(self, '_Browser__transport_failure_streak', 0)), 'retries_fail_limit': self.__transport_failure_threshold(), + 'retries_fail_streak_enforced': self.__is_subdomains_scan() is not True, 'auto_calibration_enabled': getattr(self.__config, 'is_auto_calibrate', False) is True, 'calibrated_responses': self.__safe_progress_int(total_counter.get('calibrated', 0)), } @@ -788,11 +813,7 @@ def __format_runtime_diagnostics(self, status='completed'): ('threads', payload.get('threads')), ( 'retries', - 'exhausted transport paths {0}, fail streak {1}/{2}'.format( - payload.get('transport_skipped'), - payload.get('retries_fail_streak'), - payload.get('retries_fail_limit'), - ), + self.__format_transport_diagnostics(payload), ), ( 'calibration', @@ -1161,7 +1182,7 @@ def fingerprint(self): evidence_values = self.__fingerprint_evidence_values(result.get('signals', [])) if evidence_values: - tpl.info(msg='Fingerprint evidence: {0}'.format(', '.join(evidence_values))) + tpl.debug(msg='Fingerprint evidence: {0}'.format(', '.join(evidence_values))) return result @@ -2417,12 +2438,22 @@ def __emit_transport_failure_summary(self): return self.__finish_filtered_progress_line() - tpl.info( - msg=( - 'Transport failures skipped: {0} request(s) without HTTP response. ' - 'Scan continued without reaching --retries-fail-streak.' - ).format(skipped) - ) + + if self.__is_subdomains_scan() is True: + tpl.info( + msg=( + 'Subdomain candidates without HTTP response: {0}. ' + 'These candidates were skipped without fail-streak abort.' + ).format(skipped) + ) + else: + tpl.info( + msg=( + 'Transport failures skipped: {0} request(s) without HTTP response. ' + 'Scan continued without reaching --retries-fail-streak.' + ).format(skipped) + ) + self.__transport_failure_summary_emitted = True def __reset_transport_failure_streak(self): @@ -2462,19 +2493,27 @@ def __record_transport_failure(self, url): Request providers already pass ``config.retries`` to urllib3. This method is called only after that retry budget has been exhausted and the - provider returned ``None``. It must not short-circuit per-request retry - behavior; it only protects the scanner from silently walking the whole - dictionary after the target transport goes away. + provider returned ``None``. Directory scans use a consecutive-failure + guard to avoid walking the remaining dictionary against an unavailable + target. Subdomain scans intentionally do not use that guard because + missing HTTP responses are normal enumeration misses. :param str url: failed request URL - :raise BrowserError: when consecutive failures exceed the abort threshold + :raise BrowserError: when directory-scan consecutive failures exceed the abort threshold :return: None """ + is_subdomains_scan = self.__is_subdomains_scan() is True + with self.__transport_failure_lock: - self.__transport_failure_streak += 1 self.__transport_failures_skipped += 1 - streak = self.__transport_failure_streak + + if is_subdomains_scan: + self.__transport_failure_streak = 0 + streak = 0 + else: + self.__transport_failure_streak += 1 + streak = self.__transport_failure_streak threshold = self.__transport_failure_threshold() path = helper.parse_url(url).path or str(url) @@ -2486,6 +2525,15 @@ def __record_transport_failure(self, url): if diagnostic: diagnostic_suffix = ' Last transport error: {0}'.format(diagnostic) + if is_subdomains_scan: + self.__debug_transport_failure( + ( + 'Subdomain candidate produced no HTTP response after configured timeout/retries: {path}. ' + 'Candidate skipped; subdomain scans do not use fail-streak aborts.{diagnostic_suffix}' + ).format(path=path, diagnostic_suffix=diagnostic_suffix) + ) + return + if streak < threshold: self.__debug_transport_failure( ( diff --git a/tests/test_lib_browser.py b/tests/test_lib_browser.py index c52d3ccc..ce758f93 100644 --- a/tests/test_lib_browser.py +++ b/tests/test_lib_browser.py @@ -761,6 +761,78 @@ def test_transport_failure_summary_reports_skipped_path_specific_failures(self): self.assertIn('Transport failures skipped: 3 request(s)', message) self.assertIn('Scan continued without reaching --retries-fail-streak.', message) + def test_http_request_never_aborts_subdomain_scan_on_transport_failures(self): + """Subdomain misses should be skipped without using the directory fail-streak guard.""" + + br = self.make_browser() + client = MagicMock() + client.request.return_value = None + pool = SimpleNamespace(items_size=1, total_items_size=10) + response_handler = MagicMock() + + setattr(br, '_Browser__client', client) + setattr(br, '_Browser__pool', pool) + setattr(br, '_Browser__response', response_handler) + setattr(getattr(br, '_Browser__config'), '_scan', 'subdomains') + setattr(getattr(br, '_Browser__config'), '_retries_fail_streak', 2) + + debug_state = MagicMock() + debug_state.is_scan_debug.return_value = True + setattr(br, '_Browser__debug', debug_state) + + with patch('src.lib.browser.browser.tpl.debug') as debug_mock: + br._Browser__http_request('https://admin.example.com') + br._Browser__http_request('https://api.example.com') + br._Browser__http_request('https://dev.example.com') + + self.assertEqual(client.request.call_count, 3) + response_handler.handle.assert_not_called() + self.assertEqual(getattr(br, '_Browser__transport_failure_streak'), 0) + self.assertEqual(getattr(br, '_Browser__transport_failures_skipped'), 3) + self.assertEqual(getattr(br, '_Browser__result')['total']['ignored'], 3) + self.assertIn('Subdomain candidate produced no HTTP response', debug_mock.call_args.kwargs.get('msg', '')) + self.assertIn('do not use fail-streak aborts', debug_mock.call_args.kwargs.get('msg', '')) + + def test_transport_failure_summary_uses_subdomain_specific_wording(self): + """Subdomain transport misses should not mention reaching the directory fail-streak guard.""" + + br = self.make_browser() + setattr(br, '_Browser__transport_failure_lock', threading.RLock()) + setattr(br, '_Browser__transport_failures_skipped', 4) + setattr(br, '_Browser__transport_failure_summary_emitted', False) + setattr(getattr(br, '_Browser__config'), '_scan', 'subdomains') + + with patch('src.lib.browser.browser.tpl.info') as info_mock: + br._Browser__emit_transport_failure_summary() + + info_mock.assert_called_once() + message = info_mock.call_args.kwargs.get('msg', '') + self.assertIn('Subdomain candidates without HTTP response: 4', message) + self.assertIn('without fail-streak abort', message) + self.assertNotIn('--retries-fail-streak', message) + + def test_runtime_diagnostics_formats_subdomain_transport_misses_without_fail_streak(self): + """Runtime diagnostics should not show directory fail-streak state for subdomain scans.""" + + br = self.make_browser() + setattr(br, '_Browser__pool', SimpleNamespace( + total_items_size=10, + items_size=4, + submitted_size=4, + workers_size=1, + )) + setattr(br, '_Browser__runtime_started_at', None) + setattr(br, '_Browser__active_runtime_total', 0.0) + setattr(br, '_Browser__pre_request_skipped', 0) + setattr(br, '_Browser__transport_failures_skipped', 4) + setattr(br, '_Browser__transport_failure_streak', 0) + setattr(getattr(br, '_Browser__config'), '_scan', 'subdomains') + + rendered = br._Browser__format_runtime_diagnostics(status='completed') + + self.assertIn('| retries | subdomain misses 4, fail-fast disabled', rendered) + self.assertNotIn('fail streak', rendered) + def test_http_request_records_status_from_response_handler(self): """Browser.__http_request() should record the tuple returned by the response handler.""" diff --git a/tests/test_lib_browser_fingerprint_runtime_extra.py b/tests/test_lib_browser_fingerprint_runtime_extra.py index cf1486aa..3f2d5678 100644 --- a/tests/test_lib_browser_fingerprint_runtime_extra.py +++ b/tests/test_lib_browser_fingerprint_runtime_extra.py @@ -143,7 +143,7 @@ def test_fingerprint_evidence_output_deduplicates_values_only(self): fingerprint_instance.detect.return_value = fingerprint_result with patch('src.lib.browser.browser.Fingerprint', return_value=fingerprint_instance), \ - patch('src.lib.browser.browser.tpl.info') as info_mock: + patch('src.lib.browser.browser.tpl.debug') as info_mock: result = browser.fingerprint() self.assertEqual(result['signals'], fingerprint_result['signals']) From 78d16fe9506a3a70bc26bd6ab1e6ac14f14a0cfd Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Mon, 25 May 2026 18:16:40 +0300 Subject: [PATCH 07/42] Fix quiet subdomain scan transport handling --- src/core/http/tls.py | 11 +++++++++++ src/lib/browser/browser.py | 22 +++++++++------------- tests/test_core_http_tls.py | 14 ++++++++++++++ tests/test_lib_browser.py | 15 +++++++++++---- 4 files changed, 45 insertions(+), 17 deletions(-) diff --git a/src/core/http/tls.py b/src/core/http/tls.py index d87e1463..4ca6f533 100644 --- a/src/core/http/tls.py +++ b/src/core/http/tls.py @@ -75,6 +75,17 @@ def describe_tls_transport_error(error): message = _compact_error_message(error) lowered = message.lower() + name_resolution_markers = ( + 'failed to resolve', + 'name or service not known', + 'nodename nor servname provided', + 'temporary failure in name resolution', + 'no address associated with hostname', + 'nameresolutionerror', + ) + if any(marker in lowered for marker in name_resolution_markers): + return None + if 'dh key too small' in lowered or 'dh_key_too_small' in lowered: return ( 'TLS handshake failed: DH_KEY_TOO_SMALL. ' diff --git a/src/lib/browser/browser.py b/src/lib/browser/browser.py index 3f046320..ab70a3b9 100644 --- a/src/lib/browser/browser.py +++ b/src/lib/browser/browser.py @@ -2441,10 +2441,7 @@ def __emit_transport_failure_summary(self): if self.__is_subdomains_scan() is True: tpl.info( - msg=( - 'Subdomain candidates without HTTP response: {0}. ' - 'These candidates were skipped without fail-streak abort.' - ).format(skipped) + msg='Skipped subdomain candidates without HTTP response: {0}.'.format(skipped) ) else: tpl.info( @@ -2515,6 +2512,14 @@ def __record_transport_failure(self, url): self.__transport_failure_streak += 1 streak = self.__transport_failure_streak + if is_subdomains_scan: + self.__emit_filtered_progress( + 'ignored', + ('ignored', url, '0B', '-'), + request_url=url, + ) + return + threshold = self.__transport_failure_threshold() path = helper.parse_url(url).path or str(url) @@ -2525,15 +2530,6 @@ def __record_transport_failure(self, url): if diagnostic: diagnostic_suffix = ' Last transport error: {0}'.format(diagnostic) - if is_subdomains_scan: - self.__debug_transport_failure( - ( - 'Subdomain candidate produced no HTTP response after configured timeout/retries: {path}. ' - 'Candidate skipped; subdomain scans do not use fail-streak aborts.{diagnostic_suffix}' - ).format(path=path, diagnostic_suffix=diagnostic_suffix) - ) - return - if streak < threshold: self.__debug_transport_failure( ( diff --git a/tests/test_core_http_tls.py b/tests/test_core_http_tls.py index 889768ed..c066fc72 100644 --- a/tests/test_core_http_tls.py +++ b/tests/test_core_http_tls.py @@ -61,6 +61,20 @@ def test_describe_tls_transport_error_ignores_non_tls_errors(self): self.assertIsNone(describe_tls_transport_error(Exception('connection refused'))) + def test_describe_tls_transport_error_ignores_dns_failures_with_tls_like_hostnames(self): + """DNS failures should not become TLS warnings because the hostname contains ssl/tls.""" + + samples = [ + "HTTPSConnection(host='mtls.localhost', port=443): Failed to resolve 'mtls.localhost' ([Errno 8] nodename nor servname provided, or not known)", + "HTTPSConnection(host='ssl.localhost', port=443): Failed to resolve 'ssl.localhost' ([Errno -2] Name or service not known)", + "NameResolutionError: Failed to resolve 'tls.example.test' (Temporary failure in name resolution)", + "Failed to resolve 'api-tls.example.test' (No address associated with hostname)", + ] + + for sample in samples: + with self.subTest(sample=sample): + self.assertIsNone(describe_tls_transport_error(Exception(sample))) + if __name__ == '__main__': unittest.main() diff --git a/tests/test_lib_browser.py b/tests/test_lib_browser.py index ce758f93..8f66f756 100644 --- a/tests/test_lib_browser.py +++ b/tests/test_lib_browser.py @@ -779,6 +779,8 @@ def test_http_request_never_aborts_subdomain_scan_on_transport_failures(self): debug_state = MagicMock() debug_state.is_scan_debug.return_value = True setattr(br, '_Browser__debug', debug_state) + progress_mock = MagicMock() + setattr(br, '_Browser__emit_filtered_progress', progress_mock) with patch('src.lib.browser.browser.tpl.debug') as debug_mock: br._Browser__http_request('https://admin.example.com') @@ -787,11 +789,16 @@ def test_http_request_never_aborts_subdomain_scan_on_transport_failures(self): self.assertEqual(client.request.call_count, 3) response_handler.handle.assert_not_called() + debug_mock.assert_not_called() + self.assertEqual(progress_mock.call_count, 3) + progress_mock.assert_any_call( + 'ignored', + ('ignored', 'https://admin.example.com', '0B', '-'), + request_url='https://admin.example.com', + ) self.assertEqual(getattr(br, '_Browser__transport_failure_streak'), 0) self.assertEqual(getattr(br, '_Browser__transport_failures_skipped'), 3) self.assertEqual(getattr(br, '_Browser__result')['total']['ignored'], 3) - self.assertIn('Subdomain candidate produced no HTTP response', debug_mock.call_args.kwargs.get('msg', '')) - self.assertIn('do not use fail-streak aborts', debug_mock.call_args.kwargs.get('msg', '')) def test_transport_failure_summary_uses_subdomain_specific_wording(self): """Subdomain transport misses should not mention reaching the directory fail-streak guard.""" @@ -807,8 +814,8 @@ def test_transport_failure_summary_uses_subdomain_specific_wording(self): info_mock.assert_called_once() message = info_mock.call_args.kwargs.get('msg', '') - self.assertIn('Subdomain candidates without HTTP response: 4', message) - self.assertIn('without fail-streak abort', message) + self.assertIn('Skipped subdomain candidates without HTTP response: 4', message) + self.assertNotIn('fail-streak', message) self.assertNotIn('--retries-fail-streak', message) def test_runtime_diagnostics_formats_subdomain_transport_misses_without_fail_streak(self): From 88b9fcc5c512e153dd15575c748df5f7af1c3768 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Tue, 26 May 2026 05:34:12 +0300 Subject: [PATCH 08/42] Reduce shadow sniffer false positives on soft-200 fallbacks --- CHANGELOG.md | 1 + data/directories.dat | 5 +- src/lib/browser/shadow.py | 197 ++++++++++++++++++++++++++++++- tests/test_lib_browser_shadow.py | 60 ++++++++++ 4 files changed, 257 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 66fb78b6..8bb9a90d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ CHANGELOG ======= v5.17.0 (xx.xx.2026) --------------------------- +- (fix) Shadow Copy sniffer false positives on soft-200/fallback routes by adding a negative-control probe before reporting backup-file variants. - (fix) subdomain scans so missing/no-response candidates are skipped without triggering the directory retry fail-streak abort guard. - (fix) directory scan prefix normalization so `--prefix locale` and `--prefix locale/` both scan under `/locale/` instead of concatenating paths as `/locale`. - (fix) `--auto-calibrate` now disables weak HTTP baselines when too many probes are blocked, ignored, or failed, preventing sparse signatures from over-filtering scan results. diff --git a/data/directories.dat b/data/directories.dat index 73de677c..93359e41 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -27972,6 +27972,7 @@ blogs.html blogs.moderation.php blogs.php blogs/.env +blogs_cat.php blogs_detalle.php blogs_full.php blogs_home.php @@ -50948,7 +50949,7 @@ filter.aspx filter.html Filter.php filter.php -filter/jmol/iframe.php?_USE=%22};alert(1337); +filter/jmol/iframe.php filter/jmol/js/jsmol/php/jsmol.php?call=getRawDataFromDatabase&query=file filter/jmol/js/jsmol/phpjsmol.php?call=getRawDataFromDatabase&query=file filterinput.php @@ -90080,6 +90081,7 @@ reach.cfm reach/sip.svc reachsip.svc react +react-dom-client.production.js react_todo/.env reacties reaction @@ -118932,6 +118934,7 @@ xml.php xml.rss xml/_common.xml xml/common.xml +xml/main/register.php xml/productsdotnetcmsversion.xml xml_common.xml xml_data diff --git a/src/lib/browser/shadow.py b/src/lib/browser/shadow.py index 2976f5ca..e65059dc 100644 --- a/src/lib/browser/shadow.py +++ b/src/lib/browser/shadow.py @@ -24,6 +24,12 @@ class ShadowProbe(object): MAX_SIZE_DELTA_RATIO = 0.25 SHADOW_STATUSES = {200} QUEUE_TIMEOUT_SEC = 0.25 + MIN_CONTROL_CANDIDATES = 2 + MIN_FALLBACK_CONTROL_SIMILARITY = 0.97 + CONTROL_SUFFIX = '.__healthcheck__' + CONTROL_STATE_PENDING = 'pending' + CONTROL_STATE_ALLOWED = 'allowed' + CONTROL_STATE_SUPPRESSED = 'suppressed' SOURCE_EXTENSIONS = { 'asp', 'aspx', 'bash', 'c', 'cfg', 'cgi', 'conf', 'config', 'cpp', 'cs', @@ -75,6 +81,7 @@ def __init__(self, request_callback, match_callback, progress_callback=None, del self.__suffixes = self.load_suffixes() self.__queue = Queue() self.__seen = set() + self.__base_control_states = {} self.__lock = threading.RLock() self.__submitted = 0 self.__completed = 0 @@ -415,6 +422,63 @@ def size_delta_ratio(cls, base_signature, candidate_signature): return abs(base_size - candidate_size) / float(max(base_size, candidate_size)) + @classmethod + def build_control_candidate(cls, url): + """ + Build one deterministic negative-control URL for fallback detection. + + The control keeps the same query string as the original URL so route + fallbacks that depend on query context are still detected, but appends a + suffix that should not exist as a real backup artifact. + + :param str url: base URL + :return: control URL, or None when the base URL cannot be parsed + :rtype: str|None + """ + + try: + parsed = urlsplit(str(url)) + except ValueError: + return None + + path = parsed.path or '' + if not path or path.endswith('/'): + return None + + return urlunsplit((parsed.scheme, parsed.netloc, '{0}{1}'.format(path, cls.CONTROL_SUFFIX), parsed.query, '')) + + @classmethod + def is_fallback_like_control(cls, base_signature, response): + """ + Return True when a negative-control URL behaves like the base response. + + Unlike real shadow matching, byte-identical responses are suspicious + here: a definitely-nonexistent suffix that returns the same page is a + soft-200/fallback signal, not a backup copy. + + :param dict base_signature: base response signature + :param object response: control response + :return: whether shadow candidates for this base URL should be suppressed + :rtype: bool + """ + + control_signature = cls.response_signature(response) + if not isinstance(base_signature, dict) or control_signature is None: + return False + + base_content_type = str(base_signature.get('content_type', '')) + control_content_type = str(control_signature.get('content_type', '')) + if base_content_type and control_content_type and base_content_type != control_content_type: + return False + + if cls.size_delta_ratio(base_signature, control_signature) > cls.MAX_SIZE_DELTA_RATIO: + return False + + if control_signature.get('hash') == base_signature.get('hash'): + return True + + return cls.similarity_ratio(base_signature, control_signature) >= cls.MIN_FALLBACK_CONTROL_SIMILARITY + @classmethod def is_match(cls, base_signature, response): """ @@ -502,8 +566,15 @@ def enqueue(self, base_url, base_response, bucket): if base_signature is None: return 0 + candidates = self.build_candidates(base_url, self.__suffixes) + with self.__lock: + if self.__submitted >= self.MAX_TOTAL_PROBES: + return 0 + + self.__enqueue_control_candidate(base_url, base_signature, candidates) + queued = 0 - for candidate_url, suffix in self.build_candidates(base_url, self.__suffixes): + for candidate_url, suffix in candidates: with self.__lock: if self.__submitted >= self.MAX_TOTAL_PROBES: break @@ -513,11 +584,39 @@ def enqueue(self, base_url, base_response, bucket): self.__submitted += 1 current = self.__submitted - self.__queue.put((base_url, base_signature, candidate_url, suffix, current)) + self.__queue.put(('candidate', base_url, base_signature, candidate_url, suffix, current)) queued += 1 return queued + def __enqueue_control_candidate(self, base_url, base_signature, candidates): + """ + Queue one internal negative-control probe before candidate probes. + + Controls are intentionally not counted in submitted/completed candidate + counters. They only decide whether a base URL is a soft-200/fallback + source that would otherwise create a burst of false shadow findings. + + :param str base_url: original base URL + :param dict base_signature: normalized base response signature + :param list[tuple[str, str]] candidates: generated shadow candidates + :return: None + """ + + if len(candidates) < self.MIN_CONTROL_CANDIDATES: + return + + control_url = self.build_control_candidate(base_url) + if not control_url: + return + + with self.__lock: + if base_url in self.__base_control_states: + return + self.__base_control_states[base_url] = self.CONTROL_STATE_PENDING + + self.__queue.put(('control', base_url, base_signature, control_url, self.CONTROL_SUFFIX, 0)) + def drain(self): """ Wait until all submitted shadow probes have completed. @@ -535,8 +634,9 @@ def __run(self): try: self.__process_task(task) finally: - with self.__lock: - self.__completed += 1 + if self.__is_control_task(task) is not True: + with self.__lock: + self.__completed += 1 self.__queue.task_done() def __process_task(self, task): @@ -547,7 +647,14 @@ def __process_task(self, task): :return: None """ - base_url, base_signature, candidate_url, suffix, current = task + task_type, base_url, base_signature, candidate_url, suffix, current = self.__normalize_task(task) + + if task_type == 'control': + self.__process_control_task(base_url, base_signature, candidate_url) + return + + if self.__is_base_suppressed(base_url) is True: + return if self.__delay > 0: time.sleep(self.__delay) @@ -570,3 +677,83 @@ def __process_task(self, task): if callable(self.__match_callback): self.__match_callback(candidate_url, candidate_response, metadata) + + @classmethod + def __normalize_task(cls, task): + """ + Normalize legacy and current shadow task tuples. + + :param tuple task: queued shadow task + :return: task type, base URL, base signature, candidate URL, suffix and counter + :rtype: tuple[str, str, dict, str, str, int] + """ + + if len(task) == 6: + return task + + base_url, base_signature, candidate_url, suffix, current = task + return 'candidate', base_url, base_signature, candidate_url, suffix, current + + @classmethod + def __is_control_task(cls, task): + """ + Return whether a queued task is an internal fallback-control task. + + :param tuple task: queued shadow task + :return: whether task is a control probe + :rtype: bool + """ + + try: + return len(task) == 6 and task[0] == 'control' + except TypeError: + return False + + def __process_control_task(self, base_url, base_signature, control_url): + """ + Process one internal negative-control probe. + + :param str base_url: original base URL + :param dict base_signature: base response signature + :param str control_url: generated control URL + :return: None + """ + + if self.__delay > 0: + time.sleep(self.__delay) + + try: + control_response = self.__request_callback(control_url) + except Exception: + self.__set_base_control_state(base_url, self.CONTROL_STATE_ALLOWED) + return + + if self.is_fallback_like_control(base_signature, control_response) is True: + self.__set_base_control_state(base_url, self.CONTROL_STATE_SUPPRESSED) + return + + self.__set_base_control_state(base_url, self.CONTROL_STATE_ALLOWED) + + def __set_base_control_state(self, base_url, state): + """ + Store fallback-control state for one base URL. + + :param str base_url: original base URL + :param str state: control state + :return: None + """ + + with self.__lock: + self.__base_control_states[str(base_url)] = state + + def __is_base_suppressed(self, base_url): + """ + Return whether shadow candidates for a base URL must be skipped. + + :param str base_url: original base URL + :return: whether candidates are suppressed as fallback noise + :rtype: bool + """ + + with self.__lock: + return self.__base_control_states.get(str(base_url)) == self.CONTROL_STATE_SUPPRESSED diff --git a/tests/test_lib_browser_shadow.py b/tests/test_lib_browser_shadow.py index 23a271a9..06be9e76 100644 --- a/tests/test_lib_browser_shadow.py +++ b/tests/test_lib_browser_shadow.py @@ -66,6 +66,14 @@ def test_should_enable_only_when_shadow_sniffer_is_selected(self): self.assertFalse(ShadowProbe.is_enabled(SimpleNamespace(is_sniff=True, sniffers=['secret']))) self.assertTrue(ShadowProbe.is_enabled(SimpleNamespace(is_sniff=True, sniffers=['shadow']))) + def test_control_suffix_should_not_expose_tool_name(self): + """Should keep negative-control URLs neutral for target logs.""" + + self.assertNotIn('opendoor', ShadowProbe.CONTROL_SUFFIX.lower()) + self.assertNotIn('shadow', ShadowProbe.CONTROL_SUFFIX.lower()) + self.assertTrue(ShadowProbe.CONTROL_SUFFIX.startswith('.')) + self.assertTrue(ShadowProbe.CONTROL_SUFFIX.endswith('__')) + def test_should_identify_file_like_seed_urls(self): """Should probe source/config-like files and skip directories/binary assets.""" @@ -209,6 +217,58 @@ def test_should_ignore_unrelated_shadow_candidate(self): self.assertEqual(probe.findings, 0) + def test_should_suppress_shadow_burst_when_control_matches_fallback(self): + """Should suppress fallback-like shadow bursts without lowering real matching rules.""" + + base_body = b'dashboard
same dynamic fallback body
' + base = self.make_response(body=base_body) + seen_urls = [] + matches = [] + + def request(url): + seen_urls.append(url) + if url.endswith(ShadowProbe.CONTROL_SUFFIX): + return self.make_response(body=base_body.replace(b'dashboard', b'dashboard ')) + return self.make_response(body=base_body + b'') + + probe = ShadowProbe(request, lambda url, response, metadata: matches.append((url, metadata))) + with patch.object(probe, '_ShadowProbe__suffixes', ['.bak', '.old', '.tmp']): + self.assertEqual(probe.enqueue('https://example.com/register-site-admin.php', base, 'success'), 3) + probe.drain() + + self.assertEqual(seen_urls, ['https://example.com/register-site-admin.php{0}'.format(ShadowProbe.CONTROL_SUFFIX)]) + self.assertEqual(matches, []) + self.assertEqual(probe.submitted, 3) + self.assertEqual(probe.completed, 3) + self.assertEqual(probe.findings, 0) + + def test_should_keep_real_shadow_candidate_when_control_does_not_match(self): + """Should preserve real shadow findings when the negative control is not fallback-like.""" + + base_body = b'\n' * 8 + shadow_body = base_body + b'// backup-only marker\n' + base = self.make_response(body=base_body, content_type='text/plain') + matches = [] + + def request(url): + if url.endswith(ShadowProbe.CONTROL_SUFFIX): + return self.make_response(body=b'not found', status=404, content_type='text/plain') + if url.endswith('.bak'): + return self.make_response(body=shadow_body, content_type='text/plain') + return self.make_response(body=base_body, content_type='text/plain') + + probe = ShadowProbe(request, lambda url, response, metadata: matches.append((url, metadata))) + with patch.object(probe, '_ShadowProbe__suffixes', ['.bak', '.old']): + self.assertEqual(probe.enqueue('https://example.com/index.php', base, 'success'), 2) + probe.drain() + + self.assertEqual(len(matches), 1) + self.assertEqual(matches[0][0], 'https://example.com/index.php.bak') + self.assertEqual(matches[0][1]['shadow_detection']['reason'], 'content_diff') + self.assertEqual(probe.submitted, 2) + self.assertEqual(probe.completed, 2) + self.assertEqual(probe.findings, 1) + def test_should_skip_non_success_non_file_like_binary_and_shadow_buckets(self): """Should keep active probing limited to success 200 file-like responses.""" From 99b94aa0e4647751ded32723b1728d18904a6366 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Tue, 26 May 2026 08:52:42 +0300 Subject: [PATCH 09/42] Suppress calibrated 404 bodies returned as 2xx --- CHANGELOG.md | 6 +- data/directories.dat | 1098 ++++++++++++++++- src/core/http/plugins/response/malware.py | 105 ++ src/lib/browser/calibration.py | 120 ++ ...test_core_http_plugins_response_malware.py | 79 ++ tests/test_lib_browser_calibration.py | 112 +- 6 files changed, 1510 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8bb9a90d..18e46305 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,13 +2,15 @@ CHANGELOG ======= v5.17.0 (xx.xx.2026) --------------------------- -- (fix) Shadow Copy sniffer false positives on soft-200/fallback routes by adding a negative-control probe before reporting backup-file variants. +- (fix) false-positive OK findings when a target returns a canonical 404/410 error body with a transient 2xx status by adding strict cross-status soft-error calibration. +- (fix) `--sniff shadow` false positives on soft-200/fallback routes by adding a negative-control probe before reporting backup-file variants. - (fix) subdomain scans so missing/no-response candidates are skipped without triggering the directory retry fail-streak abort guard. - (fix) directory scan prefix normalization so `--prefix locale` and `--prefix locale/` both scan under `/locale/` instead of concatenating paths as `/locale`. - (fix) `--auto-calibrate` now disables weak HTTP baselines when too many probes are blocked, ignored, or failed, preventing sparse signatures from over-filtering scan results. - (fix) reduced WAF-safe auto-calibration noise by using neutral calibration probe paths when `--waf-safe-mode` is enabled, avoiding high-risk `.php`, `.map`, `admin`, and `wp-*` probe shapes. -- (fix) reduced `--sniff malware` false positives for standard Bitrix admin login pages by allowlisting the built-in hidden `auth_frame` iframe only when strong Bitrix login markers are present. +- (fix) `--sniff malware` false positives on security-plugin documentation by suppressing name-only webshell vocabulary in documentation context while preserving executable payload and shell UI detections. - (fix) clarified Runtime Diagnostics queue accounting by showing consumed items, submitted HTTP jobs, and pre-request skipped items separately. +- (enhancement) reduced `--sniff malware` false positives for standard Bitrix admin login pages by allowlisting the built-in hidden `auth_frame` iframe only when strong Bitrix login markers are present. - (dictionary) cleaned and normalized the internal directories list (+XXX potential interesting paths). v5.16.1 (24.05.2026) diff --git a/data/directories.dat b/data/directories.dat index 93359e41..05d67ed9 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -1924,6 +1924,7 @@ 403.php 403.shtml 403_manage.phtml +403bypass 403error.htm 403error.html 403error.php @@ -3808,7 +3809,6 @@ 7214.html 7215.html 7218.html -7243A_ODU_UDP_DL_OTA_Aisspan_eNB_R1.0.6.log 7279.php 7280.php 7288.php @@ -4848,6 +4848,7 @@ .addressbook .adm .admin +.admin.php.swp .adminer.php.swp .Administration .administration @@ -5186,6 +5187,7 @@ .db .db3 .db.env +.db.php.swp .db.xml .db.yaml .dbeaver/credentials-config.json @@ -5764,6 +5766,7 @@ .htaccess.orig .htaccess.sample .htaccess.save +.htaccess.swp .htaccess.txt .htaccess_extra .htaccess_orig @@ -6009,6 +6012,7 @@ .log.txt .logfile .login +.login.php.swp .login_conf .logout .logs @@ -6101,6 +6105,7 @@ .nbgrader.log .nbproject .neomail +.nessus .net .netrc .netrwhist @@ -6266,6 +6271,7 @@ .pmd .pmtignore .png +.pnpm-store .pocketpc .poggit.yml .pomerium @@ -6776,6 +6782,7 @@ .well-known/ashrae .well-known/assetlinks.json .well-known/autoconfig/mail +.well-known/bimi .well-known/browserid .well-known/caldav .well-known/carddav @@ -6790,6 +6797,7 @@ .well-known/enterprise-transport-security .well-known/envoy .well-known/est +.well-known/est/cacerts .well-known/genid .well-known/hoba .well-known/host-meta @@ -6813,12 +6821,14 @@ .well-known/ni .well-known/nodeinfo .well-known/oauth-authorization-server +.well-known/oauth-protected-resource .well-known/okta-organization .well-known/openai-plugin.json .well-known/openid-configuration .well-known/openid-federation .well-known/openorg .well-known/openpgpkey +.well-known/passkey-endpoints .well-known/pki-validation .well-known/pomerium .well-known/pomerium/jwks.json @@ -6827,6 +6837,7 @@ .well-known/reload-config .well-known/repute-template .well-known/resourcesync +.well-known/robots.txt .well-known/security.txt .well-known/stun-key .well-known/thread @@ -6835,7 +6846,9 @@ .well-known/traffic-advice .well-known/uma2-configuration .well-known/void +.well-known/webauthn .well-known/webfinger +.well-known/well-known .well-knownacme-challenge .well-knownapple-app-site-association .well-knownapple-developer-merchant-domain-association @@ -7046,11 +7059,13 @@ __adminer.php __backup __bx_log.log __cache +__cf_chl_jschl_tk__ __clockwork/app __clockwork/latest __createdb.php __data __debug__ +__docs__ __documents __dummy.html __errfiles__ @@ -7079,6 +7094,7 @@ __php_errors.log __pma___ __pycache__ __recovery +__redoc__ __SQL __swagger__ __temp__ @@ -7246,6 +7262,8 @@ _beta _bin _bkup _blank.asp +_blazor +_blazor/negotiate _blog _blulab _bo @@ -7414,6 +7432,7 @@ _disc _disc1 _disc2 _dist +_dmarc.txt _doc _Dockerfile _docs @@ -7667,6 +7686,9 @@ _mapping _mappings _master _masters +_matrix/client/r0/login +_matrix/client/r0/register +_matrix/federation/v1/version _media _medienid _mem_bin @@ -8184,6 +8206,7 @@ a-004.htm a-005.htm a-006.htm a-007.htm +a-b a-blog a-propos a-propos.php @@ -8265,6 +8288,7 @@ aaapremier aaasc aaasocalifornia aaatexas +aad aadm.html aadmin aadmin.php @@ -8301,6 +8325,7 @@ aatest aau ab ab-test +ab-test/results ab.framework ab/docs ab_test @@ -8462,6 +8487,8 @@ aboutus.htm aboutus.html aboutus.php aboutus.shtml +ABP +abp/api abpost.php abraham abrametas-prod.php @@ -9403,6 +9430,7 @@ aclogic acls acm acme +acme-challenge acme-challenge/.env acme/.env acme_challenges/.env @@ -9487,8 +9515,10 @@ action.topic.php action.transfer.php action.upload.php action.validate.php +action_cable action_custom.php action_emty.php +action_mailer actionalert.asp actionapps actionfile @@ -9556,12 +9586,15 @@ active.asp active.html active.log active.php +active_admin +active_admin/dashboard active_polls.asp active_port_get.cfm active_power_out.php active_topics.asp active_total_power.php active_users.asp +activeadmin activecalendar.php activecampaign activeCollab @@ -9614,6 +9647,7 @@ activity.php activity_char.php activity_favs.php activitynames.php +activitypub activitysessions/docs activkey Activpp @@ -9691,6 +9725,7 @@ actuator/caches actuator/conditions actuator/configprops actuator/configurationMetadata +actuator/druid actuator/dump actuator/env actuator/events @@ -9726,6 +9761,7 @@ actuator/shutdown actuator/springWebflow actuator/sso actuator/ssoSessions +actuator/startup actuator/statistics actuator/status actuator/threaddump @@ -11758,6 +11794,8 @@ ADMIN.php Admin.php admin.php3 admin.php.back +admin.php.orig +admin.php.swp admin.phpadmin.html admin.phtml Admin.pl @@ -16617,7 +16655,9 @@ administrator/maintenance administrator/manage.php administrator/manager.php administrator/manifests +administrator/manifests/files/joomla.xml administrator/manifests/filesjoomla.xml +administrator/manifests/packages administrator/media administrator/member administrator/member.php @@ -18264,6 +18304,7 @@ affiliate.js affiliate.php Affiliate.php affiliate/login +affiliate/track affiliate_admin affiliate_admin.php affiliate_area.php @@ -18881,6 +18922,7 @@ ainfo.php ainstall ainstall.json ainstall.php +aiohttp aiops aiops/admin.php aiops/config.php @@ -18916,6 +18958,7 @@ airaksinen airasiago airbnb airbnb-get.php +airbrake airconditioner1.php airconditioner2.php airconditioner3.php @@ -19121,6 +19164,7 @@ ajuiza_grava_f.php ajuiza_pg_00_f.php ajx ajxaction +ajxp.php ak ak47.php ak47.phtml @@ -19129,6 +19173,7 @@ ak74shell.php AK-74.php ak-systems akamai +akamai/purge akarru akatsuki akce @@ -19289,6 +19334,9 @@ aleatorio.php alegria aleja alemania +alembic +alembic/env.py +alembic/versions alentum alert alert.asp @@ -19777,6 +19825,8 @@ amp amp.php ampache amphor@ +amplitude/2/httpapi +amplitude/httpapi amqp amrefresh.asp amrhein @@ -19877,28 +19927,39 @@ analytics.html analytics.php analytics.txt analytics/admin +analytics/alias +analytics/api analytics/api.php +analytics/batch analytics/chart.php analytics/check.php +analytics/collect analytics/csv.php analytics/dashboard analytics/dashboard.php analytics/data.php +analytics/event +analytics/events analytics/graph.php +analytics/group analytics/health.php +analytics/identify analytics/index.php analytics/json.php analytics/login analytics/metrics.php analytics/monitor.php +analytics/page analytics/panel.php analytics/probe.php analytics/report.php analytics/saw.dll?bieehome&startPage=1#grabautologincookies analytics/saw.dll?getPreviewImage&previewFilePath=/etc/passwd analytics/saw.dll?getPreviewImage&previewFilePath=/etcpasswd +analytics/screen analytics/stats.php analytics/status.php +analytics/track analytics/view.php analytics/xml.php analyticstracking.php @@ -20416,8 +20477,10 @@ api-gateway/.env.dev api-gateway/.env.local api-gateway/.env.production api-gateway/.env.staging +api-key api-key.json api-key.php +api-keys api-keys.txt api-reference api-v12.php @@ -20437,6 +20500,7 @@ api.py api.tar.gz api.tgz api.txt +api.wsdl api.xml api.zip api/2/explore @@ -20466,6 +20530,7 @@ api/.env_1.bak api/__swagger__ api/_preferences api/_swagger_ +api/abp/application-configuration api/access api/access.log api/Account/Login @@ -20586,6 +20651,8 @@ api/auth api/auth.config api/auth.php api/auth/csrf +api/auth/local +api/auth/local/register api/auth/login api/auth/providers api/auth/session @@ -20794,6 +20861,7 @@ api/cluster/spec api/cluster_conf api/collections api/collections.list +api/collections/users/records api/command api/command/list api/command/ping @@ -20868,10 +20936,12 @@ api/device/report api/device/service api/devices api/devservices +api/diagnostics api/doc api/docs api/documents.list api/documents.search +api/dynamicdata api/edges api/emails api/embed @@ -21065,6 +21135,7 @@ api/monitor api/mpim.list api/nodes api/notice/alert +api/odata api/offline api/oomco_payment/get-failed-transaction-track-ids api/oomco_payment/get-failed-transaction-track-ids-debug @@ -21105,6 +21176,7 @@ api/prodservices api/profile api/profile/gateway api/profile/ping +api/profiler api/profiles/v1/biometric/verify api/profiles/v1/prelogin-check api/projects/search @@ -21125,6 +21197,8 @@ api/queries/search api/query_influxdb api/query_results api/queues +api/quota +api/rate-limit api/rawdata api/reactions.get api/reboot @@ -21140,6 +21214,7 @@ api/recommend/buy/volume api/recommend/list api/recommend/single/list api/recommend/tab +api/redoc api/reference api/refresh api/refresh_access_token @@ -21239,6 +21314,7 @@ api/scenario/name api/scenario/notice api/scenario/ping api/scenario/status +api/schema api/search api/search/character api/search/hot-keyword @@ -21415,6 +21491,7 @@ api/silenceget api/singleclient api/snapshots api/soap +api/soap/wsdl api/spec/swagger.json api/spec/swagger.yaml api/specswagger.json @@ -21480,6 +21557,7 @@ api/swagger/static/index.html api/swagger/staticindex.html api/swagger/swagger api/swagger/swagger-ui.html +api/swagger/ui api/swagger/ui/index api/swagger/uiindex api/swagger_doc.json @@ -21524,6 +21602,7 @@ api/testget api/testusers api/themes api/third/videodetail +api/throttle api/timelion/run api/timelionrun api/token @@ -21598,6 +21677,7 @@ api/users-permissions/permissions api/users-permissions/roles api/users.json api/users.list +api/users/count api/users/first-register api/users/me api/users/search @@ -21640,6 +21720,7 @@ api/v1/account/users api/v1/account/users/password api/v1/account/users/summaries api/v1/accounts +api/v1/actuator api/v1/admin api/v1/admin/cron api/v1/admin/orgs @@ -21654,6 +21735,7 @@ api/v1/archived-workflows api/v1/artifacts api/v1/asset/asset api/v1/asset/assets +api/v1/audit-log api/v1/auth api/v1/authorities api/v1/backend @@ -21665,9 +21747,11 @@ api/v1/broker-admin api/v1/broker/msg api/v1/buckets api/v1/canal/config/1/1 +api/v1/certificates api/v1/channels.list api/v1/cloak api/v1/cluster-workflow-templates +api/v1/clusters api/v1/common/accounts api/v1/common/connections api/v1/common/notifications @@ -21690,6 +21774,7 @@ api/v1/delta/monitoring/accounts api/v1/delta/order api/v1/delta/userAssets api/v1/deploy +api/v1/deployments api/v1/digitalone-cnl-facebook/is-churn api/v1/digitalone-cnl-facebook/post-token api/v1/directory @@ -21698,11 +21783,13 @@ api/v1/dns/nameservers api/v1/docs api/v1/employees api/v1/endpoints +api/v1/environments api/v1/event-sources api/v1/events api/v1/exportclients api/v1/fc/bot api/v1/fc/init +api/v1/feature-flags api/v1/files api/v1/finchat-control api/v1/finchat/contact/manager @@ -21727,6 +21814,7 @@ api/v1/healthcheck api/v1/history/history api/v1/importclients api/v1/info +api/v1/integrations api/v1/integrations.list api/v1/keys api/v1/knowledge @@ -21735,6 +21823,7 @@ api/v1/label//values api/v1/label/__name__/values api/v1/label/job/values api/v1/licenses.get +api/v1/limits api/v1/login api/v1/logs/search api/v1/machine @@ -21772,6 +21861,7 @@ api/v1/password api/v1/peers api/v1/permissions.listAll api/v1/persistentvolumes +api/v1/pipelines api/v1/platform api/v1/platform/crypto/public api/v1/platform/server @@ -21791,6 +21881,7 @@ api/v1/query api/v1/query_range api/v1/query_range?query=up&start=1633730000&end=1633733600&step=15s api/v1/quotes +api/v1/rate-limits api/v1/registration api/v1/registry api/v1/remark @@ -21800,6 +21891,7 @@ api/v1/repository api/v1/roles.list api/v1/routes api/v1/rules +api/v1/runner api/v1/savefile api/v1/secrets api/v1/security/csrf_token @@ -21863,8 +21955,11 @@ api/v1/users.list api/v1/users/me api/v1/users/me/settings api/v1/users/search +api/v1/variables api/v1/version +api/v1/webhooks api/v1/workflow-templates +api/v1/workspace api/v1/workspaces api/v1mainMenus api/v1pod @@ -21893,6 +21988,7 @@ api/v2.0/users api/v2/.env api/v2/access api/v2/activity_stream +api/v2/actuator api/v2/admin api/v2/app api/v2/application.wadl @@ -21931,8 +22027,10 @@ api/v2/current_user api/v2/current_user/owner api/v2/dashboard api/v2/dashboards +api/v2/deployments api/v2/docs api/v2/explore/tab +api/v2/feature-flags api/v2/feed api/v2/graphiql api/v2/graphql @@ -21942,16 +22040,19 @@ api/v2/healthcheck api/v2/helpdesk/discover api/v2/helpdeskdiscover api/v2/hosts +api/v2/integrations api/v2/inventories api/v2/job_templates api/v2/jobs api/v2/keys +api/v2/limits api/v2/login api/v2/me api/v2/mobile api/v2/organizations api/v2/orgs api/v2/ping +api/v2/pipelines api/v2/playground api/v2/private api/v2/projects @@ -21986,6 +22087,8 @@ api/v2/user/system/versioninfo api/v2/users api/v2/verification/create api/v2/verification/financer +api/v2/webhooks +api/v2/workspace api/v2/workspaces api/v2/write api/v2swagger.json @@ -22123,13 +22226,17 @@ apikey apikey/auth.php apikey/authenticate.php apikey/check.php +apikey/create apikey/default.php apikey/home.php apikey/index.htm apikey/index.php +apikey/list apikey/login.php apikey/main.php +apikey/revoke apikey/signin.php +apikey/validate apikey/validate.php apikey/verify.php apikeymanager @@ -22298,6 +22405,7 @@ aplicacion aplicaciones aplio apm +apm/intake/v2/events apm/ui apns apoll @@ -22449,6 +22557,9 @@ app/configparameters.ini app/configparameters.yml app/configroutes.cfg app/configschema.yml +app/Controller/AdminController.php +app/Controller/AppController.php +app/Controller/UsersController.php app/controllers app/dashboard app/dev @@ -22496,6 +22607,8 @@ app/languages.xml app/log app/login app/logs +app/metrics +app/Model/User.php app/models app/phpunit.xml app/private @@ -22524,7 +22637,10 @@ app/unschedule.bat app/vendor app/vendor- app/vendor-src +app/version +app/View/Users app/views +app/webroot/index.php app_ app_admin app_admin.php @@ -22913,6 +23029,8 @@ appraisal/stats.php appraisal/status.php appraisal/view.php appraisal/xml.php +apprise/notify +apprise/stateless/notify approval approval.html approve @@ -22949,6 +23067,7 @@ AppServer.php AppServer.phtml appsettings.config appsettings.json +appsignal AppsLocalLogin AppsLogin appsmith @@ -23030,6 +23149,11 @@ appveyor/stats.php appveyor/status.php appveyor/view.php appveyor/xml.php +appwrite/v1/account +appwrite/v1/databases +appwrite/v1/functions +appwrite/v1/storage +appwrite/v1/users apr apr.html aprcalc @@ -23091,6 +23215,7 @@ arama.html arama.php aran.aspx aranan.php +arangodb aranjuez.html arantius araquote.html @@ -23353,6 +23478,8 @@ arte arteddel.php artem2k.html artform.cfm?id= +arthas +arthas/api artho arthritis arthur @@ -23496,6 +23623,7 @@ articulo.php articulos articulos.php artifactory +artifactory/api artifactory/api/build artifactory/api/repositories artifactory/api/search/artifact @@ -23508,6 +23636,7 @@ artifactory/api/storageinfo artifactory/api/system/configuration artifactory/api/system/ping artifactory/api/system/version +artifactory/artifactory/api artifacts artigos artikel @@ -23889,6 +24018,7 @@ assets/config.rb assets/credentials.json assets/fckeditor assets/file +assets/fonts assets/inventory assets/js/fckeditor assets/jsfckeditor @@ -24122,6 +24252,8 @@ attribute Attribute.php attributes attributes/restSearch +attribution +attribution/track AttrTransform.php AttrTypes.php AttrValidator.php @@ -24191,6 +24323,11 @@ audit.html audit.log audit.php audit.txt +audit/events +audit/logs +audit/reports +audit/trail +auditbeat auditevents auditevents.json auditing @@ -24254,6 +24391,9 @@ autentificare.php auteur auth Auth +auth0/callback +auth0/login +auth-bypass auth.asp auth.aspx auth.bak @@ -24290,19 +24430,33 @@ auth/admin/master/console auth/administrator auth/administrator.php auth/apple +auth/apple/callback +auth/auth0/callback +auth/aws-cognito/callback +auth/azure/callback +auth/bitbucket/callback auth/callback auth/catalogue auth/data.php auth/data.xml auth/discord +auth/discord/callback auth/do.php auth/edit.php auth/enter auth/enter.php auth/facebook +auth/facebook/callback auth/github +auth/github/callback +auth/gitlab/callback auth/google +auth/google/callback +auth/jwks +auth/keycloak/callback +auth/keys auth/linkedin +auth/linkedin/callback auth/log.dat auth/log.log auth/log.txt @@ -24316,8 +24470,10 @@ auth/login.shtml auth/logon auth/logon.php auth/microsoft +auth/microsoft/callback auth/oauth auth/oidc +auth/okta/callback auth/panel auth/panel.php auth/pass @@ -24340,9 +24496,11 @@ auth/sign.php auth/signin auth/signin.php auth/slack +auth/slack/callback auth/sso auth/token auth/twitter +auth/twitter/callback auth/v1/admin/users auth/v1/settings auth_ads.php @@ -24400,6 +24558,7 @@ authkey.asp authlog.dat authlog.log authlog.txt +authlogic authlogin authlogin.asp authlogin.html @@ -24562,6 +24721,7 @@ autopass autopilot autoplay.php autopromo +autopsy autoptimize autor autor.php @@ -24887,11 +25047,14 @@ azsdfrtbhnj789 aztecs aztek azure +azure-ad azure-pipelines.yaml azure-pipelines.yml azure/admin azure/console +azuread azureadmin +azurecdn azureus b B @@ -25819,6 +25982,7 @@ backup-2022.zip backup-2023.zip backup-2024.zip backup-all.php +backup-codes backup-data backup-db backup-dir @@ -25895,9 +26059,12 @@ backup/login backup/mysql/.env backup/panel backup/res/.env +backup/restore backup/schedules backup/vendor/phpunit/phpunit backup/vendor/phpunit/phpunit/phpunit +backup_2024.sql +backup_2025.sql backup_db backup_dir backup_entry.cgi @@ -26095,6 +26262,7 @@ bamb bamboo bamboo-specs/bamboo.yml bamboo.yml +bamboo/rest/api/latest bamboo/rest/api/latest/currentUser bamboo/rest/api/latest/plan bamboo/rest/api/latest/project @@ -26642,6 +26810,8 @@ BBApp BBApp.php bbb bbb.html +bbb/api +bbb/bigbluebutton/api bbbb bbbbbb bbboard @@ -26818,6 +26988,7 @@ bearbear bearbeiten bearer.txt bears +beat beater beatles beatrice @@ -26861,6 +27032,7 @@ beds bee beebee beehive +beekeeper BeenThere beer beethoven @@ -27138,6 +27310,7 @@ bfgbuy.php bfgdownload.php bfi bfiles +bfla bfm bg bg4r8y0v.php @@ -27231,6 +27404,7 @@ bigadmin bigb bigbanggravity bigbird +bigbluebutton bigbrother bigbrother.php3 bigdaddy @@ -27348,6 +27522,7 @@ bin.xml bin.zip bin/.env bin/catalina.sh +bin/cli bin/config.sh bin/console bin/contents.htm @@ -27724,6 +27899,7 @@ blazeds/messagebrokerhttp blazeds/messagebrokerhttpsecure blazemeter-index.php blazer +blazer/dashboards blazer/queries blazix blb @@ -28019,6 +28195,7 @@ bluadmin bluadmin.php blue blue365.aspx +blue-green blue/.env blueangel bluebell @@ -28342,6 +28519,7 @@ boke/Edit_Plus/FCKeditor/editor bokep.phtml bokning.html bol +bola boletim boletin boletines @@ -28546,6 +28724,8 @@ booksearch.aspx bookshelf bookshelf.php bookshop +bookstack +bookstack/login bookstep.aspx bookstore bookstore.html @@ -28609,6 +28789,7 @@ border.html Border.php borders borderware +borgbackup boricua boris borkindex.php @@ -28659,6 +28840,7 @@ bots.cnf bots.php botsi botsv +bottle bottom bottom1.php bottom.asp @@ -28872,6 +29054,7 @@ broadboard broadcast broadcast-ip broadcast.php +broadcast/live broadcasting broadcasting/auth broadcasts @@ -29114,6 +29297,7 @@ budget.asp budget.php budgetonline budgettext +budibase/api budlight budweiser buecher @@ -29157,6 +29341,7 @@ bugs.txt bugs.xml bugs/verify.php?confirm_hash=&id=1 bugsbunny +bugsnag bugsverify.php?confirm_hash=&id=1 bugtrack bugtracker @@ -29264,6 +29449,7 @@ bulk.php bulkadd.asp bulkdiscounts.asp bulkemail +bulkhead bulkmail bulkquery bulksms @@ -29304,6 +29490,7 @@ bunka bunnies bunny bunnyboo +bunnycdn bunnyslippers buoni-sconto bupa @@ -29324,6 +29511,7 @@ burner burningwhee1s burnwave, burp +burpsuite burst burst.html burtchen @@ -29905,6 +30093,7 @@ cabinet/withdrawals cabinet/workers cabinets cabins +cable cabletron caboose cabrera @@ -29930,8 +30119,21 @@ cache.html cache.old Cache.php cache.php +cache/clear +cache/flush cache/index.php +cache/info +cache/keys +cache/prewarm +cache/purge +cache/shell.php cache/sql_error_latest.cgi +cache/stats +cache/status +cache/tags +cache/v1/purge +cache/v2/purge +cache/warm cache_archiver.php cache_bbcodes.php cache_birthdays.php @@ -30359,6 +30561,8 @@ canada.php canadapost.php canal canales +canary +cancancan canced cancel Cancel @@ -30851,6 +31055,7 @@ casio casper caspsamp cassandra +cassandra-admin cassidy cassie Cassini.exe.config @@ -30936,8 +31141,10 @@ catalog/admin.php catalog/admin/login.php catalog/administator.php catalog/api +catalog/language/en-gb/common catalog/login.php catalog/login_diz.php +catalog/model/account catalog/product.asp?cat_id= catalog/product.asp?pid= catalog/viewtheme @@ -31312,6 +31519,13 @@ cdkey.txt cdm_ggao_tiezi.asp cdma cdn +cdn-cgi +cdn-cgi/beacon/performance +cdn-cgi/challenge-platform +cdn-cgi/l/chk_jschl +cdn-cgi/rum +cdn-cgi/specials/wrk +cdn-cgi/trace cdn/assets cdn/static cdomain @@ -31509,6 +31723,7 @@ certkey.asp certprov certprovlocalhost certs +certs/config certs/server.key certserv certserver @@ -31533,6 +31748,8 @@ cet cetelem cev cf +cf-cache-status +cf-ray cf_bulletin.cfc cf_calendar.cfm cf_nuke @@ -31682,23 +31899,39 @@ cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/etcpasswd cgi-bin/.env cgi-bin/a1stats/a1disp.cgi cgi-bin/a1statsa1disp.cgi +cgi-bin/admin cgi-bin/awstats cgi-bin/awstats.pl +cgi-bin/backup cgi-bin/bugzilla +cgi-bin/config cgi-bin/config.exp +cgi-bin/device +cgi-bin/dhcp +cgi-bin/diag +cgi-bin/dns cgi-bin/error_log +cgi-bin/factory +cgi-bin/firewall +cgi-bin/firmware +cgi-bin/home cgi-bin/htimage.exe cgi-bin/htimage.exe?2,2 cgi-bin/htmlscript cgi-bin/imagemap.exe cgi-bin/imagemap.exe?2,2 cgi-bin/index.html +cgi-bin/info +cgi-bin/lan +cgi-bin/log cgi-bin/logi.php cgi-bin/login cgi-bin/login.cgi cgi-bin/login.php cgi-bin/loginasp cgi-bin/loginphp +cgi-bin/luci +cgi-bin/main cgi-bin/mt7/mt-xmlrpc.cgi cgi-bin/mt7/mt.cgi cgi-bin/mt7mt-xmlrpc.cgi @@ -31711,14 +31944,35 @@ cgi-bin/mtmt-xmlrpc.cgi cgi-bin/mtmt.cgi cgi-bin/nagios3/status.cgi cgi-bin/nagios4/status.cgi +cgi-bin/nat +cgi-bin/network +cgi-bin/passwd cgi-bin/php cgi-bin/php.ini +cgi-bin/ping cgi-bin/printenv cgi-bin/printenv.pl +cgi-bin/reboot +cgi-bin/reset +cgi-bin/restore +cgi-bin/settings +cgi-bin/snmp +cgi-bin/status +cgi-bin/syslog +cgi-bin/system +cgi-bin/telnet cgi-bin/test-cgi cgi-bin/test.cgi +cgi-bin/traceroute +cgi-bin/upload cgi-bin/upload/web-ftp.cgi +cgi-bin/user cgi-bin/ViewLog.asp +cgi-bin/vpn +cgi-bin/wan +cgi-bin/webproc +cgi-bin/wifi +cgi-bin/wireless cgi-bin_ssl cgi-binawstats.pl cgi-binerror_log @@ -31815,6 +32069,7 @@ Cgishell.phtml Cgishell.pl cgishl CgiStart?page=Single +cgit cgitelnet.php cgiwin cgiwrap @@ -32188,12 +32443,14 @@ chartFile_Rev1.php chartimg.axd ChartImg.axd charting +chartmuseum charts charts-min.js charts.aspx charts.cfm charts.html charts.php +charts/index.yaml charts/liveObjects/.env charts_library chartSettings @@ -32775,6 +33032,7 @@ chronic chronicle chronik chrono24 +chronograf chs CHS cht @@ -32882,6 +33140,9 @@ circeos circle circle.yml circleci +circuit +circuit-breaker +circuitbreaker circuits cirkuitincludes cis @@ -33176,6 +33437,7 @@ classes/cookie.txt classes/db/DbPDO.php classes/gladius/README.TXT classes/gladiusREADME.TXT +classes/PaymentModule.php classes/SiteMap.php classes/upload/changes.txt classes/upload/documentation.htm @@ -33304,6 +33566,8 @@ clever clf cli cli.php +cli/execute +cli/run clic clic.asp clic.php @@ -33352,7 +33616,10 @@ clickedon clicker.php clickheat clickhere.aspx +clickhouse +clickhouse/query clickinfo +clickjacking clickme.cgi clickme.php clicknbuild @@ -33893,9 +34160,12 @@ cloud-hosting.php cloud-provider.yaml cloud.php cloud/admin +cloud/api cloud/console cloud_theme cloudbank/detail.asp?ID= +cloudbeaver +cloudbeaver/api clouder.asp cloudexp/application/configs/application.ini cloudflare @@ -33904,6 +34174,7 @@ cloudflare/admin cloudflare_credentials.txt cloudformation cloudfoundryapplication +cloudfront cloudmonitor.log.20210417 cloudmonitor.log.20210418 cloudmonitor.log.20210419 @@ -33963,6 +34234,8 @@ clubsinfo cluecentral clueless cluster +cluster/admin +cluster/api cluster/cluster cluster/config cluster/healthcheck @@ -34579,6 +34852,7 @@ codemasters codenames-frontend/.env codepages codepress +codereview codes codes.php codesearch @@ -34603,6 +34877,9 @@ coformat.txt coger cogito cognates.pdf +cognito +cognito/callback +cognito/login cognos coi coid @@ -34627,6 +34904,8 @@ colin coll_info collab collab-connect-web-application/server/.env +collabora +collabora/api collaboration collabtive collapse @@ -34914,6 +35193,7 @@ commander.php commandes commandfile Commands +commands commands.html commands.php commandshell.inc @@ -35034,6 +35314,7 @@ commissions commit commit.php COMMIT_EDITMSG +commits committed.html committee committee.php @@ -35306,6 +35587,7 @@ completeorder.aspx completesetup.php compliance compliance.php +compliance/reports complicated comply component @@ -35733,6 +36015,9 @@ config/app.yml config/AppData.config config/auth.php config/autoload +config/autoload/global.php +config/autoload/local.php +config/autoload/local.php.dist config/aws.yml config/banned_words.txt config/cable.yml @@ -35744,8 +36029,10 @@ config/config.toml config/config.yaml config/config.yml config/configuration.yml +config/core.php config/cucumber.yml config/database.php +config/database.php.default config/database.yaml config/database.yml config/database.yml.enc @@ -35787,6 +36074,7 @@ config/properties.ini config/push_ssh_keys.yml config/push_ssh_keys_remote.yml config/routes +config/routes.php config/routes.yml config/s3.yml config/secrets.yml @@ -35824,6 +36112,7 @@ config_add_news.php config_ads.php config_backup.php config_backup.sql +config_backup.tar.gz config_cache.php config_clicks.php config_cust.php @@ -36028,6 +36317,7 @@ conflocalhost conflogging.properties confluence confluence/admin +confluence/login.action confluence/pages/listpermissionpages.action confluence/pages/templates/createpagetemplate.action confluence/pages/templates/listpagetemplates.action @@ -36052,6 +36342,9 @@ confluence/plugins/servlet/oauthview-consumer-info confluence/plugins/servlet/upm confluence/plugins/servletembedded-crowd confluence/plugins/servletupm +confluence/rest/api/content +confluence/rest/api/space +confluence/rest/api/user confluence/spaces/addmailaccount.action confluence/spaces/exportspacehtml.action confluence/spaces/exportspacexml.action @@ -36109,9 +36402,15 @@ connect.php.bak connect.php~ connect/authorize connect/endsession +connect/facebook +connect/github +connect/google connect/introspect +connect/linkedin +connect/microsoft connect/revoke connect/token +connect/twitter connect/userinfo connect_db.php connect_old.php @@ -36178,6 +36477,7 @@ console/activity console/admin console/aml console/analytics +console/api console/api-keys console/api/api-keys console/api/apps @@ -36208,6 +36508,7 @@ console/categories console/cd console/ci console/clients +console/commands console/comments console/compliance console/config @@ -36761,6 +37062,7 @@ content-builder content-form content-images content-manager +content-type-builder content../.git/config content..json content.asp @@ -37514,6 +37816,7 @@ conversion.asp conversion.htm conversion.html conversion.php +conversion/track conversions convert convert-uulib @@ -37616,6 +37919,7 @@ coolsettings.cfm coolsite.cfm coolsites coolstuff.cfm +coolwsd cooolsoft coop COOP @@ -37793,9 +38097,11 @@ correo.php correoweb correspondence correu +cors corsi.php cortafuegos cortex +cortex/api/responder cortez coruna coruna,-a.html @@ -37831,7 +38137,10 @@ cottage cottage.html cottages cotton +coturn couchdb +couchdb/_all_dbs +couchdb/_session coucou.php cougar cougars @@ -38346,7 +38655,9 @@ CramMD5.php crap crapp crash +crash-reporting crash.log +crash/report crashes crawford crawl @@ -38358,6 +38669,7 @@ crawlprotect crawltrack cray crazy4u +crazy-egg crazygirl crc crc.corp.footer @@ -38647,6 +38959,8 @@ cronout2.php cronout.php cronrun.php crons +crons/admin +crons/list cronscripts crontab crontabs @@ -38684,6 +38998,7 @@ crosswords crot.phtml crotz.phtml crow +crowd crowd/console crowd/console/login.action crowd/consolelogin.action @@ -38705,6 +39020,7 @@ crss crtemplate.html crtr cru +crucible cruise cruise-holidays cruise-lines.php @@ -38812,6 +39128,7 @@ csm CSMA cso csp +csp-report csp/gateway/slc/api/swagger-ui.html csp/gateway/slc/apiswagger-ui.html csproj @@ -39557,6 +39874,8 @@ cv_rss_feeds.php cvc2.htm cvc2.html cvc.html +cve +cve-report cvnhelp.aspx cvnhelp.aspx.cs cvs @@ -39775,6 +40094,8 @@ dadmin.php dados daemon daemon.php +daemons +daemons/admin daffodil dagit dagit/graphql @@ -39907,6 +40228,7 @@ daryl das dasbhoard dash +dash/live dasha DASHBOARD dashboard @@ -40307,6 +40629,7 @@ data8888 data%23data.asp data-api.php data-files +data-layer data-nseries.tsv data-protection.asp data.7z @@ -40869,6 +41192,7 @@ datadm.asp datadm.aspx datadm.php datadog +datadog/intake datadump dataenter.php dataentry @@ -40907,6 +41231,7 @@ dataimages.php DataImport datakey datakommunikation +datalayer datalex dataLib.class.php datalogh.dtb @@ -41233,6 +41558,7 @@ db/dump db/dump.sql db/dumper.php db/enter.php +db/h2-console db/index.php db/item.html?item= db/login.php @@ -41277,6 +41603,8 @@ db_14.php db_15.php db_16.jsp db_16.php +db_2024.sql +db_2025.sql db__.init.php db_access.php db_admin @@ -41498,6 +41826,7 @@ dbdump.tgz dbdump.zip dbdumper.php dbdumps +dbeaver dbeditor dbef.php dbenter.php @@ -41511,6 +41840,7 @@ dbforms dbg dbg-wizard.php DBG.php +dbgate dbhost dbhotlink.php dbi @@ -42073,6 +42403,8 @@ delaware delaware.html delay delayed_job +delayed_job/failed +delayed_job/jobs delaylink.php delcart.php delcomment.php @@ -42485,6 +42817,7 @@ descs desctracker.php desenvolupament desenvolvimento +deserialization deserializer.php desgetfiles.aspx desi-hits.php @@ -42793,6 +43126,7 @@ devin Devine1 devis devis.php +devise devlink.php devlnull devnet @@ -42829,6 +43163,7 @@ dfa dfdf.php dfile.ashx dfile.php +dfir-iris dfnet dforum dfp_cookie.aspx @@ -42844,6 +43179,8 @@ dgidc2.php dgidc-2.php dgidc.php dgj +dgraph +dgraph/admin dgssearch dh dh_ @@ -42974,10 +43311,12 @@ diff.php difference difference.html difference.php +differential difficulty DiffieHellman.php diffs difftime.php +diffusion dig dig.asp dig_exhib.php @@ -43089,6 +43428,7 @@ diradminauth.php diradminlogin.php dirb dirbmark +dirbuster direct direct1 direct.htm @@ -43165,10 +43505,18 @@ directoryadmin.html directoryadmin.php directredirect.php directtopics +directus +directus/activity directus/collections directus/fields +directus/files +directus/permissions +directus/relations +directus/revisions +directus/roles directus/server/health directus/server/info +directus/settings directus/users directv directvdsl @@ -43209,6 +43557,7 @@ disappear disappearing disassembler disaster +disaster-recovery disc disc.asp disc.php @@ -43404,7 +43753,9 @@ disputes disseny dist dist.php +dist.tar.gz dist/.env +dist/fonts distance distance.php distancelearning @@ -43487,6 +43838,7 @@ dk dk-de dk-gb dkdk-myoffice.html +DKIM dkms.conf dkscript dl @@ -43542,6 +43894,7 @@ dm.html dm.php dmail dmanews +dmarc dmc dmca dmca-notice.html @@ -43914,6 +44267,8 @@ documents.jsf documents.php documents.vb documentum +docusaurus +docusaurus/api docuwiki dodaj-komentarz.php dodaj-strone @@ -44092,6 +44447,7 @@ doomsday door door.php door.phtml +doorkeeper doors doorway doow @@ -44393,6 +44749,7 @@ dragresizetable drama drama.html dramaqueen +dramatiq dratfs draver draw @@ -44607,8 +44964,10 @@ dtlimg.php dtlink dtmcms dtmp +dto dtool_pro.php DTool_Pro.php +dtos dtp dtproperties dtr @@ -44621,6 +44980,7 @@ du dual duanereade dubai +dubbo dubbo-admin dubee dubelu @@ -44694,6 +45054,8 @@ dump.zip dump/admin dump/admin.php dump/backup +dump_2024.sql +dump_2025.sql dumpadmin.php dumpenv dumper @@ -44724,12 +45086,15 @@ dunzip.php duo duo.html duo.php +duo/auth +duo/callback dupfiles duplicate Duplicate.php duplicate.php duplicate_rows.php duplicateFolderCases.php +duplicati dupont durango duration @@ -45272,6 +45637,9 @@ edenred edgar edgardo edge +edge/cache +edge/purge +edgecast edges edgewall edgy @@ -46473,6 +46841,9 @@ elaine elamor elanor elastic +elastic-apm-agent +elastic/security +elastic/siem elasticsearch elasticsearch/_mapping elasticsearch/_nodes @@ -47975,6 +48346,8 @@ epdqout.php epg ephotos epic +episerver +episerver/cms episerver/cms/admin episode episodes @@ -48205,6 +48578,7 @@ error-page.html error-page.php error-pages error-send.html +error-tracking error. error.7z error.2021-04-07.log @@ -48241,6 +48615,7 @@ error.xml error.zip error/.env error/error.log +error/report error_ error_403.htm error_403.html @@ -48404,7 +48779,9 @@ esbit.php esborrar esc escalate_issue.jsp +escalation escalation.pdf +escalations escapades escape escape.html @@ -48664,6 +49041,7 @@ eunomia eupdate euphoria.html eur +eureka eureka/apps eurl.axd euro @@ -48729,6 +49107,7 @@ evenements.php evennews_blocks.php event Event +event-bus event-calendar.html event-info.aspx event-map.asp @@ -48755,6 +49134,7 @@ event_listing.jsp event_post.php eventalbums.aspx eventbrite +eventbus eventcal eventcalendar eventdata @@ -48813,6 +49193,7 @@ events/_search events/detail.asp?ID= events/event-detail.cfm?intNewsEventsID= events/event.asp?id= +events/handlers events/index events/restSearch events/stream @@ -49015,6 +49396,7 @@ exception.cfm exception.log Exception.php exception.php +exception/report exception_log exception_log.txt exceptionerror.cfm @@ -49164,6 +49546,7 @@ experiences experiment experimental experiments +experiments/results expert expert.aspx expert.html @@ -49594,10 +49977,13 @@ facebox facedisc.html facefiles faces +faces/admin +faces/index.xhtml faces/javax.faces.resource/web.xml?ln=../WEB-INF faces/javax.faces.resource/web.xml?ln=..\\WEB-INF faces/javax.faces.resource/web.xml?ln=..WEB-INF faces/javax.faces.resourceweb.xml?ln=..\\WEB-INF +faces/login.xhtml facestones facetalkonline.php facileforms @@ -49658,6 +50044,7 @@ failed failed.htm failed.php failed_auth.html +failover failure failure-print.htm failure.asp @@ -49687,6 +50074,7 @@ falcons falconseye fall fall04.pdf +fallback fallback-reboot fallen falloutboy @@ -49849,6 +50237,7 @@ fashion_mosaic fasoo fast Fast_Lane_Checkout +fastapi fastbin fastfind fastforward @@ -49868,6 +50257,8 @@ fastlanescreenshots fastlanetest_output fastlink fastloads +fastly/purge +fastly/softpurge fastorder.aspx fastphp.ini fastpublish @@ -49892,6 +50283,8 @@ fatboy fatcat fatcow.php father +fathom +fathom/collect fatih1 fatman fatsecret @@ -50166,6 +50559,7 @@ feature.cfm feature.html feature.php feature.xml +feature/toggle feature_flags feature_list.php feature_request.jsp @@ -50383,6 +50777,7 @@ fffua.php ffmpeg ffr_cart.html fftw +ffuf fg fg_email_signup.htm fg_shopfromcat.html @@ -50563,6 +50958,7 @@ fileajaxUpload filearchive filebase filebased +filebeat filebin filebrowser/api/login filebrowser/api/settings @@ -50745,6 +51141,7 @@ files_13.php files_14.php files_15.php files_16.php +files_backup.tar.gz files_deleted files_log filesadmin.asp @@ -50846,6 +51243,8 @@ filessa.asp filessa.aspx filessa.php Filessearch.indexes +filestash +filestash/login filestest.asp filestest.aspx filestest.php @@ -51160,6 +51559,7 @@ firmen_export.php firms firms.php firmware +firmware/update firmy first first4internet @@ -51280,6 +51680,7 @@ flags flags.js.php flags.json flags.php +flags/admin flags/api flags/config flags/status @@ -51350,6 +51751,7 @@ flashgames flashindex.html flashobject.js flashpeak +flashphoner flashplayer flashs flashservices @@ -51500,8 +51902,11 @@ flowable-admin/app/rest/server-configs flowable-rest/service/management/engine flower flower.htm +flower/api flower/api/tasks flower/api/workers +flower/dashboard +flower/workers flowerfire flowerpower flowers @@ -51521,11 +51926,13 @@ flsh flu fluege fluent-bit +fluent-bit/api fluent-bit/api/v1/health fluent-bit/api/v1/metrics fluent.conf fluent_aggregator.conf fluentd +fluentd/api fluffy flughafenausbau fluidgames @@ -51656,6 +52063,7 @@ follow follow.html follow.php follow_link.php +follower followers following.php followup @@ -51810,11 +52218,15 @@ foresee foresight forest foretag +forever +forever/list forevernew forex forex.html forfaits.php forge +forgejo +forgejo/user/login forget forget.html forget.php @@ -52986,6 +53398,7 @@ fullsitemap.aspx fullsizecover fullsizegame FullStory.asp?Id= +fullstory/rec/bundle fulltext fulltext.php fulltextsearch.asp @@ -53174,6 +53587,7 @@ futuresoft futurestudents futurewave fuzz +fuzzing fuzzy_seofq fuzzymonkey fv @@ -53571,6 +53985,8 @@ gateway.htm gateway.html gateway.php gateway/.env +gateway/filters +gateway/refresh gateway/routes gatewayroutes gateways @@ -53661,6 +54077,7 @@ gcp gcp/admin gcp/console gcpayment +gcpcdn gcprocessipn.asp gcs_templates gcshared @@ -53933,11 +54350,13 @@ gernot geronimo gerrard gerrit +gerrit/a/changes gerrit/accounts/self gerrit/changes gerrit/config/server/info gerrit/config/server/version gerrit/groups +gerrit/login gerrit/projects gerson gert @@ -54326,6 +54745,7 @@ getSexo.php getShare.php getsiteversion.asp getsnap.php +GetSnapshot getsolutions GetSpeedAlerts.php GetSpeedLimit.php @@ -54439,6 +54859,10 @@ ghost/api/admin/site ghost/api/admin/users ghost/api/content/posts ghost/api/content/settings +ghost/api/v4/admin +ghost/api/v4/admin/settings +ghost/api/v4/admin/users +ghost/api/v4/content ghost/signin ghostdriver.log ghosts @@ -54580,19 +55004,32 @@ git/index git/logs/HEAD git/packed-refs git/refs/heads/master +gitbook gitea +gitea/api/v1/admin/users +gitea/api/v1/repos/search +gitea/api/v1/settings/api +gitea/api/v1/users/search +gitea/user/login github github-cache github-connect/.env github-recovery-codes.txt +github/api github_token.txt gitlab gitlab/admin +gitlab/api/v4/admin/users +gitlab/api/v4/groups +gitlab/api/v4/projects +gitlab/api/v4/users +gitlab/explore gitlog gitlog.dat gitpull.php gitweb gitweb.cgi +gitweb/?p=.git;a=summary give give.php giveadmin @@ -54889,12 +55326,14 @@ goaway.php goback goblue gobo.jsp +gobuster gocart.asp gocc gococo.php gocougs gocr god.php +god/status god_admin godaddy godbless @@ -54922,6 +55361,8 @@ gogogo gograboid.php gogreen.aspx gogs +gogs/api/v1/users/search +gogs/user/login gohome.js gohome.php gohomeframe.js @@ -55146,6 +55587,8 @@ gotcha gotcha.html gotdotnet gothic +gotify +gotify/message gotlinks.php gotmilk goto @@ -55920,9 +56363,11 @@ graf.php grafana grafana/api/admin/settings grafana/api/admin/stats +grafana/api/admin/users grafana/api/alerting grafana/api/annotations grafana/api/dashboards +grafana/api/dashboards/home grafana/api/datasources grafana/api/health grafana/api/org @@ -55976,6 +56421,7 @@ graph/query graph_cms graph_ex.php graph_update.php +graphene graphfactory.php graphic graphic-design @@ -55996,6 +56442,8 @@ graphiql/finland graphiqlfinland graphique.php graphite +graphite/metrics/find +graphite/render graphix graphjpgraph.php graphon @@ -56129,6 +56577,7 @@ grill grimm gringotts grip +grist/api groceries grok grokster @@ -56228,8 +56677,11 @@ growthbook/api/experiments growthbook/api/features grp GRP_WebShell.php +grpc +grpc-web grpc.health.v1.Health/Check grpc.reflection.v1.ServerReflection/ServerReflectionInfo +grr grs grsecurity grube @@ -56280,6 +56732,7 @@ gt gt-cache gt.php gta +gtag/js gtasoft gtcatalog gtchat @@ -56326,6 +56779,7 @@ guard.php guard.php.bak guard_nwcontent.php guardar +guarded guardednet Guardfile guardian @@ -56551,6 +57005,7 @@ h1.php h2 h2-console h2-h3.php +h2/console h2console h2opolo h4.php @@ -56726,6 +57181,10 @@ handys hangar-16.html hangaroo hangfire +hangfire/jobs +hangfire/recurring +hangfire/servers +hangfire/stats hangman hangman.php hanks @@ -56832,6 +57291,7 @@ haskell.php haslo.php hassan hastymail +hasura hasura/.env hat hata.asp @@ -57012,6 +57472,7 @@ healthCheck healthcheck.cfm healthcheck.html healthcheck.php +healthchecks-ui healthe-plex.asp healthe-pulse.asp healthe-shield.asp @@ -57019,10 +57480,13 @@ healthnotes.aspx healthprofile healthyyou.html healthz +heap/identify +heap/track heapdump heapdump.json heart heart-disease2.aspx +heartbeat heartbeat.aspx heartbeat.php heartbreaker @@ -57034,6 +57498,7 @@ heat.html heather heating-system.html heatmap +heatmap-data heatmaps heaven.html heavenly @@ -57113,6 +57578,7 @@ HelloWorldServlet HelloWorldServlet.jsp helly-hansen.php helm +helm/charts helm/values.prod.yaml helm/values.staging.yaml helm/values.yaml @@ -57207,6 +57673,8 @@ helperfiles helpers helpers.php helpers.php.bak +helpers/admin +helpers/debug helpfiles helpframe.aspx helpful @@ -57528,6 +57996,9 @@ hledej_2.php hln_index.jsp hloader hlp +hls +hls/live +hls/stream hlstats hlstats.php hlsw @@ -57776,6 +58247,7 @@ honest honesty honey honey.html +honeybadger honeybee honeycard.aspx honeyd @@ -57993,6 +58465,7 @@ hotelxml hotfoon hotfrog hotgirl +hotjar hotjobs hotline hotline.php @@ -58027,6 +58500,7 @@ hottopics.aspx.cs hottrends hotufi2 hotwebscripts +hotwire hou houdini.php hound @@ -58405,6 +58879,8 @@ hubble/v1/flows hubble/v1/nodes hubble/v1/status hubicka +hubs +hubs/chat hubspot-lead2.php hubspot-leads-all.php hubspot-leads-old.php @@ -58418,6 +58894,7 @@ hudsonlogin huedqz0d.php huelva huelva.html +huey huggel huggies huggiesau @@ -58822,6 +59299,7 @@ idmelden2.php idmelden.php idn idontknow +idor idp ids ids.log @@ -59880,6 +60358,8 @@ incerror_log incfacebook.php incfckeditor incfiles +incident +incidents incimages incl incl_db.php @@ -59970,6 +60450,7 @@ includes/admins.asp includes/admins.php includes/adovbs.inc includes/amad.php +includes/application_top.php includes/asp.aspx includes/awstats includes/b.php @@ -59988,6 +60469,7 @@ includes/cgi.pl includes/Cgishell.pl includes/changeall.php includes/configuration.php +includes/configure.php includes/configure.php~ includes/cp.php includes/cpanel @@ -60000,6 +60482,7 @@ includes/d.php includes/dam.php includes/data.sql includes/database/install +includes/database_tables.php includes/dom.php includes/downloads/dom.php includes/dz0.php @@ -60141,6 +60624,7 @@ includes/useradmin includes/vb.rar includes/vb.sql includes/vb.zip +includes/version.php includes/webadmin.html includes/whmcs.php includes/WolF.php @@ -60552,6 +61036,10 @@ index.php.tmp index.php.txt index.php.wordpress index.php.zip +index.php/apps/files +index.php/login +index.php/logout +index.php/settings/admin index.php_ index.php_bak index.php_bk @@ -60920,6 +61408,8 @@ indiana.php indianapolis indiaplaza indiatimes +indicator +indicators indice indice.html indiceizda.htm @@ -61000,7 +61490,9 @@ infinitesoftware infiniti infinity inflation-print.htm +influx influxdb +influxdb/query info Info info1.html @@ -61500,6 +61992,7 @@ inscription_oa.php inscriptioncli.srvl inscriptions insead.files +insecure-direct-object insenz.func.php insenz.inc.php insenz.php @@ -61678,6 +62171,7 @@ install/adminstrator install/adminstrator.php install/enter install/enter.php +install/includes install/index.php install/index.php?upgrade install/install.sh @@ -61773,6 +62267,7 @@ installupdate.log installweb.config installwordpress install~ +instana/trace instance instance/config.py instancefiles @@ -61869,6 +62364,7 @@ interceptor.php interceptors interchange Interchange.php +intercom interdit.php interdoc interesados.php @@ -62173,7 +62669,9 @@ inv invalid invalid.html invalid_login.asp +invalidate invalidatecache.asp +invalidation invalidcc.asp InvalidPromotion invalidrequest.aspx @@ -62276,6 +62774,8 @@ io io.php io.swf ioana +ioc +iocs iodine iohat604.php iol @@ -62972,6 +63472,8 @@ janles_mkr.htm janles_new.cgi janr.php januari +janus +janus/admin jap japan japan.html @@ -63309,10 +63811,18 @@ jingjing jingying jinzora jira +jira-service-management +jira/plugins/servlet/gadgets +jira/rest/api/2/issue +jira/rest/api/2/project +jira/rest/api/2/user jira/secure/Dashboard.jspa jira/secureDashboard.jspa jiran jiros +jitsi +jitsi-meet +jitsi/login jitterbug jiudian jive @@ -63495,8 +64005,11 @@ jobs.htm jobs.html jobs.php jobs.xml +jobs/admin +jobs/list jobs/send-email jobs/send-notification +jobs/status jobs_no.html jobsearch jobsearch.asp @@ -63604,6 +64117,7 @@ jolokia/exec/ch.qos.logback.classic jolokia/execch.qos.logback.classic jolokia/list jolokia/read +jolokia/search jolokia/version jolokialist jolokiaversion @@ -63967,6 +64481,7 @@ jsmenu json json-api json-min.js +json-rpc json.ini json.js JSON.php @@ -63983,6 +64498,7 @@ jsonlib.php jsonp jsonp.php jsonpost.php +jsonrpc jsonwrapper jsoutput jsp @@ -64131,6 +64647,7 @@ jump.php jump.php3 jump.phtml jumpauction.php +jumpcloud jumper.php jumphot.php Jumping.php @@ -64197,14 +64714,18 @@ jvs jvtools.html jw jwc +jwks jwks.json jwks.jwt jwplayer jws jwsdir +jwt jwt.key jwt.php +jwt/decode jwt/private.pem +jwt/verify jwt_secret.txt jwtTest.php jx44146l.php @@ -64347,6 +64868,7 @@ kansascity kanto kantoor kaosjs +kapacitor kapcsolat kapcsolat.html kaphotoservice @@ -64591,15 +65113,24 @@ key.php key.php.encryptd Key.txt key.txt +key/create +key/list +key/revoke key_assoc.php key_assoc.php3 key_form.jsp key_set.jsp keyadmin keyadmin.php +keybase.txt +keybase/config keyboard keyboard.asp +keycdn +keycloak keycloak.json +keycloak/auth +keycloak/realms/master keydetails keye keyence @@ -64617,7 +65148,10 @@ keys.php keys.txt keys.yaml keys.yml +keys/active +keys/all keystone +keystone/api keystore.jks keystore.pfx keystring @@ -64675,11 +65209,23 @@ kiara kiax kibana kibana/.env +kibana/api/fleet/agents +kibana/api/fleet/enrollment-api-keys kibana/api/saved_objects kibana/api/spaces kibana/api/status kibana/app +kibana/app/apm +kibana/app/dashboards +kibana/app/discover +kibana/app/fleet kibana/app/kibana +kibana/app/maps +kibana/app/ml +kibana/app/osquery +kibana/app/security +kibana/app/visualize +kibana/login kibanalogin.asp kibanalogin.jsp kibanalogin.php @@ -64713,6 +65259,7 @@ kijelentkezes.php kikay Kikou7734 kill +kill-switch kill.cgi killa killbill @@ -64923,6 +65470,7 @@ kokeshcms koko kolab kolab-syncroton/.env +kolide komentar-new.php komentar.php komentar_new.php @@ -65137,7 +65685,9 @@ kube kube-apiserver.log kube-controller-manager.log kube-proxy.log +kube-public kube-scheduler.log +kube-system kubeflow/jupyter kubeflow/pipeline kubeflow/pipeline/apis/v1beta1/pipelines @@ -65187,6 +65737,8 @@ kupon kupon.php Kurama.php kuratorium +kurento +kurento/api kurgan kurs kurs.php @@ -65362,6 +65914,7 @@ lamda.php lamejor lamer lamina.php +laminas laminat.html lamination lamm @@ -65705,6 +66258,7 @@ launch launch.aspx launch.html launch.php +launchd launchdarkly launcher launchpad @@ -65763,6 +66317,7 @@ lb-gb lb-monitoring.html lb.html lb.php +lb/config lbadmin lbadmin.php lbd.php @@ -66137,6 +66692,7 @@ letter.htm letter.html letter.php letter_opener +letter_opener_web letterhead letters letters.aspx @@ -66175,6 +66731,7 @@ lexus.html lf lfc/fixtures/superuser.xml lfc/fixturessuperuser.xml +lfi lfm.php lftp lg @@ -66317,6 +66874,7 @@ libraries libraries.asp libraries.aspx libraries.php +libraries/cms/version/version.php libraries/joomla/database libraries/joomla/version.php libraries/phpmailer @@ -66530,6 +67088,7 @@ lighting lightning lights lightspeed.php +lightstep/api/v0.1/reports lighttpd lighttpd.access.log lighttpd.error.log @@ -66571,6 +67130,9 @@ limited Limited limited, limits +limits/api +limits/current +limits/remaining limitTypes limo limpa.php @@ -66591,6 +67153,7 @@ line9 line_items linea.php linea_faq.jsp +linear/api/graphql linecontrol lines lines.aspx @@ -67085,6 +67648,7 @@ listen listen.php listener.log listener.php +listeners listeners?format=json listerpage.aspx listes @@ -67234,6 +67798,7 @@ live/.env.local live/.env.production live/.env.staging live/config.env +live/stream live_chat.html live_chat.php live_comments.php @@ -67269,6 +67834,8 @@ livehelp_step2.php livehelp_step3.php liveique_macros.vm livejournal +livekit +livekit/api livelife liveness livepages @@ -67378,6 +67945,7 @@ lnspiderguy lnvideos lo load +load-balancer/config load-scripts.php load-styles.php load.asp @@ -67579,6 +68147,7 @@ locus7shell.php locus7shell.phtml locus7shell.py locus.php +locust lodel lodges lodging @@ -67687,6 +68256,7 @@ log/payment.log log/payment_authorizenet.log log/payment_paypal_express.log log/production.log +log/report log/security.log log/server.log log/system.log @@ -67750,6 +68320,7 @@ logconfig.php logdata logdevelopment.dat logdevelopment.log +logdna logemann logerror.dat logerror.log @@ -67773,6 +68344,7 @@ LogfileSearch logfilesstorage LogfileTail logfileview +logflare/api/logs loggain.aspx logged loggedin @@ -67880,6 +68452,8 @@ login.php3 login.php5 login.php.bak login.php.old +login.php.orig +login.php.swp login.php~ login.phtml login.phyml @@ -67905,18 +68479,27 @@ login/admin/admin.asp login/adminadmin.asp login/administrator Login/adminlogin.aspx +login/apple Login/auth.php login/cpanel login/cpanel.asp login/cpanel.php +login/discord +login/facebook +login/github +login/google login/index login/index.php +login/linkedin login/login login/login.php +login/microsoft login/oauth Login/sign.php +login/slack login/super login/super.php +login/twitter login_ login_2.php login_@123 @@ -68193,6 +68776,7 @@ logproduction.log logreferrer.php logreport logreports +logrocket logrono.html logs LOGS @@ -68337,6 +68921,7 @@ logsurfer logsuser.log logswsadmin.traceout logswww-error.log +logtail logtest.log logtest.php logtmp @@ -68357,7 +68942,9 @@ loki loki.php loki/api loki/api/v1/labels +loki/api/v1/push loki/api/v1/query +loki/api/v1/query_range loki/api/v1/rules loki/api/v1/series loki/api/v1/tail @@ -68632,6 +69219,8 @@ lucasarts lucene lucent lucero +luci +luci-static luci.jsp.spy2009.jsp lucia lucian @@ -68669,6 +69258,7 @@ lulu lululemon lumb-entry.php lumbroso +lumen lumen.log lumigent luminox.php @@ -69029,6 +69619,7 @@ mac.php macadmin macallan macaroni1 +macaroon maccosmetics macedonia macedonia.html @@ -69607,6 +70198,11 @@ maintenance.html maintenance.php maintenance.shtml maintenance.txt +maintenance/disable +maintenance/enable +maintenance/off +maintenance/on +maintenance/status maintenance/test2.php maintenance/test.php maintenance_pages @@ -70311,6 +70907,7 @@ manager/subscriptions manager/system manager/tags manager/templates +manager/text manager/themes manager/tokens manager/trace @@ -70384,6 +70981,7 @@ manifest/cache manifest/logs manifest/tmp manila +maniphest manman mannheim manninen @@ -70610,6 +71208,7 @@ margaret margarida margie maria +mariadb mariage mariah mariajose @@ -70803,6 +71402,7 @@ master.tar.bz2 master.tar.gz master.zip master/.env +master/api master/login master/panel master/portquotes_new/admin.log @@ -70847,6 +71447,8 @@ masterRqmntsEN.php masters mastersfusion.br masthead +mastodon/api/v1/accounts/verify_credentials +mastodon/api/v1/instance mat mat880 mat.php @@ -70899,6 +71501,7 @@ matomo/index.php?module=API&method=API.getMatomoVersion matomo/login matriks matrikzgb +matrix matrix.js matrix.php matrix_engine @@ -70906,6 +71509,9 @@ matrox matsushita matt mattermost +mattermost/api/v4/system/ping +mattermost/api/v4/teams +mattermost/api/v4/users matthew matthews matthias @@ -70934,6 +71540,7 @@ max-templates/default/stylebbsmax_forum.css.fast.aspx max-wilhelm max.htm maxage +maxcdn MaxDepth.php maxdev maxheight.js @@ -71100,6 +71707,7 @@ meagan.asp meandyou measure measure.html +measurement measurements.pdf meaweb/os/mxperson meaweb/osmxperson @@ -71184,6 +71792,7 @@ mediakit mediakit.html mediakitnav.cfm mediamarkt +mediamtx medianamik mediapedia mediaplayer @@ -71194,9 +71803,13 @@ medias mediaserv mediasize.php mediaslash +mediasoup +mediasoup/api mediastore mediatext mediawiki +mediawiki/api.php +mediawiki/index.php medical medical.html medicare @@ -71810,6 +72423,7 @@ membres_dev membro membros memcache.php +memcache/flush memcache_test.php memcached memcached/.env @@ -72313,6 +72927,8 @@ mercuryboard mercurysteam meredith merge +merge-request +merge-requests merge.lib.php merge.php mergephrase.fil @@ -72586,6 +73202,7 @@ metric-api metric-apimetrics metric_tracking metric_tracking.json +metricbeat metrics metrics.json metrics.php @@ -72610,10 +73227,16 @@ mexico mexico-df.html mexico.htm mexico.html +mezmo mezuak +mezzio mf mfa +mfa/backup-codes mfa/challenge +mfa/disable +mfa/setup +mfa/verify mfg mfg.php mfgvsmodularhomes.x @@ -72772,6 +73395,7 @@ middleman middleware middleware.php middleware.php.bak +middlewares midget midhosting midi @@ -72823,6 +73447,7 @@ migrationinfo migrationlogin.php migrations migrations.php +migrations/versions migrationsauth.php migrationsign.php migrationsignin.php @@ -72851,6 +73476,7 @@ milano mildred milena miles +milestone milestones milestones.html Milestones.php @@ -72941,6 +73567,8 @@ mini4.php mini5.php mini-profiler-resources/flamegraph mini-profiler-resources/results +mini-profiler-resources/results-index +mini-profiler-resources/results-list mini.cgi mini.php mini.php5 @@ -72986,11 +73614,15 @@ minimum minina mining mininuke +minio minio/health/cluster minio/health/live minio/health/ready +minio/login minio/metrics/v3/cluster/health minio/metrics/v3/system/drive +minio/minio/health/cluster +minio/minio/login minions miniportail miniportal @@ -73095,6 +73727,8 @@ misha mishka misnotas.php misp +misp/attributes/restSearch +misp/events/index miss1.htm miss2.htm miss-video.com @@ -73165,13 +73799,17 @@ mix_entry.php mixed mixer mixes.php +mixpanel/engage +mixpanel/track mizuno mj +mjpg/video.mjpg mju.swf mk mk1hf63j.php mk.php mkdir +mkdocs mkdocs.yml Mkfile.old mkmf.log @@ -74161,9 +74799,11 @@ moneycard.php moneyorder.php mongo mongo-backup +mongo-compass mongo-cons.php mongo-db/bak-files/backup.bak mongo-express +mongo-express/db mongo-test.php mongo.log mongo.php @@ -74172,6 +74812,7 @@ mongodb mongodb/config/dev/.env mongodump mongodump.archive +mongoexpress mongolia.html mongoose mongotest.php @@ -74419,6 +75060,7 @@ mountain mountain-works.php mouse mouse1 +mouseflow mouseover.js mouser mousikomi.html @@ -74652,6 +75294,7 @@ mss-shop.nsf mssccprj.scc msservice mssql +mssql-admin mssql.asp mssql.aspx mssql.jsp @@ -74699,6 +75342,7 @@ mt/mt-xmlrpc.cgi mt/mt.cgi mt_images mta +mta-sts.txt mtapi.php mtb100 mtc @@ -75183,6 +75827,7 @@ mydomainadministrator.php mydomainlogin.php mydownload.php mydownloads +mydumper myebay myEditor myenv.php @@ -75614,8 +76259,10 @@ nacos/v1/auth/users?pageNo=1&pageSize=9 nacos/v1/auth/users?pageNo=1&pageSize=10 nacos/v1/console/namespaces nacos/v1/console/server/state +nacos/v1/cs/configs nacos/v1/cs/configs?dataId=&group=&tenant=&search=accurate nacos/v1/cs/configs?search=blur&dataId=&group=&tenant= +nacos/v1/ns/instance nacos/v1/ns/operator/servers nacos/v1/ns/service/list?pageNo=1&pageSize=100 nacos/v2/cs/config?dataId=&group=&namespaceId= @@ -75953,6 +76600,9 @@ nemo nenalinda neneng neo +neo4j +neo4j/browser +neo4j/db/neo4j/tx neoboard neocrome neomail @@ -76100,6 +76750,7 @@ netserver netsoft netsoltrademark.php netsolutions +netsparker netspell netstat netstats @@ -76887,6 +77538,7 @@ nextstep nextstep.aspx nextweb nexus +nexus/repository nf nf2004text nf.aspx @@ -76927,6 +77579,8 @@ nginx.conf nginx.conf.sample nginx.htaccess nginx/.env +nginx/cache/clear +nginx/cache/purge nginx/status nginx_access.log nginx_access.log.1 @@ -77051,6 +77705,7 @@ nikto nikung.php nikwax.php nilsen +nimble nimcache nimda nimrod @@ -77248,6 +77903,7 @@ node_modules node_modules/.env node_stats nodeadd +nodeinfo Nodejs-Projects/play-ground/login/.env Nodejs-Projects/play-ground/ManageUserRoles/.env nodes @@ -77553,6 +78209,7 @@ notifyme.action notifyme.asp notifyme.cfm notimportant +notion notizia.php notizie notizie.php @@ -77645,6 +78302,7 @@ npds nph-index.cgi nph-proxy.cgi nphp +npm npm-debug.log npm-shrinkwrap.json npm.json @@ -77726,6 +78384,7 @@ ntc ntdaddy.asp ntdaddy_v1.9.php NTDaddy_v1.9.php +ntfy ntlm_sasl_client.php ntlmaps ntmail @@ -77956,14 +78615,22 @@ oauth/admin oauth/authorization oauth/authorize oauth/callback +oauth/check_token +oauth/confirm_access oauth/device/code oauth/enter +oauth/facebook +oauth/github +oauth/google oauth/introspect +oauth/linkedin oauth/login +oauth/microsoft oauth/revoke oauth/signin oauth/token oauth/token/info +oauth/twitter oauth/userinfo oauth_secret.txt ob @@ -78071,6 +78738,10 @@ ocp.php ocportal ocr ocs +ocs/v1.php/apps +ocs/v1.php/cloud/groups +ocs/v1.php/cloud/users +ocs/v2.php/cloud/users ocsp ocsplocalhost oct06-sp.php @@ -78082,6 +78753,7 @@ oculto ocz6jsqm.php od oda.php +odata odbc odbc.aspx odbc.js @@ -78448,6 +79120,9 @@ oklahomacity okokok okqq okscripts +okta +okta/callback +okta/login oktoplay.pdf okwy_A_D_server.php okzhang1314 @@ -78649,6 +79324,7 @@ oms/admin oms_track omsk on +on-call on-line.html on.asp on_line.php @@ -78657,6 +79333,7 @@ ona onairsamdonaldson onboarding onbound +oncall oncology oncology.jsf ondemand @@ -78680,6 +79357,7 @@ oneadmin.phtml onecenter onecore onedotoh +onelogin oneorzero onepage onepiece @@ -78752,6 +79430,7 @@ onlineview.php only onlycern onlyme +onlyoffice onlyscript.info onmap.php onomisfotos @@ -78765,6 +79444,7 @@ ontario onthisday onuninstall.php onupdate.php +onvif onyx oo ooapp @@ -78864,6 +79544,8 @@ opencms openconf openconnect OpenCover +opencti +opencti/graphql opendb opendir opendir.php @@ -78878,6 +79560,8 @@ opener openfaq openfile openfind +openfire +openfire/login openforcead openftpd opengfs @@ -78889,6 +79573,9 @@ OpenID openid OpenID.php openid.php +openid/azure +openid/google +openid/okta openidcheck.php openinviter openjournal @@ -78904,6 +79591,7 @@ openobex openoffice OPENORDER.php openpgp +openpgpkey openphpnuke openpic.php openpkg @@ -78935,6 +79623,9 @@ openssl openstack openswan opentelemetry +opentelemetry/v1/logs +opentelemetry/v1/metrics +opentelemetry/v1/traces opentext opentime_bten2.php opentime_youku.php @@ -78946,6 +79637,7 @@ openui.log openurl openurl.asp openvas +openvas-scanner openview openvmps openvpn @@ -79313,7 +80005,10 @@ opros.html ops ops/admin ops/dashboard +ops/health +ops/metrics ops/vagrant/.env +opsgenie/api/v2/alerts opslag.php opsware opt @@ -79393,6 +80088,7 @@ oracl oracle oracle8.php oracle11.php +oracle-admin oracle.aspx oracle.jsp oracle.php @@ -79401,6 +80097,7 @@ oraclerewerewrew.php oracle脱裤脚本.jsp oradata oradb +oradmin oral.asp oral.pdf orange @@ -79970,9 +80667,13 @@ osog.php osp ospfd.conf osprey.php +osquery +osquery/api oss oss.html oss.php +ossec +ossec/logs ossim ossp osstoreadmin.php @@ -80026,6 +80727,8 @@ others.php others_chart.html othersbegin.asp othersites +otlp/v1/metrics +otlp/v1/traces oto oto1.html oto2.html @@ -80236,6 +80939,8 @@ own owncloud owncloud/.env owncloud/config +owncloud/index.php/login +owncloud/status.php owned owner owner.html @@ -80691,17 +81396,23 @@ packages.aspx packages.htm packages.html packages.php +packages/admin packages/api/.env packages/app/.env +packages/auth packages/client/.env packages/frontend/.env +packages/maven +packages/npm packages/plugin-analytics/src/fixtures/analytics-ga-key/.env packages/plugin-qiankun/examples/app1/.env packages/plugin-qiankun/examples/app2/.env packages/plugin-qiankun/examples/app3/.env packages/plugin-qiankun/examples/master/.env +packages/pypi packages/react-scripts/fixtures/kitchensink/template/.env packages/styled-ui-docs/.env +packages/user packages/web/.env packages_display.asp?ref= packagetrack.php @@ -80718,6 +81429,7 @@ packer_cache packers packet Packet.php +packetbeat packeteer packetpro.html packets @@ -80993,6 +81705,7 @@ Pager_Wrapper.php pagerank pagerank.php pagerduty +pagerduty/api/v2/incidents pagers pagerTest.php pages @@ -81472,6 +82185,7 @@ paperdemo_bill1.jsp papers papers.php paperthin +papertrail papichulo papigator papirkurv @@ -81596,6 +82310,7 @@ particle particulier partidos_pnvea.nsf parties +partition Partition.class.php partner partner1.html @@ -81960,6 +82675,7 @@ pasadena pascal pascal.php pascalau +paseto pasired.php pasmail.html paso @@ -82015,6 +82731,8 @@ passion passions passive passkey +passkey/authenticate +passkey/register passlist passlist.csv passlist.dat @@ -82276,6 +82994,8 @@ payline paylinki.mvc paylinkp.mvc payload +payload-admin +payloads paymanager payment payment2 @@ -82659,6 +83379,7 @@ peek peekaboo peel peel.php +peer peer.php peercast peerftp_5 @@ -82705,6 +83426,7 @@ penny pensacola pentaho pentax-store.html +pentest pentium penya penza @@ -82939,6 +83661,7 @@ pfs.php pftpl pfx pg +pg-admin pg.php pg_connect.php pg_customcode.asp @@ -82947,6 +83670,8 @@ pg_hba.conf pg_setup.asp pgadmin pgadmin4 +pgadmin4/browser +pgadmin4/login pgadmin.log pgadmin.php pgadmin/login @@ -82998,9 +83723,12 @@ pgm-tracking.php pgm-view_video.php pgosd pgp +pgp-key.txt +pgp/key pgpi pgpmail pgrefresh +pgrst pgs pgsql pgtId @@ -83010,6 +83738,9 @@ ph PH5P.php ph.php ph_vayv.php +phabricator +phabricator/login +phalcon phanmem phantasma.php PHANTASMA.php @@ -84038,6 +84769,7 @@ phpraid phprank phprecipebook phpRedisAdmin +phpredisadmin phpredmin phpremoteview.php PHPRemoteView.php @@ -84388,8 +85120,10 @@ pingback pingback.php pingconnection.php pinger.php +pingfederate pinglun pinglun.asp +pingone pingpong pingserver.php pingshen @@ -84430,6 +85164,8 @@ pirates pirates.php Pirates.php pirch +pirsch/event +pirsch/hit pisa.html pisces pisces-horoscope @@ -84460,6 +85196,7 @@ pixel pixel2.php pixel.asp pixel.php +pixel.png pixelbender.php pixelpost pixels @@ -84499,6 +85236,7 @@ pkginfo.aspx pkginfo.php pkgs pki +pki-validation pkinc pkr pkware @@ -84629,7 +85367,9 @@ platypus.php platz_login platz_login.php Platzauswahl.php +plausible/api plausible/api/v1/stats +plausible/event plaxo_cb.html Play play @@ -84847,6 +85587,7 @@ pluto plx plymouth pm +pm2/list pm2_5_2.php pm2_5_3.php pm2_5_4.php @@ -84996,6 +85737,7 @@ pocasi.asp pocet.php pochta2.html pocket +pocketbase pocketpc poczta pod @@ -85440,12 +86182,20 @@ portail portail_site.php portailphp portainer +portainer/api +portainer/api/containers/json portainer/api/endpoints +portainer/api/endpoints/1/docker/containers/json +portainer/api/images/json +portainer/api/networks portainer/api/registries +portainer/api/roles portainer/api/settings portainer/api/stacks portainer/api/status +portainer/api/teams portainer/api/users +portainer/api/volumes portainer/login Portal portal @@ -85884,6 +86634,8 @@ postmail postmail.html postmessage.aspx postmessage.php +postmortem +postmortems postnewad2.aspx postnuke postnukehtml @@ -87018,6 +87770,7 @@ privato privatschutz.htm prive privelink.asp +privilege-escalation PRIVILEGES privileges privkey.pem @@ -88166,10 +88919,14 @@ prom.html promanager promethe prometheus +prometheus/api/v1/alertmanagers prometheus/api/v1/alerts prometheus/api/v1/label/__name__/values +prometheus/api/v1/labels prometheus/api/v1/query prometheus/api/v1/rules +prometheus/api/v1/series +prometheus/api/v1/status/buildinfo prometheus/api/v1/status/config prometheus/api/v1/status/flags prometheus/api/v1/status/runtimeinfo @@ -88293,6 +89050,7 @@ propupdate prorat pros pros.php +prosody prosoft prospect prospect.asp @@ -88313,12 +89071,15 @@ protect.php protected protected/.env protected/config/console.php +protected/config/database.php protected/config/main.php protected/config/test.php protected/controllers +protected/controllers/SiteController.php protected/data protected/data/schema.mysql.sql protected/models +protected/models/User.php protected/runtime protected/views protected/yiic @@ -88339,6 +89100,7 @@ protel protetor proto proto.php +protobuf protocol proton prototipos @@ -88430,6 +89192,7 @@ proxy.php proxy.stream proxy.txt proxy.xml +proxy/config proxy_config.json proxy_error_bkrs2.php proxy_service.php @@ -88440,6 +89203,7 @@ proxyheader.php proxyport ProxyPriceInfo proxypwd +proxysql proxytest.jsp proxytui proxytunnel @@ -88666,6 +89430,7 @@ public/assets public/assets/.protected/.env public/config.js public/files +public/fonts public/hot public/index.php public/login @@ -88857,6 +89622,8 @@ puhovoi.php pui_link.html pujar pull +pull-request +pull-requests pullover.aspx pulse pulse/dashboard @@ -88872,6 +89639,7 @@ punbb115.inc.php punbb_users punchout punctweb +pundit puneet punetoret punish.php @@ -88918,6 +89686,7 @@ purepostpro purgatory purge purge.php +purge/cache PurifierLinkify.php purity purple @@ -88942,6 +89711,7 @@ pushlivecurl2.php pushlivecurl.log pushlivecurl.php pushlogs.log +pushover pushtestcurl.php pussy put @@ -89019,8 +89789,11 @@ py-compile py-livredor py-membres pyblosxom +pydio +pydio/index.php pydo pyj_artikutza.nsf +pypi pyproject.toml pyramid pyramid.htm @@ -89253,6 +90026,8 @@ quantum quantumsuccess.asp quarantine quarterly +quartz +quartz/jobs qub que que.php @@ -89339,8 +90114,11 @@ Queue queue queue.php queue.php.bak +queue/admin queue/email +queue/list queue/mail +queue/status queue_worker.php queues quezza @@ -89462,6 +90240,7 @@ quizzes quota quota.cgi quota.php +quota/status quotas quotation quotation.php @@ -89715,6 +90494,7 @@ rails-api/react-app/.env rails.php rails/actions rails/actions?error=ActiveRecord +rails/conductor rails/db rails/info rails/info/properties @@ -89723,6 +90503,7 @@ rails/info/routes rails/info/routes.json rails/infoproperties rails/mailers +rails_admin railsactions railsapp/config/storage.yml railway @@ -89765,6 +90546,7 @@ ramsite ran ranch rancher +rancher/v3/clusters rancid rand rand.php @@ -89863,6 +90645,8 @@ rate2.php rate-details.aspx rate-game rate-it.php +rate-limit +rate-limits rate-product.aspx rate-this rate-this-item @@ -89907,6 +90691,7 @@ rateit.asp rateit.aspx rateit.cgi rateit.php +ratelimit ratelink.php ratemypic ratenews.php @@ -90007,6 +90792,7 @@ rca rcart.asp rcblog rcc +rce rcf rcheckout.php rci.ashx @@ -90028,6 +90814,8 @@ rcjakar/adminlogin.js Rcjakar/adminlogin.php rcjakar/adminlogin.php rcLogin +rclone +rclone/api rcm rcms rcom.php @@ -90096,6 +90884,7 @@ reactivepower3.php Read read Read%20Me.txt +read-only read.asp Read.aspx read.aspx @@ -90179,8 +90968,10 @@ readmessage.cfm readmore.php readnews.asp readnews.php +readonly readpmsg.php readreviews.aspx +readthedocs readwx.cfm ready ready4xmas.html @@ -90477,6 +91268,7 @@ recoverpassword.jsp RecoverPassword.php recoverpassword.php recovery +recovery-codes recovery.aspx recovery.html recovery.php @@ -90680,10 +91472,12 @@ redis.log redis.php redis.txt redis/admin +redis/flush redis_credentials.txt redisadm redisadmin redisinsight +redisinsight/api redkernel redman redmine @@ -90775,6 +91569,7 @@ referral.htm referral.html referral.jsp referral.php +referral/track referral_add_set.php referral_asign.php referral_request.php @@ -91102,6 +91897,7 @@ rei reiki.html reimbursements reimg +reindex reindex_search.cfm reinstall reise @@ -91196,6 +91992,8 @@ releases.html releases.php releases.txt releases.xml +releases/latest +releases/tag releases_headlines_details.asp?id= relexample_project religion @@ -91274,6 +92072,11 @@ remote.htm remote.html remote.php remote.php/dav +remote.php/dav/addressbooks +remote.php/dav/calendars +remote.php/dav/files +remote.php/ocs/v2.php/apps/files +remote.php/webdav remote/fgt_lang?lang=/../../../../////////////////////////bin/sslvpnd remote/fgt_lang?lang=/../../../../////////////////////////binsslvpnd remote/fgt_lang?lang=/../../../..//////////dev/cmdb/sslvpn_websession @@ -91436,6 +92239,7 @@ replacement.php replacephotos.php replay replica +replica/api replicas replicate replicated @@ -91478,6 +92282,7 @@ report-detail.asp?id= report-error report-paper.php report-spam.html +report-uri report.7z report.asp report.aspx @@ -91531,6 +92336,8 @@ reportgame.php reportid reporting reporting/admin +reporting/v1/csp +reporting/v1/hpkp reportlisting.php reportlocation.aspx reportproduct.aspx @@ -91833,6 +92640,8 @@ residential residential-roofing.php residential.asp residents +resilience +resilience4j resim resim.php resimler @@ -91933,8 +92742,14 @@ resources/docker/phpmyadmin/.env resources/docker/rabbitmq/.env resources/docker/rediscommander/.env resources/fckeditor +resources/lang/en/auth.php +resources/lang/en/messages.php +resources/lang/en/passwords.php +resources/lang/en/validation.php +resources/lang/ru/messages.php resources/sass/.sass-cache resources/tmp +resources/translations/en.yaml resources/views resources/views/admin/dashboard.blade.php resources/vulnerabilities_list.asp?id= @@ -91975,6 +92790,10 @@ resposta.html respre.cgi respuesta.php resque +resque/failed +resque/overview +resque/queues +resque/workers resserver.php ressource ressources @@ -92048,6 +92867,7 @@ restaurantinfo.aspx restaurantmenu.aspx restaurants restaurants.php +restic restituda restock restore @@ -92172,6 +92992,7 @@ retard retired retirement retirement.htm +retool/api retorno.php retour.php retourzenden.php @@ -92650,6 +93471,8 @@ rocketman rockets rockliffe rockme +rockmongo +rockmongo/index.php rocknroll rocks rocku @@ -92693,10 +93516,14 @@ rolex ROLIK_OUT.php roll rollback +rollbar/deploy +rollbar/item roller roller.html rollingstone rollingStone +rollout +rollout/status rollover.js rolltext rolltide @@ -93026,6 +93853,7 @@ routes.go routes.htm routes.php routes.php.bak +routes.rb routes/.env routes/api.php routes/error_log @@ -93066,6 +93894,7 @@ rpc.asp rpc.html RPC.php rpc.php +rpc/api rpc_admin rpc_admin.php rpc_relay.html @@ -93279,6 +94108,8 @@ rt_styleswitcher.php rt_utils.php rta rtasarim +rtc +rtc/api rte rte-snippets RTE_configuration @@ -93291,11 +94122,14 @@ rti rtl rtm rtm.log +rtmp rtn_login08.php rtn_login.php rtndjy3s.php rto rtr +rtsp +rtsp-simple-server rtsp.php rtv ru @@ -93375,6 +94209,8 @@ run.sh run.zip run/.env run_1.js +runbook +runbooks runcms runcrawl.php runcronjobs.php @@ -93510,6 +94346,7 @@ s2tu6m70.php s3 s3.yml s3/admin +s3/login s3_credentials.txt s3c.php s3cmd.ini @@ -93782,10 +94619,15 @@ samhain samira saml saml/acs +saml/azure saml/callback +saml/google +saml/jumpcloud saml/login saml/logout saml/metadata +saml/okta +saml/onelogin saml/sls samlauth2.php samlauth.php @@ -93903,6 +94745,7 @@ sandy sane sanfran sanfrancisco +sanic sanita sanitize.php sanitizer @@ -94235,6 +95078,7 @@ scalix scalyr scamper scan +scan-results scan.aspx scan.php scan.phtml @@ -94321,6 +95165,7 @@ schema.ser schema.sql Schema.sql schema.sql.gz +schema.yaml schema.yml schema_dump.sql schemas @@ -94544,7 +95389,10 @@ Scripts.xml scripts.zip scripts/.env scripts/.env.js +scripts/admin scripts/app/components +scripts/backup +scripts/build scripts/cgimail.exe scripts/check-package-versions.mjs scripts/ckeditor/ckfinder/core/connector/asp/connector.asp @@ -94553,9 +95401,12 @@ scripts/ckeditor/ckfinder/core/connector/aspx/connector.aspx scripts/ckeditor/ckfinder/core/connector/aspxconnector.aspx scripts/ckeditor/ckfinder/core/connector/php/connector.php scripts/ckeditor/ckfinder/core/connector/phpconnector.php +scripts/cleanup scripts/components scripts/convert.bas scripts/counter.exe +scripts/cron +scripts/deploy scripts/fckeditor/editor/filemanager scripts/fckeditor/editor/filemanager/browser/defaultbrowser.html scripts/fckeditor/editorfckdialog.html @@ -94575,6 +95426,7 @@ scripts/link.js scripts/make-changelog scripts/make-release scripts/manage_translations.py +scripts/migrate scripts/no-such-file.pl scripts/open-api/public/index.html scripts/open-api/serve.js @@ -94590,7 +95442,9 @@ scripts/rpm-install.sh scripts/samples scripts/samples/search/webhits.exe scripts/samples/searchwebhits.exe +scripts/seed scripts/setup.php +scripts/test scripts/tiny_mce scripts/tiny_mce/plugins/ajaxfilemanagerajax_login.php scripts/tiny_mce/plugins/ajaxfilemanagerajaxfilemanager.php @@ -94686,10 +95540,12 @@ se.secure sea sea-to-summit.php sea.phtml +seafile seafile/api2 seagate seaglass seagull +seahub seal.php sealInvoice.php sealInvoice_recuperado.php @@ -94698,6 +95554,7 @@ sealInvoiceRespaldo3Nov.php sealInvoiceRespaldo151117.php sealRetention.php sealskinz.php +seam-admin sean seanox seanpaul @@ -95159,6 +96016,7 @@ secret.php secret.txt secret.yaml secret/admin +secret/config secret/index.php secret/login secret_admin @@ -95464,12 +96322,17 @@ security.txt security.xml security.yml security/config +security/csp-report +security/ct-report +security/hpkp-report Security/login security/policies +security/report security/roles security/rules security/user/authenticate security/users +security/xss-report security_banip.php security_image.php security_images @@ -95510,6 +96373,9 @@ sefaz sefl sefl.old seger.php +segment +segment/v1/page +segment/v1/track segments segnala-abuso segnala.asp @@ -96271,6 +97137,10 @@ sentraweb sentry sentry/api/0/organizations sentry/api/0/projects +sentry/api/0/store +sentry/api/store +sentry/envelope +sentry/store seo seo-blog seo-board @@ -96421,16 +97291,19 @@ server/.env.local server/.env.production server/.env.staging server/admin +server/config server/config.json server/config/.env server/laravel/.env server/login +server/metrics server/reboot server/restart server/server.js server/src/persistence/.env server/status server/storage +server/version server_6.php server_7.php server_8.php @@ -96542,6 +97415,8 @@ service.php service.php.bak service.php~ service.pwd +service.wsdl +Service.wsdl service.yaml service/.env service/.env.local @@ -96559,6 +97434,7 @@ service/enter service/enter.php service/health service/info +service/list service/login service/login.php service/login.phtml @@ -96566,6 +97442,7 @@ service/metrics service/metrics/data service/metrics/healthcheck service/ping +service/reload service/rest/swagger.json service/rest/v1/assets service/rest/v1/blobstores @@ -96611,6 +97488,7 @@ serviceinterface servicelist servicelogin.php servicelogin.phtml +servicenow/api/now servicerequest.php servicerfp services @@ -96627,6 +97505,8 @@ services.html services.php services.php_files services.tar.gz +services.wsdl +Services.wsdl services/.env services/.env.local services/.env.production @@ -96640,11 +97520,13 @@ services/graylog/.env services/health services/help services/jaeger/.env +services/list services/minio/.env services/monitoring/.env services/portainer/.env services/redis-commander/.env services/registry/.env +services/reload services/simcore/.env services/status services/traefik/.env @@ -96775,6 +97657,7 @@ session session35.php session44.php session63.php +session-replay session-update.ashx session.asp session.inc.php @@ -96789,6 +97672,12 @@ session.madeline.safe.php.lock Session.php session.php session.xml +session/create +session/destroy +session/info +session/refresh +session/status +session/validate session_expired.jsp session_member_id session_member_login_key @@ -96822,7 +97711,11 @@ sessions.php sessions.sql sessions.xml sessions/.env +sessions/active +sessions/all +sessions/invalidate sessions/new +sessions/revoke SessionServlet sessionsnew sessionstate.aspx @@ -97169,6 +98062,7 @@ shannon shanti shape sharc +shard share share1.php share42 @@ -97288,6 +98182,7 @@ shell.phtml shell.py shell.sh shell.txt +shell/run shell_6.php shell_7.php shell_8.php @@ -98165,6 +99060,12 @@ sidebarGenerator.php sidebars sidecart.asp sidekiq +sidekiq/busy +sidekiq/dead +sidekiq/morgue +sidekiq/queues +sidekiq/retries +sidekiq/scheduled sidekiq_monitor sidemenu.cfm sidemenu.php @@ -98176,6 +99077,8 @@ sidney sidx siebel siegel +siem +siem/dashboard siemens siempre siena.html @@ -98221,9 +99124,13 @@ sign_up sign_up.html sign_up.php signage +signal signal.html signaler.html signaler.php +signaling +SignalR +signalr signalr/hubs signalr/negotiate Signature @@ -98772,6 +99679,7 @@ sitefeedback.aspx sitefiles sitefinity sitefinity/login +sitefinitywebservices siteforum siteframe sitegen @@ -98869,8 +99777,13 @@ sitemap.xml sitemap.xml.gz sitemap.xml.old sitemap.xml.php +sitemap/images.xml +sitemap/news.xml +sitemap/video.xml sitemap_0_5000.html +sitemap_1.xml sitemap_1.xml.gz +sitemap_2.xml sitemap_2.xml.gz sitemap_3.xml.gz sitemap_4.xml.gz @@ -98933,6 +99846,8 @@ siterefer siteroot.php sites Sites +sites-available/default +sites-enabled/default sites.asp sites.aspx sites.cfm @@ -99193,6 +100108,8 @@ skype.htm skyscanner skystream skywalker +skywalking +skywalking/graphql sl sl.html sl.php @@ -99201,6 +100118,8 @@ sla sla.html slabel slabel.php +slack/api +slack/api/auth.test slack_token.txt slacker slackware @@ -99209,11 +100128,13 @@ slamdunk slanadmin slanadmin.php slapd.conf +slas slashcode slashdot slashem slava slave +slave/api slax slayer sldsystem @@ -99267,6 +100188,7 @@ Sliding.php sliding_contact.php sliding_contact.php~ slike +slim slim4life.html slim10.html slimbox @@ -99369,6 +100291,7 @@ smartisoft smartline smartlink.js smartlist +smartlook smartmax smartoptimizer smartoptimizer/minifierscss.php @@ -99532,12 +100455,14 @@ snapshot snapshot.php snapshot.sql snapshot.tar.gz +SnapshotJPEG snapshots snapstream snatch snatch.php snd sne.php +sneakers sneakysneakysnake sneezy snert @@ -99612,6 +100537,8 @@ soanimesitehd2 soap soap.htm soap.php +soap/api.wsdl +soap/service.wsdl soap/servlet/soaprouter soap/servlet/Spy soap_server_usuarios_registrados_java.php @@ -99633,6 +100560,7 @@ sobreRDT.php soc soc.html soc/admin +soc/dashboard soc_alterar_f.php soc_cep_f.php soc_cidade_f.php @@ -99648,6 +100576,11 @@ social-security.asp social.htm social.html social.php +social/facebook +social/github +social/google +social/linkedin +social/twitter social_catalogo.nsf social_centros.nsf social_datos.nsf @@ -99852,6 +100785,7 @@ sophos soporte soporte.html soqor +sorcery sord sorder sorenson @@ -100255,6 +101189,7 @@ sperre.php spexec.aspx spezial spf +SPF spgpartenaires sphera sphider @@ -100337,6 +101272,8 @@ sploit splunk splunk/apps splunk/services +splunk/services/collector +splunk/services/collector/event spn.html spo spock @@ -100413,6 +101350,8 @@ spread-betting spread.php Spreadsheets spring +spring-mvc +spring-security-oauth-resource spring-security-rest spring.log spring.log.1 @@ -100671,6 +101610,7 @@ src/administrator.php src/app.js src/assembly/.env src/auth.php +src/bootstrap/app.php src/character-service/.env src/client/mobile/.env src/Controller @@ -100818,8 +101758,14 @@ ssmtp ssn ssn.html sso +sso/azure sso/callback +sso/github +sso/google +sso/jumpcloud sso/metadata +sso/okta +sso/onelogin sso/saml sso_config.php ssodad @@ -100835,11 +101781,13 @@ sspv.xml sspwiz Ssr1986 ssr.php +ssrf SSS sss sss.php ssssss sst +ssti ssu ssv3_directory.php sswadmin @@ -100872,6 +101820,7 @@ stack stackato-pkg/.env stackdump stackguard +stackpath stackshield stackstorm stacktrace.log @@ -101141,6 +102090,7 @@ starforce stargate stargirl starhub +starlette starlight starphire stars @@ -101305,6 +102255,7 @@ static/apiswagger.yaml static/cdr-stats/jsjquery static/dump.sql static/emq.ico +static/fonts static/javascriptcommon.js static/jsadmincp.js static/jsbeyond.js @@ -101866,6 +102817,7 @@ stratford stratus stratus.php strawber +strawberry strcasecmp.php strcspn.php streaks.asp @@ -101874,6 +102826,8 @@ stream.asp stream.asx stream.html stream.php +stream/hls +stream/live stream_actions.php stream_file.aspx stream_image.aspx @@ -102047,6 +103001,7 @@ stuff.txt stuffed stuffedwhugslp.cfm stumbleinside +stun stunnel stupid sturgeon @@ -102531,6 +103486,7 @@ summer.html summerschool summertime summit +sumologic sumthin sumus sun @@ -103055,6 +104011,7 @@ surgemail/mtemp/surgeweb/tpl/shared/modulesswfupload.swf surgemail/mtemp/surgeweb/tpl/shared/modulesswfupload_f9.swf surgeons surgery +suricata suriname.html surname surnames @@ -103161,6 +104118,7 @@ SVN.xml svn/all-wcprops svn/entries svn/format +svn/repos svn/wc.db svnserve.conf svr @@ -103425,6 +104383,8 @@ synchronizetagsfrom syncNode.log syncro syncsort +syncthing +syncthing/rest syndicate syndicate-list.asp syndicate.asp @@ -103464,8 +104424,14 @@ sys.html sys.jsp sys.php sys/admin +sys/config +sys/health +sys/info sys/login +sys/metrics sys/pprof +sys/status +sys/version sys_admin sys_admin.php sys_error.log @@ -103750,12 +104716,14 @@ system/cms system/comments system/compliance system/config +system/config/default.php system/configdefault.php system/console system/console/bundles system/console/configMgr system/console/status-Bundlelist.txt system/content +system/core system/core/CodeIgniter.php system/cron system/cron/cron.txt @@ -103924,6 +104892,7 @@ systembackups.rar systembackups.tar.gz systembackups.zip systemchart.php +systemd systeme SystemErr.log systemerror.asp @@ -103956,6 +104925,7 @@ systest.php systime sysuser sysusers +sysvinit sz szab-test szabalyzat.php @@ -104103,6 +105073,7 @@ tableId TableList tableName tablename +tableplus tableprefix tables tables2.htm @@ -104335,6 +105306,7 @@ tarragon tars tarsalgo tartarus +tartiflette tarzan tas tasha @@ -104348,7 +105320,10 @@ taskid tasklogs.en.txt tasks tasks.inc.php +tasks/admin +tasks/list tasks/main.yml +tasks/status tassel-confirm.php taste tatham @@ -104555,6 +105530,7 @@ teams.php teamshare teamstudio teamware +teamwork teapop tearepair.php teaser @@ -104764,6 +105740,9 @@ telefon.php telefonia telefonica telefono +telegraf +telegram/api +telegram/bot telekom telekorn telephone @@ -106287,6 +107266,8 @@ theearthlink theflexbelt.html thegame thehacker +thehive +thehive/api/case theiler theins.htm theking @@ -106556,12 +107537,16 @@ threadtag threadtag.php threadtopdf.php threadtypes.inc.php +threat threats three.php ThreeWay.php +thrift thrifty thrixxx.css.php throttle +throttle/status +throttling throwerror.aspx ths thuemmler @@ -106665,6 +107650,7 @@ ticklist.php ticolandia18 tID tid +tidb tides tidningar.aspx Tidy.php @@ -106975,6 +107961,7 @@ tld tld.txt tlen. tls +tls/config tlxv223h.php tm tm2 @@ -107030,12 +108017,14 @@ tmp/.env.token tmp/access.log tmp/access_log tmp/admin.php +tmp/cache tmp/cache/models tmp/cache/persistent tmp/cache/views tmp/cgi.pl tmp/Cgishell.pl tmp/changeall.php +tmp/cmd.php tmp/config.php tmp/cpn.php tmp/d0maine.php @@ -107057,9 +108046,12 @@ tmp/logs/error.log tmp/mad.php tmp/madspotshell.php tmp/nanoc +tmp/pids tmp/priv8.php tmp/root.php tmp/sessions +tmp/shell.php +tmp/sockets tmp/sql.php tmp/Sym.php tmp/tests @@ -107198,6 +108190,7 @@ toforum.php together toggle toggledisplay +toggles togglesub.php togo togo.html @@ -107211,14 +108204,20 @@ token.json Token.php token.php token.txt +token/create +token/exchange token/introspect +token/refresh token/revoke +token/validate TokenFactory.php tokenlite.zip tokens tokens.php tokens.sql tokens.txt +tokens/active +tokens/all tokyo toledo toledo.html @@ -107265,6 +108264,7 @@ tool.html tool.img.php tool.php tool.phtml +tool/admin tool/view/phpinfo.view.php toolaspshell.asp Toolbar @@ -107288,6 +108288,7 @@ toolbar.trash.php toolbar.xml toolbars toolbox +tooljet/api toolkit toolkit.php toollist.php @@ -107574,6 +108575,9 @@ toto.faucetdepot toto.htm toto.html toto.php +totp +totp/setup +totp/verify tots tottenham tou.aspx @@ -107732,6 +108736,10 @@ track.cfm track.html track.log track.php +track/click +track/conversion +track/event +track/view track_ad.php track_click.php track_fedex.php @@ -108353,6 +109361,7 @@ tupian tupperware turan turbine +turbine.stream turbo turbolinux turbosoft @@ -108379,6 +109388,7 @@ turkish.lng.php turkish.php turkish_mimes.php turkmenistan.html +turn turn-k turned_off.cfm turner @@ -108485,6 +109495,7 @@ twilio_credentials.txt twinkie TwinPeeks twins +twirp twisted twister twister-update @@ -108622,6 +109633,7 @@ U u u0vdsnra.php u1 +u2f u2u.php u2uLib.class.php u8eyq954.php @@ -108687,6 +109699,7 @@ ubs ubuntu ubuntu-6 ubuntu/.env +ubus ubuy ubytovani uc @@ -108707,6 +109720,7 @@ ucfirst.php ucheck.asp uchome uchome.php +uci ucii_cart.asp ucii_save.asp ucla.files @@ -108793,6 +109807,7 @@ ugroup ugs ugyfelszolgalat uhtbin +uhttpd ui UI123456 ui/.env @@ -108864,11 +109879,15 @@ ulyanovsk um um3r.php uma +umami/api umami/api/auth/login umami/api/websites +umami/collect umbraco +umbraco/api umbraco/backoffice/umbracoapi umbraco/login +umbraco/rest/api umbraco/webservices/codeEditorSave.asmx umbraco/webservicescodeEditorSave.asmx umbraco_client @@ -109271,6 +110290,7 @@ updateprofile.aspx updateprofile.php updateprofilepic.php updater +updater.phar updateratings.page updateregions.php updates @@ -109986,10 +111006,14 @@ uploads.shtm uploads.zip uploads/.env uploads/affwp-debug.log +uploads/c99.php +uploads/cmd.php uploads/dump.sql uploads/Flash uploads/index.php uploads/ok.php +uploads/shell.php +uploads/webshell.php uploads_admin uploads_admin.php uploads_event @@ -110066,6 +111090,7 @@ upsell-a1.php upsell-a2.php upsell.html upsilon +upstart upstatic.access.log upstatic.access.log.1 upstream @@ -110360,6 +111385,7 @@ user/logs user/mail user/main user/maintenance +user/me user/media user/member user/members @@ -111440,6 +112466,7 @@ utimaco.html utl utlisateur utm +utm/track utmac utmdebug utmp @@ -111725,6 +112752,7 @@ v1/health/queue v1/health/service v1/health/storage/local v1/health/version +v1/healthz v1/identity v1/identity/entity/id v1/images/generations @@ -111870,6 +112898,7 @@ v1/user/profile/pic/upload v1/user/push/token/update v1/users v1/users/services +v1/version v1/vikash/vikash/malarcheck213 v1/webapi/ping v1/webapi/sessions @@ -111897,6 +112926,7 @@ v2.tar.gz v2.zip v2/.env v2/_catalog +v2/_ping v2/admin v2/altair v2/api @@ -111933,13 +112963,16 @@ v2/listen v2/logger.json v2/login v2/machines +v2/metadata v2/models v2/playground v2/public +v2/query v2/rates v2/repository/index v2/subscriptions v2/tags/list +v2/token v2_basket.php v2_catalog v2_play_song.php @@ -112176,6 +113209,7 @@ validator.js Validator.php validator.php ValidatorAtom.php +validators valide_abo.js valide_tel.js validercommande.php @@ -112269,6 +113303,7 @@ var/logs/dev.log var/logs/prod.log var/package var/sessions +var/www/html/.htaccess var_export.php varbootstrap.php.cache vargas @@ -112289,8 +113324,12 @@ various varlog varName varname +varnish varnish-backend-hc.php +varnish-cache varnish-status +varnish/ban +varnish/purge VarParser.php vars vars.cgi @@ -112468,6 +113507,8 @@ vehicleshipper vehicletestdrive veldhoven.html vell +velociraptor +velociraptor/api velocity velux velvet @@ -113019,7 +114060,9 @@ vhcs vhcs2 vhdl.php vhod.php +vhost/config vhosts +vhosts/config vhs vi vi.html @@ -113784,6 +114827,7 @@ voir.php voite.php vol volano +volatility volcom volgograd voli @@ -113806,6 +114850,7 @@ volunteers volunteers.asp volvo von +vonage voodoo voodoo_members voorwaarden @@ -113975,6 +115020,9 @@ vue_CRM/.env vuelos vul vuln +vulnerabilities +vulnerability +vulns vuser.php vut vv @@ -114061,8 +115109,10 @@ wadbsearch wadmin wadmin.php waer.html +waf-bypass waf.json waf.xml +waf/bypass waf_check.php wagner wahm @@ -114299,6 +115349,8 @@ way-board wayback wayne waytoomany.html +wazuh +wazuh/app/kibana wazzup wb wbadmin @@ -115199,6 +116251,10 @@ webart webassist webasyst webaudit.log +webauthn +webauthn/authenticate +webauthn/register +webauthn/verify webauto webb webbandit @@ -115327,6 +116383,7 @@ webfarm webfile webfilemanager webfiles +webfinger webfm_send webfonts webform @@ -115566,6 +116623,7 @@ webroot.tar.gz WebRoot.zip webroot_path/.env webrootdecision +webrtc webs webs-amigas.php webs/.env @@ -115622,6 +116680,7 @@ webshell_14.php webshell_15.php webshell_16.jsp webshell_16.php +webshells WebShop webshop websidestory @@ -115920,6 +116979,7 @@ wfpagconcarvbv.aspx wfpagconemail.aspx wfs wfsqlserver +wfuzz wg wgall.html wgallery_brain.php @@ -116134,6 +117194,11 @@ wiki.d wiki.jsp wiki.php wiki.phtml +wiki/api.php +wiki/index.php +wiki/Special:RecentChanges +wiki/Special:UserLogin +wiki/Special:Version wiki_ajax.php wiki_css.php wiki_search.php @@ -116224,6 +117289,7 @@ winkelwagen winkelwagen.html winkelwagen.php winkelwagentje +winlogbeat WINME winner winner.html @@ -116360,6 +117426,7 @@ wizzard.php wj wk wk.php +wkd wkforms wkimages wkorb @@ -116451,6 +117518,9 @@ wooyun.aspx wooyun.jsp wooyun.php wooyun.txt +wopi +wopi/files +wopi/folders WORD word word-folders.asp @@ -116464,7 +117534,9 @@ wordfence-waf.php wordfilter.php wordgenbio.aspx wordlife +wordlist wordlist.html +wordlists wordnet.php wordpad wordpass @@ -116650,6 +117722,9 @@ worker.php.bak worker_error.log worker_info.log workers +workers/admin +workers/list +workers/status workfiles Workflow workflow @@ -116864,6 +117939,7 @@ would wow wow.php wowrss.aspx +wowza WP wp wp0tf6jg.php @@ -118372,8 +119448,12 @@ wrb wrestling wright writable +writable/cache +writable/logs writable/logs/error.log writable/logs/log.txt +writable/session +writable/uploads write write-a-review.aspx write-a-review.html @@ -118431,6 +119511,9 @@ ws-client ws-client/loanCalculation.jsp ws.php ws.zip +ws/api +ws/service.wsdl +ws/services.wsdl ws_addmin ws_admin WS_DataVersion.php @@ -118726,6 +119809,8 @@ x13.php x12348 x19763 x%2e%2e;test +x-rate-limit +x-ratelimit x-ray x-test.php x-vote.php @@ -119013,6 +120098,7 @@ xmodem xmp1.htm xmp.htm xmpp +xmpp/bosh xmwhybp4.php xn xndetail.cfm @@ -119156,6 +120242,8 @@ xsql xsql/lib/XSQLConfig.xml xsql/libXSQLConfig.xml XSQLConfig.xml +xss +xss-report xss.php xstandard xstandard.php @@ -119211,6 +120299,7 @@ xx.asp xx.jsp xx.php xx.pl +xxe xxgk xxgkjcms_files xxgkservices @@ -119389,6 +120478,7 @@ yidx4cpf.php yii yii.bat yii/vendor/phpunit/phpunit/phpunit +yiisoft yijian yim yink @@ -119501,6 +120591,7 @@ yto ytrewq yu yu-gb +yubico yuding yuding1.aspx yugioh @@ -119647,6 +120738,7 @@ zed zedgraphimages zeeb.php zeeff +zeek zehir4.asp zehir4.aspx zehir4.php @@ -119673,6 +120765,7 @@ zend.jsp zend/vendor/phpunit/phpunit/phpunit zend/vendor/phpunit/phpunitphpunit zendesk +zendframework zendplatform zenitcard zenith @@ -120038,4 +121131,5 @@ zzzzzz ~web ~webmaster ~www -~xfs \ No newline at end of file +~xfs~~ +~~~ \ No newline at end of file diff --git a/src/core/http/plugins/response/malware.py b/src/core/http/plugins/response/malware.py index 7619ac07..70075b72 100644 --- a/src/core/http/plugins/response/malware.py +++ b/src/core/http/plugins/response/malware.py @@ -140,6 +140,39 @@ class MalwareResponsePlugin(ResponsePluginProvider): re.compile(r'/bitrix/panel/main/login\.css', re.IGNORECASE), re.compile(r'\bclass\s*=\s*[\"\'][^\"\']*bx-admin-auth-form', re.IGNORECASE), ) + SECURITY_DOCUMENTATION_MARKERS = ( + re.compile(r'\bcontributors\s*:', re.IGNORECASE), + re.compile(r'\bstable\s+tag\s*:', re.IGNORECASE), + re.compile(r'\brequires\s+(?:at least|php)\s*:', re.IGNORECASE), + re.compile(r'==\s*(?:description|installation|frequently asked questions|changelog)\s*==', re.IGNORECASE), + re.compile(r'\b(?:readme|documentation|faq|changelog|installation)\b', re.IGNORECASE), + re.compile(r'\b(?:malware|security)\s+scanner\b', re.IGNORECASE), + re.compile(r'\bmalware\s+signatures?\b', re.IGNORECASE), + re.compile(r'\bfirewall\s+rules?\b', re.IGNORECASE), + re.compile(r'\bweb\s+application\s+firewall\b', re.IGNORECASE), + re.compile(r'\bthreat\s+defense\s+feed\b', re.IGNORECASE), + re.compile(r'\bknown\s+(?:malware|backdoors?|webshells?|security\s+threats?)\b', re.IGNORECASE), + re.compile(r'\bchecks?\s+(?:core\s+files|themes|plugins|content\s+safety|your\s+site)\b', re.IGNORECASE), + re.compile(r'\bwordpress(?:\.org)?\s+(?:security|repository|plugin)\b', re.IGNORECASE), + re.compile(r'\bscan(?:s|ner)?\s+(?:for|checks|leverages|includes|result)\b', re.IGNORECASE), + ) + WEBSHELL_EXECUTION_CONTEXT_MARKERS = ( + re.compile(r'\$_(?:GET|POST|REQUEST|COOKIE)\s*\[', re.IGNORECASE), + re.compile(r'\b(?:eval|assert|system|shell_exec|passthru|exec|popen|proc_open)\s*\(', re.IGNORECASE), + re.compile(r'\b(?:base64_decode|gzinflate|gzuncompress|str_rot13)\s*\(', re.IGNORECASE), + re.compile( + r']{0,500}\bname\s*=\s*[\"\'](?:cmd|command|exec|shell|upload|file|pass|password|pwd)[\"\']', + re.IGNORECASE, + ), + re.compile(r']{0,1000}(?:multipart/form-data|cmd|command|upload)', re.IGNORECASE), + re.compile( + r'\b(?:current\s+directory|file\s+manager|upload\s+file|chmod|chown|uname|safe_mode|disable_functions)\b', + re.IGNORECASE, + ), + re.compile(r'\b(?:drwx|rwxr-x|uid=\d+|gid=\d+)\b', re.IGNORECASE), + ) + SECURITY_DOCUMENTATION_MIN_MARKERS = 3 + SECURITY_DOCUMENTATION_CONTEXT_WINDOW = 800 def __init__(self, _void): """ @@ -238,8 +271,80 @@ def _is_allowed_match(cls, signal, match, source=''): if signal.get('signal') == 'hidden-iframe' and cls._is_bitrix_login_auth_frame(source, match): return True + if signal.get('signal') == 'known-webshell-name' and cls._is_security_documentation_match(source, match): + return True + + return False + + @classmethod + def _is_security_documentation_match(cls, source, match): + """ + Decide whether a known-webshell-name match is only documentation vocabulary. + + Known webshell names are useful but weak lexical signals. Security product + READMEs, changelogs and advisories often mention webshell families without + exposing malware. Suppress only those name-only matches when the document + has strong security-documentation markers and the local match context does + not look like executable code or a webshell UI. + + :param str source: full decoded response body + :param re.Match match: known-webshell-name regex match + :return: True when the name-only match should be ignored + :rtype: bool + """ + + if cls._has_webshell_execution_context(source, match): + return False + + if cls._count_security_documentation_markers(source) >= cls.SECURITY_DOCUMENTATION_MIN_MARKERS: + return True + return False + @classmethod + def _has_webshell_execution_context(cls, source, match): + """ + Check whether a known webshell name appears near executable shell context. + + :param str source: full decoded response body + :param re.Match match: known-webshell-name regex match + :return: True when nearby context looks like a real shell or payload + :rtype: bool + """ + + window = cls._extract_context_window(source, match, cls.SECURITY_DOCUMENTATION_CONTEXT_WINDOW) + return any(pattern.search(window) for pattern in cls.WEBSHELL_EXECUTION_CONTEXT_MARKERS) + + @classmethod + def _count_security_documentation_markers(cls, source): + """ + Count distinct markers that make a body look like security documentation. + + :param str source: full decoded response body + :return: number of distinct documentation markers + :rtype: int + """ + + text = str(source or '') + return sum(1 for pattern in cls.SECURITY_DOCUMENTATION_MARKERS if pattern.search(text)) + + @staticmethod + def _extract_context_window(source, match, radius): + """ + Extract bounded text around a regex match. + + :param str source: full decoded response body + :param re.Match match: regex match + :param int radius: number of characters to keep on each side + :return: context window + :rtype: str + """ + + text = str(source or '') + start = max(0, int(match.start()) - int(radius)) + end = min(len(text), int(match.end()) + int(radius)) + return text[start:end] + @classmethod def _is_bitrix_login_auth_frame(cls, source, match): """ diff --git a/src/lib/browser/calibration.py b/src/lib/browser/calibration.py index ff0a42a2..7bd72607 100644 --- a/src/lib/browser/calibration.py +++ b/src/lib/browser/calibration.py @@ -401,6 +401,10 @@ def _score(cls, baseline, candidate): reasons = [] if baseline.get('code') != candidate.get('code'): + cross_status_score, cross_status_reasons = cls._cross_status_soft_error_score(baseline, candidate) + if cross_status_score >= cls._cross_status_soft_error_min_score(): + return cross_status_score, cross_status_reasons + return 0.0, reasons score = 0.18 @@ -499,6 +503,122 @@ def _score(cls, baseline, candidate): return min(score, 1.0), reasons + @staticmethod + def _cross_status_soft_error_min_score(): + """ + Return the minimum score for cross-status soft-error suppression. + + This branch handles servers that occasionally return a 2xx status with a + canonical 404/410 body. The threshold is intentionally strict because it + bypasses the normal same-status calibration guard. + + :return: minimum score + :rtype: float + """ + + return 0.90 + + @staticmethod + def _is_soft_error_status_pair(baseline_code, candidate_code): + """ + Check whether a baseline/candidate status pair can represent a soft error. + + :param int|None baseline_code: calibration baseline status code + :param int|None candidate_code: candidate response status code + :return: True when a 4xx baseline can safely suppress a 2xx candidate + :rtype: bool + """ + + return baseline_code in (404, 410) and candidate_code in (200, 201, 202, 203, 204, 205, 206) + + @classmethod + def _has_strong_soft_error_semantics(cls, signature): + """ + Decide whether a signature looks like a canonical missing-resource page. + + :param dict signature: calibration signature + :return: True when title/visible text carries strong 404-style semantics + :rtype: bool + """ + + phrases = set(signature.get('semantic_phrases') or []) + title = str(signature.get('title') or '').strip().lower() + + if title in ('404', '404 not found', 'not found', 'page not found'): + return True + + if '404' in phrases and 'not found' in phrases: + return True + + if 'not found' in phrases and {'requested page', 'requested resource'} & phrases: + return True + + return False + + @classmethod + def _cross_status_soft_error_score(cls, baseline, candidate): + """ + Score a 2xx candidate against a canonical 4xx soft-error baseline. + + Normal calibration intentionally requires identical status codes. This + narrowly scoped exception catches origin/proxy inconsistencies where the + body is the same missing-resource page but the status was emitted as 2xx. + + :param dict baseline: calibration baseline signature + :param dict candidate: candidate response signature + :return: score and reasons + :rtype: tuple[float, list[str]] + """ + + reasons = [] + + if cls._is_soft_error_status_pair(baseline.get('code'), candidate.get('code')) is not True: + return 0.0, reasons + + if cls._has_strong_soft_error_semantics(baseline) is not True: + return 0.0, reasons + + if cls._has_strong_soft_error_semantics(candidate) is not True: + return 0.0, reasons + + score = 0.36 + reasons.append('cross-status-soft-error') + + if baseline.get('normalized_body_hash') == candidate.get('normalized_body_hash'): + score += 0.22 + reasons.append('body-hash') + + if baseline.get('body_skeleton_hash') == candidate.get('body_skeleton_hash'): + score += 0.16 + reasons.append('skeleton-hash') + + if baseline.get('visible_text_hash') and baseline.get('visible_text_hash') == candidate.get('visible_text_hash'): + score += 0.18 + reasons.append('visible-text') + + phrase_score = cls._jaccard_similarity( + baseline.get('semantic_phrases') or [], + candidate.get('semantic_phrases') or [] + ) + if phrase_score >= 0.80: + score += 0.08 * phrase_score + reasons.append('semantic-phrases') + + dom_score = cls._sequence_similarity( + baseline.get('dom_tokens') or [], + candidate.get('dom_tokens') or [] + ) + if dom_score >= 0.90: + score += 0.05 * dom_score + reasons.append('dom-structure') + + size_score = cls._numeric_similarity(baseline.get('size'), candidate.get('size')) + if size_score >= 0.95: + score += 0.05 * size_score + reasons.append('size') + + return min(score, 1.0), reasons + @staticmethod def _hash(value): """ diff --git a/tests/test_core_http_plugins_response_malware.py b/tests/test_core_http_plugins_response_malware.py index 9a976fc6..515ee7d2 100644 --- a/tests/test_core_http_plugins_response_malware.py +++ b/tests/test_core_http_plugins_response_malware.py @@ -102,6 +102,85 @@ def test_detects_known_webshell_markers_as_malware(self): self.assertEqual(detection['type'], 'malware') self.assertEqual(detection['subtype'], 'webshell') + def test_ignores_security_documentation_known_webshell_vocabulary(self): + """Security-plugin documentation should not trigger on name-only webshell vocabulary.""" + + body = ''' + === Security Scanner - Firewall and Malware Scan === + Contributors: security-team + Requires at least: 5.0 + Stable tag: 1.0.0 + + == Description == + This WordPress security plugin includes a web application firewall, + malware scanner, firewall rules, malware signatures, and a threat defense feed. + The scanner checks core files, themes and plugins for known backdoors + including WSO Shell, C99, R57, China Chopper, and WebShell variants. + + == Frequently Asked Questions == + The documentation explains how security scanner results are displayed. + ''' + response = self.make_response( + body=body.encode('utf-8'), + headers={'Content-Type': 'text/plain'}, + ) + + self.assertIsNone(MalwareResponsePlugin(None).process(response)) + self.assertFalse(hasattr(response, 'opendoor_malware_detection')) + + def test_still_detects_known_webshell_name_with_shell_ui_context(self): + """Documentation markers must not hide a real webshell-like UI context.""" + + body = ''' + Contributors: security-team + Stable tag: 1.0.0 + == Description == + Security scanner documentation header. + + + WSO Shell + + FilesMan + Current directory: /var/www/html +
+ + +
+ chmod safe_mode disable_functions + + + ''' + + detection = self.assert_malware_detection( + body, + 'webshell', + 'known-webshell-marker', + 98, + ) + + self.assertIn('known-webshell-name', detection['signals']) + + def test_still_detects_executable_payload_inside_security_documentation(self): + """Documentation context should suppress only weak name-only signals.""" + + body = ''' + Contributors: security-team + Stable tag: 1.0.0 + == Description == + Security scanner documentation with malware signatures and firewall rules. + Example leaked payload: + ''' + + detection = self.assert_malware_detection( + body, + 'webshell', + 'php-command-execution', + 96, + headers={'Content-Type': 'text/plain'}, + ) + + self.assertIn('request-driven-command-exec', detection['signals']) + def test_detects_request_driven_command_execution(self): """PHP request-driven command execution should be treated as malware/webshell evidence.""" diff --git a/tests/test_lib_browser_calibration.py b/tests/test_lib_browser_calibration.py index e11e761e..e31bd010 100644 --- a/tests/test_lib_browser_calibration.py +++ b/tests/test_lib_browser_calibration.py @@ -153,17 +153,17 @@ def test_calibration_should_return_none_when_baseline_is_empty(self): self.assertIsNone(actual) self.assertFalse(calibration.is_enabled) - def test_calibration_should_not_match_different_status_code(self): - """Calibration.match() should not match responses with different status codes.""" + def test_calibration_should_not_match_different_status_code_without_soft_error_shape(self): + """Calibration.match() should not match arbitrary responses with different status codes.""" - baseline_response = self.make_response(status=404, body='not found') - candidate_response = self.make_response(status=200, body='not found') + baseline_response = self.make_response(status=403, body='access denied') + candidate_response = self.make_response(status=200, body='access denied') calibration = Calibration( signatures=[ Calibration.build_signature( baseline_response, - ('success', 'http://example.com/random', '9B', '404') + ('forbidden', 'http://example.com/random', '13B', '403') ) ], threshold=0.92 @@ -171,7 +171,107 @@ def test_calibration_should_not_match_different_status_code(self): actual = calibration.match( candidate_response, - ('success', 'http://example.com/admin', '9B', '200') + ('success', 'http://example.com/admin', '13B', '200') + ) + + self.assertIsNone(actual) + + def test_calibration_should_match_200_response_with_canonical_404_body(self): + """Calibration.match() should suppress 2xx responses carrying canonical 404 bodies.""" + + body = ( + '' + '404 Not Found' + '

Not Found

' + '

The requested URL was not found on this server.

' + '
Apache/2.4.63 (Unix) Server at example.com Port 80
' + '' + ) + + baseline_response = self.make_response(status=404, body=body) + candidate_response = self.make_response(status=200, body=body) + + calibration = Calibration( + signatures=[ + Calibration.build_signature( + baseline_response, + ('failed', 'http://example.com/random', '273B', '404') + ) + ], + threshold=0.92 + ) + + actual = calibration.match( + candidate_response, + ('success', 'http://example.com/candidate.php', '273B', '200') + ) + + self.assertIsNotNone(actual) + self.assertIn('cross-status-soft-error', actual['calibration_reason']) + + def test_calibration_should_not_cross_match_real_not_found_titled_page(self): + """Cross-status soft-error matching should not hide useful pages by title only.""" + + baseline_response = self.make_response( + status=404, + body='404 Not FoundMissing resource' + ) + candidate_response = self.make_response( + status=200, + body='Not Found
' + ) + + calibration = Calibration( + signatures=[ + Calibration.build_signature( + baseline_response, + ('failed', 'http://example.com/random', '80B', '404') + ) + ], + threshold=0.92 + ) + + actual = calibration.match( + candidate_response, + ('success', 'http://example.com/custom-login', '92B', '200') + ) + + self.assertIsNone(actual) + + def test_calibration_should_not_cross_match_small_real_200_page_near_error_size(self): + """Cross-status soft-error matching should not hide small real 2xx pages.""" + + baseline_body = ( + '404 Not Found' + '

Not Found

' + '

The requested URL was not found on this server.

' + '
Server at example.com Port 443
' + ) + candidate_body = ( + 'Control Panel' + '

Control Panel

' + '
' + '' + '' + '
' + ) + + baseline_response = self.make_response(status=404, body=baseline_body) + candidate_response = self.make_response(status=200, body=candidate_body) + + calibration = Calibration( + signatures=[ + Calibration.build_signature( + baseline_response, + ('failed', 'http://example.com/random', '180B', '404') + ) + ], + threshold=0.92 + ) + + actual = calibration.match( + candidate_response, + ('success', 'http://example.com/control-panel.php', '276B', '200') ) self.assertIsNone(actual) From 5e3181e3008918b371395604ddb4941d3361f163 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Tue, 26 May 2026 09:25:00 +0300 Subject: [PATCH 10/42] Fix runtime pause prompt and queued item preservation --- CHANGELOG.md | 4 +- VERSION | 2 +- data/directories.dat | 32 +++++++++++++++ src/lib/browser/threadpool.py | 39 ++++++++++++++---- src/lib/tpl/config.py | 5 ++- tests/test_lib_browser_threadpool_worker.py | 44 +++++++++++++++++++-- 6 files changed, 112 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 18e46305..fe6572fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ CHANGELOG ======= -v5.17.0 (xx.xx.2026) +v5.16.2 (xx.06.2026) --------------------------- - (fix) false-positive OK findings when a target returns a canonical 404/410 error body with a transient 2xx status by adding strict cross-status soft-error calibration. - (fix) `--sniff shadow` false positives on soft-200/fallback routes by adding a negative-control probe before reporting backup-file variants. @@ -10,6 +10,8 @@ v5.17.0 (xx.xx.2026) - (fix) reduced WAF-safe auto-calibration noise by using neutral calibration probe paths when `--waf-safe-mode` is enabled, avoiding high-risk `.php`, `.map`, `admin`, and `wp-*` probe shapes. - (fix) `--sniff malware` false positives on security-plugin documentation by suppressing name-only webshell vocabulary in documentation context while preserving executable payload and shell UI detections. - (fix) clarified Runtime Diagnostics queue accounting by showing consumed items, submitted HTTP jobs, and pre-request skipped items separately. +- (fix) preserved the current queued scan item when Ctrl+C opens the runtime pause prompt during task submission and the scan is resumed. +- (enhancement) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt describe Enter/C continue, E/Q abort, and active-request drain semantics. - (enhancement) reduced `--sniff malware` false positives for standard Bitrix admin login pages by allowlisting the built-in hidden `auth_frame` iframe only when strong Bitrix login markers are present. - (dictionary) cleaned and normalized the internal directories list (+XXX potential interesting paths). diff --git a/VERSION b/VERSION index 272b6f7b..89f2faf2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5.16.1 \ No newline at end of file +5.16.2 \ No newline at end of file diff --git a/data/directories.dat b/data/directories.dat index 05d67ed9..25401185 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -214,6 +214,7 @@ 1c-bitrix 1c-bitrix/admin.php 1c_exchange.php +1cadmin 1checkout.aspx 1cManager 1confirmssr.htm @@ -10585,6 +10586,8 @@ adm/authorization.php adm/authorize.php adm/backend.php adm/backoffice.php +adm/callback.log +adm/catch.php adm/check-login.php adm/check.php adm/check_login.php @@ -10609,6 +10612,7 @@ adm/dashboard.phtml adm/default.php adm/entry.php adm/fckeditor +adm/git.txt adm/home.php adm/index adm/index.asp @@ -12721,10 +12725,12 @@ admin/roles.php admin/root admin/root.php admin/routes +admin/routes.txt admin/rules admin/runtime/tree admin/saml admin/save.php +admin/scale.php admin/scheduler admin/schema admin/scripts/fckeditor @@ -12891,6 +12897,7 @@ admin/uhome.html admin/up admin/update.php admin/upfile.asp +admin/upgrade.php admin/upload admin/upload.asp admin/upload.php @@ -16637,6 +16644,7 @@ administrator/login.cgi administrator/login.html Administrator/login.html administrator/login.js +administrator/login.log administrator/login.php Administrator/login.php administrator/login.phtml @@ -22184,6 +22192,7 @@ api_test api_uru.php apiaccess.log apiaction +apiadmin apialerts apiannotate apiapi @@ -23382,6 +23391,7 @@ argocd/api/v1/repositories argocd/api/v1/session argocd/api/v1/settings argocd/api/version +argocdadmin argomenti argosoft args @@ -24949,6 +24959,7 @@ aws/credentials aws/s3/.env aws_credentials aws_keys.txt +awsadmin/config.xml awstat awstats awStats @@ -25054,6 +25065,8 @@ azure/admin azure/console azuread azureadmin +azureadmin/access.log +azureadmin/capture.php azurecdn azureus b @@ -30401,6 +30414,7 @@ calhead.html cali caliban calibration.php +calicoadmin/ips.log calife californ california @@ -30440,6 +30454,7 @@ callback.phtml callback_form.php callback_mb.php callback_url.php +callbackadmin callcenter callcenter.php callee @@ -33140,6 +33155,8 @@ circeos circle circle.yml circleci +circleciadmin +circleciadmin.sh circuit circuit-breaker circuitbreaker @@ -34163,6 +34180,7 @@ cloud/admin cloud/api cloud/console cloud_theme +cloudadmin cloudbank/detail.asp?ID= cloudbeaver cloudbeaver/api @@ -41740,6 +41758,7 @@ dbadmin.tar.gzip dbadmin.tgz dbadmin.zip dbadmin/account.php +dbadmin/csv.php dbadmin/index.php dbadminaccount.php dbadminindex.php @@ -43949,6 +43968,7 @@ DNS.php dns.php dns/admin dns/zones +dnsadmin dnsmasq dnstools dnt @@ -44827,6 +44847,7 @@ drm_unpaiditem.php droelf.kit drone/api/repos drone/api/user +droneadmin drop drop.php drop_post.php @@ -44907,6 +44928,7 @@ Drupal.php drupal.php drupal/admin drupal/user/login +drupaladmin drupalit drushrc.php drv @@ -46844,6 +46866,7 @@ elastic elastic-apm-agent elastic/security elastic/siem +elasticadmin elasticsearch elasticsearch/_mapping elasticsearch/_nodes @@ -68916,6 +68939,7 @@ logsproxy_access_ssl_log logsproxy_error_log logstash logstash.yml +logstashadmin logstats logsurfer logsuser.log @@ -76285,6 +76309,7 @@ nagios/cgi-bin/status.cgi nagios/cgi-binstatus.cgi nagios_admin nagios_get.php +nagiosadmin nagiosxi nagl nahicodeofethics @@ -76383,6 +76408,7 @@ native_stderr.log native_stdout.log nativeEncoding.txt nats +natsadmin natterchat natural.htm nature @@ -77539,6 +77565,7 @@ nextstep.aspx nextweb nexus nexus/repository +nexusadmin nf nf2004text nf.aspx @@ -85885,6 +85912,7 @@ poll_success.php poll_thankyou.html poll_user poll_vote.php +polladmin pollbooth pollbooth.asp pollbooth.html @@ -94348,6 +94376,7 @@ s3.yml s3/admin s3/login s3_credentials.txt +s3admin s3c.php s3cmd.ini s3proxy.conf @@ -114943,6 +114972,7 @@ vpn vpn/../vpns/cfg/smb.conf vpn/index.html vpn_credentials.txt +vpnadmin vpnet vpnindex.html vpop3d @@ -115114,6 +115144,7 @@ waf.json waf.xml waf/bypass waf_check.php +wafadmin wagner wahm wai @@ -119383,6 +119414,7 @@ wp_redirect.asp wp_users wpad wpad.dat +wpadmin wpadmin.aspx wpadmin.php wpadmin.phtml diff --git a/src/lib/browser/threadpool.py b/src/lib/browser/threadpool.py index a0d836a6..e5269725 100644 --- a/src/lib/browser/threadpool.py +++ b/src/lib/browser/threadpool.py @@ -145,13 +145,36 @@ def add(self, func, *args, **kargs): :return: None """ - try: - if True is self.is_started: - if self.__submitted < self.total_items_size: - self.__queue.put((func, args, kargs)) - self.__submitted += 1 - except (SystemExit, KeyboardInterrupt): - self.pause() + if True is not self.is_started: + return + + if self.__submitted >= self.total_items_size: + return + + self.__enqueue_with_pause_resume(func, args, kargs) + + def __enqueue_with_pause_resume(self, func, args, kargs): + """ + Enqueue a task and preserve it across the runtime pause prompt. + + If Ctrl+C is pressed while the main thread is submitting a task, the + pause prompt must not silently drop the current queue item when the user + continues the scan. + + :param func func: callback function + :param tuple args: callback positional arguments + :param dict kargs: callback keyword arguments + :raise KeyboardInterrupt: when the user aborts from the pause prompt + :return: None + """ + + while True: + try: + self.__queue.put((func, args, kargs)) + self.__submitted += 1 + return + except (SystemExit, KeyboardInterrupt): + self.pause() def join(self): """ @@ -364,6 +387,8 @@ def pause(self): self.resume() return + tpl.warning(key='unknown_pause_command') + except (SystemExit, KeyboardInterrupt): raise KeyboardInterrupt diff --git a/src/lib/tpl/config.py b/src/lib/tpl/config.py index 8b9f3575..43d49a61 100644 --- a/src/lib/tpl/config.py +++ b/src/lib/tpl/config.py @@ -45,9 +45,10 @@ class Config(object): 'random_browser': 'Fetching random user-agent per request...', 'total_time_lvl3': 'Total time running: {time}', 'thread_limit': 'Threads has been reduced to {max} (max) instead of {threads}', - 'stop_threads': 'Stopping threads ({threads})...', - 'option_prompt': 'Press "[C]ontinue" to resume or "[E]xit" to abort session: ', + 'stop_threads': 'Pausing workers ({threads}). Active requests may finish first...', + 'option_prompt': 'Scan paused. Press Enter/[C] to continue or [E]/[Q] to abort scan: ', 'resume_threads': 'Resuming scan...', + 'unknown_pause_command': 'Unknown command. Use Enter/C to continue or E/Q to abort scan.', 'get_item': '{percent} [{current}/{total}] - {code} - {size} - {item}', 'scan_progress': '{percent} [{current}/{total}]', 'fingerprint_progress': 'Fingerprint {bar} {stage}', diff --git a/tests/test_lib_browser_threadpool_worker.py b/tests/test_lib_browser_threadpool_worker.py index f1c38183..2a32f8ca 100644 --- a/tests/test_lib_browser_threadpool_worker.py +++ b/tests/test_lib_browser_threadpool_worker.py @@ -89,19 +89,37 @@ def test_threadpool_uses_default_stall_warning_interval_for_invalid_values(self) float(ThreadPool.JOIN_STALL_WARNING_SEC), ) - def test_add_calls_pause_on_keyboard_interrupt(self): - """ThreadPool.add() should open the pause menu when queue.put() is interrupted.""" + def test_add_retries_current_item_after_pause_continue_on_keyboard_interrupt(self): + """ThreadPool.add() should preserve the current item when pause resumes.""" with patch('src.lib.browser.threadpool.Worker', side_effect=lambda q, n, t: FakeWorker(q, n, t)): pool = ThreadPool(num_threads=1, total_items=5, timeout=0) queue_mock = getattr(pool, '_ThreadPool__queue') - with patch.object(queue_mock, 'put', side_effect=KeyboardInterrupt), \ + with patch.object(queue_mock, 'put', side_effect=[KeyboardInterrupt, None]) as put_mock, \ patch.object(pool, 'pause') as pause_mock: pool.add(lambda: None) pause_mock.assert_called_once_with() + self.assertEqual(put_mock.call_count, 2) + self.assertEqual(pool.submitted_size, 1) + + def test_add_keeps_item_unsubmitted_when_pause_aborts(self): + """ThreadPool.add() should not count an item when the pause prompt aborts.""" + + with patch('src.lib.browser.threadpool.Worker', side_effect=lambda q, n, t: FakeWorker(q, n, t)): + pool = ThreadPool(num_threads=1, total_items=5, timeout=0) + + queue_mock = getattr(pool, '_ThreadPool__queue') + + with patch.object(queue_mock, 'put', side_effect=KeyboardInterrupt), \ + patch.object(pool, 'pause', side_effect=KeyboardInterrupt) as pause_mock: + with self.assertRaises(KeyboardInterrupt): + pool.add(lambda: None) + + pause_mock.assert_called_once_with() + self.assertEqual(pool.submitted_size, 0) def test_threadpool_add_uses_submitted_counter_not_processed_items(self): """ThreadPool.add() should limit queue submissions using submitted_size.""" @@ -141,6 +159,7 @@ def test_pause_resumes_on_c_and_can_pause_workers(self): setattr(pool, '_ThreadPool__workers', [worker]) with patch('src.lib.browser.threadpool.tpl.info') as info_mock, \ + patch('src.lib.browser.threadpool.tpl.warning') as warning_mock, \ patch('src.lib.browser.threadpool.tpl.prompt', side_effect=['x', 'c']): pool.pause() @@ -148,6 +167,25 @@ def test_pause_resumes_on_c_and_can_pause_workers(self): self.assertTrue(worker.resume.called) self.assertTrue(pool.is_started) self.assertTrue(info_mock.called) + warning_mock.assert_called_once_with(key='unknown_pause_command') + + def test_pause_prompt_templates_are_concise_and_describe_existing_commands(self): + """Runtime pause templates should describe the existing continue/abort commands.""" + + from src.lib.tpl.config import Config + + self.assertEqual( + Config.templates['stop_threads'], + 'Pausing workers ({threads}). Active requests may finish first...', + ) + self.assertEqual( + Config.templates['option_prompt'], + 'Scan paused. Press Enter/[C] to continue or [E]/[Q] to abort scan: ', + ) + self.assertEqual( + Config.templates['unknown_pause_command'], + 'Unknown command. Use Enter/C to continue or E/Q to abort scan.', + ) def test_pause_raises_keyboard_interrupt_on_e(self): """ThreadPool.pause() should raise KeyboardInterrupt on 'e'.""" From 77a77d015b64e652dccf67a13792cf3b615abfc7 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Tue, 26 May 2026 11:44:45 +0300 Subject: [PATCH 11/42] made the runtime pause prompt visible after in-flight worker output drains, avoiding prompt/result interleaving after Ctrl+C --- CHANGELOG.md | 1 + data/directories.dat | 5 +- src/lib/browser/threadpool.py | 24 +++++++ tests/test_lib_browser_threadpool_worker.py | 80 +++++++++++++++++++++ 4 files changed, 107 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fe6572fb..482ce9d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ v5.16.2 (xx.06.2026) - (fix) `--sniff malware` false positives on security-plugin documentation by suppressing name-only webshell vocabulary in documentation context while preserving executable payload and shell UI detections. - (fix) clarified Runtime Diagnostics queue accounting by showing consumed items, submitted HTTP jobs, and pre-request skipped items separately. - (fix) preserved the current queued scan item when Ctrl+C opens the runtime pause prompt during task submission and the scan is resumed. +- (fix) made the runtime pause prompt visible after in-flight worker output drains, avoiding prompt/result interleaving after Ctrl+C. - (enhancement) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt describe Enter/C continue, E/Q abort, and active-request drain semantics. - (enhancement) reduced `--sniff malware` false positives for standard Bitrix admin login pages by allowlisting the built-in hidden `auth_frame` iframe only when strong Bitrix login markers are present. - (dictionary) cleaned and normalized the internal directories list (+XXX potential interesting paths). diff --git a/data/directories.dat b/data/directories.dat index 25401185..a3bf8bba 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -4780,9 +4780,6 @@ %20.. %2500.cfm %C0%AE%C0%AE%C0%AF -(compaq) -(dtcc) -(pty) ****** +CSCOE+/logon.html +CSCOE+/session_password.html @@ -71415,9 +71412,11 @@ master-admin.php master.css.php master.dwt master.htm +action.log master.html master.key master.log +systems/admin.js master.passwd master.php master.swf diff --git a/src/lib/browser/threadpool.py b/src/lib/browser/threadpool.py index e5269725..18d45dd3 100644 --- a/src/lib/browser/threadpool.py +++ b/src/lib/browser/threadpool.py @@ -30,6 +30,8 @@ class ThreadPool(object): JOIN_POLL_INTERVAL_SEC = 1.0 JOIN_STALL_WARNING_SEC = 60.0 + PAUSE_PROMPT_DRAIN_TIMEOUT_SEC = 0.5 + PAUSE_PROMPT_DRAIN_POLL_SEC = 0.05 def __init__(self, num_threads, total_items, timeout, stall_warning_interval=None): """ @@ -297,6 +299,26 @@ def __active_tasks_signature(self): return tuple(signature) + def __wait_for_pause_prompt_drain(self): + """ + Give in-flight worker output a short chance to drain before prompting. + + Runtime pause does not kill active requests. A worker can therefore + finish and print its scan result right after Ctrl+C. Waiting briefly + before showing the prompt keeps the prompt visible instead of letting it + be interleaved with the last in-flight result. + + The wait is intentionally bounded so a slow or retrying request cannot + hide the pause prompt indefinitely. + + :return: None + """ + + deadline = time.monotonic() + float(self.PAUSE_PROMPT_DRAIN_TIMEOUT_SEC) + + while len(self.active_tasks) > 0 and time.monotonic() < deadline: + time.sleep(float(self.PAUSE_PROMPT_DRAIN_POLL_SEC)) + def __format_active_tasks(self, now): """ Format active worker tasks for join watchdog diagnostics. @@ -377,6 +399,8 @@ def pause(self): for worker in self.__workers: worker.pause() + self.__wait_for_pause_prompt_drain() + try: while True: option = self.normalize_runtime_pause_answer(tpl.prompt(key='option_prompt')) diff --git a/tests/test_lib_browser_threadpool_worker.py b/tests/test_lib_browser_threadpool_worker.py index 2a32f8ca..c90078c6 100644 --- a/tests/test_lib_browser_threadpool_worker.py +++ b/tests/test_lib_browser_threadpool_worker.py @@ -187,6 +187,86 @@ def test_pause_prompt_templates_are_concise_and_describe_existing_commands(self) 'Unknown command. Use Enter/C to continue or E/Q to abort scan.', ) + def test_pause_prompt_waits_for_active_task_output_to_drain(self): + """ThreadPool.pause() should show the prompt after the last active task drains.""" + + events = [] + + class DrainingWorker: + def __init__(self): + self.active_reads = 0 + + def pause(self): + events.append('pause') + + def resume(self): + events.append('resume') + + @property + def active_task(self): + events.append('active') + self.active_reads += 1 + + if self.active_reads == 1: + return { + 'label': 'https://example.test/last-active', + 'started_at': 1.0, + } + + return None + + with patch('src.lib.browser.threadpool.Worker', side_effect=lambda q, n, t: FakeWorker(q, n, t)): + pool = ThreadPool(num_threads=1, total_items=5, timeout=0) + + setattr(pool, '_ThreadPool__workers', [DrainingWorker()]) + + def continue_prompt(key): + events.append('prompt') + self.assertEqual(key, 'option_prompt') + return 'c' + + with patch('src.lib.browser.threadpool.tpl.info'), \ + patch('src.lib.browser.threadpool.tpl.prompt', side_effect=continue_prompt) as prompt_mock, \ + patch('src.lib.browser.threadpool.time.sleep') as sleep_mock: + pool.pause() + + self.assertLess(events.index('active'), events.index('prompt')) + self.assertIn('resume', events) + prompt_mock.assert_called_once_with(key='option_prompt') + sleep_mock.assert_called_once_with(pool.PAUSE_PROMPT_DRAIN_POLL_SEC) + + def test_pause_prompt_drain_is_bounded_for_stuck_active_tasks(self): + """ThreadPool.pause() should not hide the prompt behind a stuck active request.""" + + class StickyWorker: + def pause(self): + pass + + def resume(self): + pass + + @property + def active_task(self): + return { + 'label': 'https://example.test/stuck', + 'started_at': 1.0, + } + + with patch('src.lib.browser.threadpool.Worker', side_effect=lambda q, n, t: FakeWorker(q, n, t)): + pool = ThreadPool(num_threads=1, total_items=5, timeout=0) + + setattr(pool, '_ThreadPool__workers', [StickyWorker()]) + pool.PAUSE_PROMPT_DRAIN_TIMEOUT_SEC = 0.0 + + with patch('src.lib.browser.threadpool.tpl.info'), \ + patch('src.lib.browser.threadpool.tpl.prompt', return_value='c') as prompt_mock, \ + patch('src.lib.browser.threadpool.time.sleep') as sleep_mock: + pool.pause() + + prompt_mock.assert_called_once_with(key='option_prompt') + sleep_mock.assert_not_called() + self.assertTrue(pool.is_started) + def test_pause_raises_keyboard_interrupt_on_e(self): """ThreadPool.pause() should raise KeyboardInterrupt on 'e'.""" From c07f0b490a2ec4876d8e1148ba0aa59334656460 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Tue, 26 May 2026 21:23:33 +0300 Subject: [PATCH 12/42] Reduce malware false positives from URL-echoed webshell names --- .dockerignore | 3 +- .gitignore | 1 + CHANGELOG.md | 4 +- data/directories.dat | 6 +- src/core/http/plugins/response/malware.py | 105 +++++++++++++++++- ...test_core_http_plugins_response_malware.py | 104 +++++++++++++++++ 6 files changed, 216 insertions(+), 7 deletions(-) diff --git a/.dockerignore b/.dockerignore index 7256dd1d..1effe158 100644 --- a/.dockerignore +++ b/.dockerignore @@ -93,4 +93,5 @@ debian/*.substvars # Misc TODO -ROADMAP.md \ No newline at end of file +ROADMAP.md +test.py \ No newline at end of file diff --git a/.gitignore b/.gitignore index dbd18909..b748ae63 100644 --- a/.gitignore +++ b/.gitignore @@ -90,3 +90,4 @@ debian/*.substvars *.dsc *.tar.xz /debug.sh +/test.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 482ce9d7..e7cab219 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ CHANGELOG ======= v5.16.2 (xx.06.2026) --------------------------- +- (fix) `--sniff malware` false positives when fallback pages repeatedly echo webshell-like names inside URL/query attributes, while preserving real webshell UI and executable payload detections. - (fix) false-positive OK findings when a target returns a canonical 404/410 error body with a transient 2xx status by adding strict cross-status soft-error calibration. - (fix) `--sniff shadow` false positives on soft-200/fallback routes by adding a negative-control probe before reporting backup-file variants. - (fix) subdomain scans so missing/no-response candidates are skipped without triggering the directory retry fail-streak abort guard. @@ -10,8 +11,7 @@ v5.16.2 (xx.06.2026) - (fix) reduced WAF-safe auto-calibration noise by using neutral calibration probe paths when `--waf-safe-mode` is enabled, avoiding high-risk `.php`, `.map`, `admin`, and `wp-*` probe shapes. - (fix) `--sniff malware` false positives on security-plugin documentation by suppressing name-only webshell vocabulary in documentation context while preserving executable payload and shell UI detections. - (fix) clarified Runtime Diagnostics queue accounting by showing consumed items, submitted HTTP jobs, and pre-request skipped items separately. -- (fix) preserved the current queued scan item when Ctrl+C opens the runtime pause prompt during task submission and the scan is resumed. -- (fix) made the runtime pause prompt visible after in-flight worker output drains, avoiding prompt/result interleaving after Ctrl+C. +- (fix) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt visible after in-flight worker output drains, while preserving Enter/C continue and E/Q abort semantics. - (enhancement) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt describe Enter/C continue, E/Q abort, and active-request drain semantics. - (enhancement) reduced `--sniff malware` false positives for standard Bitrix admin login pages by allowlisting the built-in hidden `auth_frame` iframe only when strong Bitrix login markers are present. - (dictionary) cleaned and normalized the internal directories list (+XXX potential interesting paths). diff --git a/data/directories.dat b/data/directories.dat index a3bf8bba..0c0bae95 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -9501,6 +9501,7 @@ action.filesform.php action.html action.importxml.php action.jsp +action.log action.module.php action.newdir.php action.php @@ -35628,6 +35629,8 @@ components/com_foxcontact/up.php components/com_foxcontact/upload.php components/com_hdflvplayer/hdflvplayer/download.php components/com_hdflvplayer/hdflvplayer/unduh.php +components/com_jce +components/com_jce/licence.txt components/com_users/views components/login components/login.ascx @@ -71412,11 +71415,9 @@ master-admin.php master.css.php master.dwt master.htm -action.log master.html master.key master.log -systems/admin.js master.passwd master.php master.swf @@ -104944,6 +104945,7 @@ systems Systems systems. systems.php +systems/admin.js systems/login SystemService.asmx systemsoft diff --git a/src/core/http/plugins/response/malware.py b/src/core/http/plugins/response/malware.py index 70075b72..a092ee78 100644 --- a/src/core/http/plugins/response/malware.py +++ b/src/core/http/plugins/response/malware.py @@ -173,6 +173,20 @@ class MalwareResponsePlugin(ResponsePluginProvider): ) SECURITY_DOCUMENTATION_MIN_MARKERS = 3 SECURITY_DOCUMENTATION_CONTEXT_WINDOW = 800 + URL_ECHO_CONTEXT_WINDOW = 180 + URL_ECHO_TOKEN_DELIMITERS = ' \t\r\n\"\'<>`{}|^' + PATH_ECHO_EXTENSIONS = ( + '.php', + '.phtml', + '.phar', + '.inc', + '.txt', + '.bak', + '.old', + '.orig', + '.save', + '.tmp', + ) def __init__(self, _void): """ @@ -271,11 +285,38 @@ def _is_allowed_match(cls, signal, match, source=''): if signal.get('signal') == 'hidden-iframe' and cls._is_bitrix_login_auth_frame(source, match): return True - if signal.get('signal') == 'known-webshell-name' and cls._is_security_documentation_match(source, match): - return True + if signal.get('signal') == 'known-webshell-name': + if cls._is_security_documentation_match(source, match): + return True + + if cls._is_url_echo_webshell_name_match(source, match): + return True return False + @classmethod + def _is_url_echo_webshell_name_match(cls, source, match): + """ + Decide whether a known webshell name is only echoed as a URL/path token. + + Some fallback templates include the requested URL in canonical, OpenGraph, + breadcrumb, link, form action or plain path text. A path such as + ``/images/c99.php`` is weak evidence by itself and should not produce a + malware finding unless nearby content also looks like a webshell UI or + executable payload. + + :param str source: full decoded response body + :param re.Match match: known-webshell-name regex match + :return: True when the name-only URL/path echo should be ignored + :rtype: bool + """ + + if cls._has_webshell_execution_context(source, match): + return False + + token = cls._extract_token_around_match(source, match, cls.URL_ECHO_CONTEXT_WINDOW) + return cls._is_path_like_echo_token(token, match.group(0)) + @classmethod def _is_security_documentation_match(cls, source, match): """ @@ -345,6 +386,66 @@ def _extract_context_window(source, match, radius): end = min(len(text), int(match.end()) + int(radius)) return text[start:end] + @classmethod + def _extract_token_around_match(cls, source, match, radius): + """ + Extract a URL/path-like token around a regex match. + + :param str source: full decoded response body + :param re.Match match: known-webshell-name regex match + :param int radius: maximum expansion on each side + :return: bounded token containing the match + :rtype: str + """ + + text = str(source or '') + start = int(match.start()) + end = int(match.end()) + left_limit = max(0, start - int(radius)) + right_limit = min(len(text), end + int(radius)) + + while start > left_limit and text[start - 1] not in cls.URL_ECHO_TOKEN_DELIMITERS: + start -= 1 + + while end < right_limit and text[end] not in cls.URL_ECHO_TOKEN_DELIMITERS: + end += 1 + + token = text[start:end].strip() + token = re.sub(r'^[A-Za-z0-9_:-]+\s*=\s*', '', token).strip() + + return token + + @classmethod + def _is_path_like_echo_token(cls, token, evidence): + """ + Check whether a token is a URL/path echo rather than shell identity text. + + :param str token: token extracted around the known-webshell-name match + :param str evidence: matched known webshell name + :return: True when the token is path-like + :rtype: bool + """ + + value = str(token or '').strip('()[];,') + lower = value.lower() + marker = str(evidence or '').lower() + + if not marker or marker not in lower: + return False + + if lower.startswith(('http://', 'https://', '//', '/', './', '../')): + return True + + if '/' in lower: + return True + + marker_index = lower.find(marker) + suffix = lower[marker_index + len(marker):] + if suffix.startswith(cls.PATH_ECHO_EXTENSIONS): + return True + + return False + @classmethod def _is_bitrix_login_auth_frame(cls, source, match): """ diff --git a/tests/test_core_http_plugins_response_malware.py b/tests/test_core_http_plugins_response_malware.py index 515ee7d2..d1a43ea5 100644 --- a/tests/test_core_http_plugins_response_malware.py +++ b/tests/test_core_http_plugins_response_malware.py @@ -128,6 +128,110 @@ def test_ignores_security_documentation_known_webshell_vocabulary(self): self.assertIsNone(MalwareResponsePlugin(None).process(response)) self.assertFalse(hasattr(response, 'opendoor_malware_detection')) + def test_ignores_known_webshell_name_when_only_reflected_in_url_attributes(self): + """Fallback pages should not trigger malware from path-only URL echoes.""" + + body = ''' + + + + Product catalogue + + + + + + Continue browsing +
+ +
+

Ordinary fallback template for a missing catalogue route.

+ + + ''' + response = self.make_response(body=body.encode('utf-8')) + + self.assertIsNone(MalwareResponsePlugin(None).process(response)) + self.assertFalse(hasattr(response, 'opendoor_malware_detection')) + + def test_ignores_repeated_webshell_names_reflected_in_url_query_attributes(self): + """Fallback language links should not trigger from repeated URL query echoes.""" + + body = ''' + + + + Product catalogue + + + + Türkçe + English + Русский + العربية +

Ordinary fallback template with language switcher links.

+ + + ''' + response = self.make_response(body=body.encode('utf-8')) + + self.assertIsNone(MalwareResponsePlugin(None).process(response)) + self.assertFalse(hasattr(response, 'opendoor_malware_detection')) + + def test_still_detects_known_webshell_name_when_url_echo_has_shell_ui_context(self): + """URL echoes must not hide real shell UI indicators nearby.""" + + body = ''' + + + + + WSO Shell + + + Current directory: /var/www/html +
+ + +
+ chmod safe_mode disable_functions + + + ''' + + detection = self.assert_malware_detection( + body, + 'webshell', + 'known-webshell-marker', + 98, + ) + + self.assertIn('known-webshell-name', detection['signals']) + + def test_still_detects_executable_payload_when_known_name_is_only_url_echo(self): + """Path-only suppression must not hide strong executable payload signals.""" + + body = ''' + + + + + + + + + + ''' + + detection = self.assert_malware_detection( + body, + 'webshell', + 'known-webshell-marker', + 98, + ) + + self.assertIn('request-driven-command-exec', detection['signals']) + def test_still_detects_known_webshell_name_with_shell_ui_context(self): """Documentation markers must not hide a real webshell-like UI context.""" From f7fd2b7e5b94db3afe9d7bd7a74beccc92889181 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Wed, 27 May 2026 14:03:35 +0300 Subject: [PATCH 13/42] docs: add Mastering OpenDoor companion page --- CHANGELOG.md | 9 ++-- data/directories.dat | 51 ++++++++++++++++++++ docs/guides/mastering-opendoor.md | 80 +++++++++++++++++++++++++++++++ docs/index.md | 1 + mkdocs.yml | 2 + 5 files changed, 139 insertions(+), 4 deletions(-) create mode 100644 docs/guides/mastering-opendoor.md diff --git a/CHANGELOG.md b/CHANGELOG.md index e7cab219..b1372879 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,15 +6,16 @@ v5.16.2 (xx.06.2026) - (fix) false-positive OK findings when a target returns a canonical 404/410 error body with a transient 2xx status by adding strict cross-status soft-error calibration. - (fix) `--sniff shadow` false positives on soft-200/fallback routes by adding a negative-control probe before reporting backup-file variants. - (fix) subdomain scans so missing/no-response candidates are skipped without triggering the directory retry fail-streak abort guard. -- (fix) directory scan prefix normalization so `--prefix locale` and `--prefix locale/` both scan under `/locale/` instead of concatenating paths as `/locale`. +- (fix) directory scan prefix normalization so `--prefix ex` and `--prefix ex/` both scan under `/ex/` instead of concatenating paths as `/ex`. - (fix) `--auto-calibrate` now disables weak HTTP baselines when too many probes are blocked, ignored, or failed, preventing sparse signatures from over-filtering scan results. - (fix) reduced WAF-safe auto-calibration noise by using neutral calibration probe paths when `--waf-safe-mode` is enabled, avoiding high-risk `.php`, `.map`, `admin`, and `wp-*` probe shapes. - (fix) `--sniff malware` false positives on security-plugin documentation by suppressing name-only webshell vocabulary in documentation context while preserving executable payload and shell UI detections. -- (fix) clarified Runtime Diagnostics queue accounting by showing consumed items, submitted HTTP jobs, and pre-request skipped items separately. -- (fix) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt visible after in-flight worker output drains, while preserving Enter/C continue and E/Q abort semantics. -- (enhancement) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt describe Enter/C continue, E/Q abort, and active-request drain semantics. +- (enhancement) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt visible after in-flight worker output drains, while preserving Enter/C continue and E/Q abort semantics. - (enhancement) reduced `--sniff malware` false positives for standard Bitrix admin login pages by allowlisting the built-in hidden `auth_frame` iframe only when strong Bitrix login markers are present. +- (ui) clarified Runtime Diagnostics queue accounting by showing consumed items, submitted HTTP jobs, and pre-request skipped items separately. +- (ui) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt describe Enter/C continue, E/Q abort, and active-request drain semantics. - (dictionary) cleaned and normalized the internal directories list (+XXX potential interesting paths). +- (docs) added a `Mastering OpenDoor` companion documentation page for the upcoming article series. v5.16.1 (24.05.2026) --------------------------- diff --git a/data/directories.dat b/data/directories.dat index 0c0bae95..49aaaebc 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -10942,7 +10942,12 @@ admin-area-settings admin-area-support admin-area-tools admin-area-users +admin-area-v2/auth +admin-area-v2/login +admin-area-v2/signin +admin-area.htm admin-area.php +admin-area.phtml admin-area/account admin-area/account.php admin-area/accounts.php @@ -11718,6 +11723,10 @@ admin-users admin-web admin-web.php admin-wjg +admin-zone +admin-zone/auth +admin-zone/login +admin-zone/signin admin. admin../admin admin.admin.html.php @@ -17791,7 +17800,11 @@ adminxxx.php adminz adminz.php adminzone +adminzone-new +adminzone-old adminzone.php +adminzone/auth +adminzone_old admin~ admiral admisapi @@ -25205,6 +25218,10 @@ back back-end back-end/app/.env back-office +back-office.htm +back-office.php +back-office.phtml +back-office.txt back-office/2fa back-office/about back-office/access @@ -37382,6 +37399,8 @@ control-panel/version control-panel/webhooks control-panel/withdrawals control-panel/workers +control-room.php +control-room.phtml control.asp control.aspx control.dat @@ -37561,6 +37580,9 @@ control_light.php control_panel control_panel.php control_panel/login +control_room.htm +control_room.php +control_room.phtml controladmin controlBase controlcenter @@ -68253,7 +68275,13 @@ log/.env log/access.dat log/access.log log/access_log +log/admin-access.bak +log/admin-access.old +log/admin-error.log +log/admin-error.txt log/admin.log +log/admin_access.log +log/admin_access.txt log/app.log log/audit.log log/auth.log @@ -70594,6 +70622,9 @@ managelogin.php managemail.php managemake.aspx management +management-console.htm +management-console.php +management-console.phtml management.aspx management.htm management.html @@ -70744,6 +70775,9 @@ management/version management/webhooks management/withdrawals management/workers +management_console.htm +management_console.php +management_console.phtml managementconfigprops managementenv managepanel @@ -79708,6 +79742,9 @@ operation.htm operations operations.html operator +operator-console.htm +operator-console.php +operator-console.phtml operator.htm operator.php operator.phtml @@ -79852,6 +79889,8 @@ operator/version operator/webhooks operator/withdrawals operator/workers +operator_console.htm +operator_console.phtml operatori operators operators.html @@ -99461,6 +99500,10 @@ site72 site2010 site-admin site-admin.php +site-admin/auth +site-admin/login +site-admin/logs +site-admin/signin site-config site-contact.html site-help.html @@ -101866,6 +101909,9 @@ stadtplan-d.html stadtteilplaene staff staff-area +staff-console.htm +staff-console.php +staff-console.phtml staff-list.php staff-login.php staff.asp @@ -102022,6 +102068,8 @@ staff/workers staff_area staff_buttons.php staff_buttonsEN.php +staff_console.htm +staff_console.phtml staff_directory staff_directory.cfm staff_display.cfm @@ -104690,7 +104738,10 @@ system43.php system51.php system81.php system-admin +system-admin.htm system-admin.php +system-admin.phtml +system-admin.txt system-administration system-administration.php system-config/.env diff --git a/docs/guides/mastering-opendoor.md b/docs/guides/mastering-opendoor.md new file mode 100644 index 00000000..76d4128e --- /dev/null +++ b/docs/guides/mastering-opendoor.md @@ -0,0 +1,80 @@ +# Mastering OpenDoor + +Mastering OpenDoor is a practical article series for learning authorized web reconnaissance, context-aware directory discovery, response analysis, and report-driven exposure validation with OpenDoor. + +The full articles are intended for Medium. This page is the official companion page for stable commands, lab setup, and responsible-use boundaries. + +> Use OpenDoor only on systems you own or have explicit permission to test. + +--- + +## Articles + +| Article | Status | Focus | +|---|---|---| +| Part 1 — Context-Aware Discovery | Planned | Installation, first scan, fingerprint-first workflow, response buckets, and basic reports. | +| Part 2 — Low-Noise Recon | Planned | Auto-calibration, response filters, sniffers, WAF-safe scanning, and practical scan profiles. | +| Part 3 — Automation and CI/CD | Planned | JSON, HTML, SQLite, SARIF, fail-on buckets, report diffing, and exposure regression checks. | + +Medium links will be added after publication. + +--- + +## Recommended local lab target + +Use a local authorized target while following the series. + +```shell +http://127.0.0.1:8080 +``` + +Do not scan third-party public systems while reproducing the examples unless you have explicit permission. + +--- + +## Baseline command + +```shell +opendoor \ + --host http://127.0.0.1:8080 \ + --fingerprint \ + --reports std,html,json +``` + +This command is intentionally conservative and suitable for the first article in the series. + +--- + +## What the series covers + +- authorized target setup; +- installation and update basics; +- first directory discovery scan; +- fingerprint-first discovery; +- response buckets and signal interpretation; +- auto-calibration and response filtering; +- response sniffers; +- HTML, JSON, SQLite, and SARIF reports; +- CI/CD exposure regression workflows. + +--- + +## What the series avoids + +- scanning real third-party targets without authorization; +- publishing cookies, bearer tokens, VPN profiles, or private reports; +- WAF bypass deep dives; +- credential submission; +- exploit payloads; +- aggressive or hidden request-volume behavior. + +--- + +## Publication workflow + +Use this page as the stable project-side reference for the Medium series: + +1. prepare and validate the local lab commands; +2. publish the full article on Medium; +3. add the Medium link to the table above; +4. keep long explanations on Medium and stable commands in this documentation page. diff --git a/docs/index.md b/docs/index.md index 3e2bb3d1..12a79e94 100644 --- a/docs/index.md +++ b/docs/index.md @@ -17,6 +17,7 @@ OpenDoor supports single-target and batch scanning, custom wordlists, response f | Page | Purpose | |---|---| | [Quickstart](quickstart.md) | Install OpenDoor and run common scans quickly. | +| [Mastering OpenDoor](guides/mastering-opendoor.md) | Hands-on article series companion with stable commands and lab setup. | | [Installation and update](Installation-and-update.md) | Install and update with Homebrew, pipx, pip, Docker, Linux packages, or source checkouts. | | [Usage](Usage.md) | Full CLI usage and option reference. | | [Sniffers](Sniffers.md) | Built-in response analysis and false-positive reduction. | diff --git a/mkdocs.yml b/mkdocs.yml index 77955cd6..48622276 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -13,6 +13,8 @@ extra: nav: - Home: index.md - Quickstart: quickstart.md + - Guides: + - Mastering OpenDoor: guides/mastering-opendoor.md - Installation and update: Installation-and-update.md - Usage: Usage.md - Concepts: From 042794c63d51bdf890d8cc87e54c3d54d71689c0 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Wed, 27 May 2026 14:30:55 +0300 Subject: [PATCH 14/42] docs: add Mastering OpenDoor local lab --- docs/guides/mastering-opendoor.md | 41 ++++- examples/mastering-lab/README.md | 45 +++++ examples/mastering-lab/server.py | 258 ++++++++++++++++++++++++++++ examples/mastering-lab/wordlist.txt | 14 ++ 4 files changed, 354 insertions(+), 4 deletions(-) create mode 100644 examples/mastering-lab/README.md create mode 100644 examples/mastering-lab/server.py create mode 100644 examples/mastering-lab/wordlist.txt diff --git a/docs/guides/mastering-opendoor.md b/docs/guides/mastering-opendoor.md index 76d4128e..eade96f6 100644 --- a/docs/guides/mastering-opendoor.md +++ b/docs/guides/mastering-opendoor.md @@ -22,13 +22,21 @@ Medium links will be added after publication. ## Recommended local lab target -Use a local authorized target while following the series. +Use the deterministic local lab from the repository while following the series. + +Start the lab in one terminal: ```shell +python examples/mastering-lab/server.py +``` + +The server listens on: + +```text http://127.0.0.1:8080 ``` -Do not scan third-party public systems while reproducing the examples unless you have explicit permission. +Use another terminal for OpenDoor commands. Do not scan third-party public systems while reproducing the examples unless you have explicit permission. --- @@ -36,15 +44,40 @@ Do not scan third-party public systems while reproducing the examples unless you ```shell opendoor \ - --host http://127.0.0.1:8080 \ + --host http://127.0.0.1 \ + --port 8080 \ + --method GET \ + --threads 1 \ + --wordlist examples/mastering-lab/wordlist.txt \ --fingerprint \ - --reports std,html,json + --reports std,html,json \ + --reports-dir reports/mastering-lab ``` This command is intentionally conservative and suitable for the first article in the series. --- +## Low-noise command + +```shell +opendoor \ + --host http://127.0.0.1 \ + --port 8080 \ + --method GET \ + --threads 1 \ + --wordlist examples/mastering-lab/wordlist.txt \ + --include-status 200-299,301,401,403,500 \ + --exclude-status 404 \ + --sniff indexof,file,stacktrace,skipempty \ + --reports std,html,json,sarif \ + --reports-dir reports/mastering-lab +``` + +Use this command after the baseline scan to demonstrate cleaner report output and body-aware response analysis. + +--- + ## What the series covers - authorized target setup; diff --git a/examples/mastering-lab/README.md b/examples/mastering-lab/README.md new file mode 100644 index 00000000..3ec03eaa --- /dev/null +++ b/examples/mastering-lab/README.md @@ -0,0 +1,45 @@ +# OpenDoor Mastering Lab + +This directory contains the deterministic local HTTP target used by the +Mastering OpenDoor article series. + +The lab binds to `127.0.0.1` only and is intended for authorized local testing, +documentation screenshots and repeatable command validation. + +## Start the lab + +```shell +python examples/mastering-lab/server.py +``` + +Use another terminal for OpenDoor commands. + +## Baseline scan + +```shell +opendoor \ + --host http://127.0.0.1 \ + --port 8080 \ + --method GET \ + --threads 1 \ + --wordlist examples/mastering-lab/wordlist.txt \ + --fingerprint \ + --reports std,html,json \ + --reports-dir reports/mastering-lab +``` + +## Low-noise scan + +```shell +opendoor \ + --host http://127.0.0.1 \ + --port 8080 \ + --method GET \ + --threads 1 \ + --wordlist examples/mastering-lab/wordlist.txt \ + --include-status 200-299,301,401,403,500 \ + --exclude-status 404 \ + --sniff indexof,file,stacktrace,skipempty \ + --reports std,html,json,sarif \ + --reports-dir reports/mastering-lab +``` diff --git a/examples/mastering-lab/server.py b/examples/mastering-lab/server.py new file mode 100644 index 00000000..c9bc90ee --- /dev/null +++ b/examples/mastering-lab/server.py @@ -0,0 +1,258 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +Deterministic local HTTP lab for the Mastering OpenDoor article series. + +The fixture is intentionally small, local-only and safe to run on a developer +machine. It exposes a mixed set of routes that demonstrate common discovery +signals without requiring a third-party target. +""" + +from __future__ import annotations + +import argparse +import json +from http import HTTPStatus +from http.server import BaseHTTPRequestHandler, HTTPServer +from typing import Final +from urllib.parse import urlsplit + + +HOST: Final = "127.0.0.1" +DEFAULT_PORT: Final = 8080 + + +class Route: + """Static route definition used by the local lab server.""" + + def __init__( + self, + status: int, + body: str | bytes, + content_type: str = "text/plain; charset=utf-8", + headers: dict[str, str] | None = None, + ) -> None: + """ + Create a route response. + + :param status: HTTP status code returned by the route. + :param body: Response body as text or bytes. + :param content_type: Response Content-Type header. + :param headers: Optional extra response headers. + :return: None. + """ + self.status = status + self.body = body + self.content_type = content_type + self.headers = headers or {} + + def body_bytes(self) -> bytes: + """ + Return the route body encoded as bytes. + + :return: Response body bytes. + """ + if isinstance(self.body, bytes): + return self.body + + return self.body.encode("utf-8") + + +ROUTES: Final[dict[str, Route]] = { + "/": Route( + HTTPStatus.OK, + """ + + OpenDoor Mastering Lab + +

OpenDoor Mastering Lab

+ Admin + Login + API users + Uploads + + +""", + "text/html; charset=utf-8", + {"X-Lab": "opendoor-mastering"}, + ), + "/admin": Route( + HTTPStatus.OK, + """ + + Demo Admin Panel + +

Demo Admin Panel

+
+ + + +
+ + +""", + "text/html; charset=utf-8", + ), + "/login": Route( + HTTPStatus.OK, + """ + + Demo Login +

Demo Login

This is a local training fixture.

+ +""", + "text/html; charset=utf-8", + {"Set-Cookie": "opendoor_demo_session=placeholder; Path=/; HttpOnly"}, + ), + "/api/users": Route( + HTTPStatus.OK, + json.dumps( + { + "users": [ + {"id": 1, "role": "admin", "name": "Alice"}, + {"id": 2, "role": "analyst", "name": "Bob"}, + ] + }, + indent=2, + ), + "application/json; charset=utf-8", + ), + "/uploads/": Route( + HTTPStatus.OK, + """ + + Index of /uploads/ + +

Index of /uploads/

+ report.pdf + avatar.png + + +""", + "text/html; charset=utf-8", + ), + "/backup.zip": Route( + HTTPStatus.OK, + b"PK\x03\x04\x14\x00opendoor-demo-backup-placeholder\n", + "application/zip", + {"Content-Disposition": "attachment; filename=backup.zip"}, + ), + "/.git/HEAD": Route( + HTTPStatus.OK, + "ref: refs/heads/main\n", + "text/plain; charset=utf-8", + ), + "/.env": Route( + HTTPStatus.OK, + "APP_ENV=demo\nOPENDOOR_PLACEHOLDER_TOKEN=replace-me\nDATABASE_URL=sqlite:///demo.db\n", + "text/plain; charset=utf-8", + ), + "/forbidden": Route( + HTTPStatus.FORBIDDEN, + "Forbidden\n", + "text/plain; charset=utf-8", + ), + "/auth-required": Route( + HTTPStatus.UNAUTHORIZED, + "Unauthorized\n", + "text/plain; charset=utf-8", + {"WWW-Authenticate": "Basic realm=OpenDoor Demo"}, + ), + "/redirect": Route( + HTTPStatus.MOVED_PERMANENTLY, + "Moved\n", + "text/plain; charset=utf-8", + {"Location": "/login"}, + ), + "/server-error": Route( + HTTPStatus.INTERNAL_SERVER_ERROR, + """Traceback (most recent call last): + File \"/srv/app/demo.py\", line 42, in handler + raise RuntimeError(\"OpenDoor demo stack trace\") +RuntimeError: OpenDoor demo stack trace +""", + "text/plain; charset=utf-8", + ), +} + + +class MasteringLabHandler(BaseHTTPRequestHandler): + """HTTP handler for deterministic OpenDoor training routes.""" + + def do_HEAD(self) -> None: + """ + Serve a deterministic HEAD response. + + :return: None. + """ + self._respond(with_body=False) + + def do_GET(self) -> None: + """ + Serve a deterministic GET response. + + :return: None. + """ + self._respond(with_body=True) + + def _respond(self, with_body: bool) -> None: + """ + Send a response for the requested path. + + :param with_body: Whether the response body should be written. + :return: None. + """ + path = urlsplit(self.path).path + route = ROUTES.get(path, Route(HTTPStatus.NOT_FOUND, "Not Found\n")) + body = route.body_bytes() + + self.send_response(route.status) + self.send_header("Content-Type", route.content_type) + self.send_header("Content-Length", str(len(body))) + + for name, value in route.headers.items(): + self.send_header(name, value) + + self.end_headers() + + if with_body: + self.wfile.write(body) + + def log_message(self, fmt: str, *args: object) -> None: + """ + Silence per-request access logs to keep article screenshots clean. + + :param fmt: BaseHTTPRequestHandler format string. + :param args: Format arguments. + :return: None. + """ + return + + +def parse_args() -> argparse.Namespace: + """ + Parse command-line arguments for the local lab server. + + :return: Parsed command-line arguments. + """ + parser = argparse.ArgumentParser(description="Run the OpenDoor Mastering local lab server.") + parser.add_argument("--port", type=int, default=DEFAULT_PORT, help="Local TCP port to listen on.") + return parser.parse_args() + + +def main() -> int: + """ + Start the local-only HTTP lab server. + + :return: Process exit code. + """ + args = parse_args() + server = HTTPServer((HOST, args.port), MasteringLabHandler) + print(f"OpenDoor Mastering lab listening on http://{HOST}:{args.port}", flush=True) + server.serve_forever() + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/examples/mastering-lab/wordlist.txt b/examples/mastering-lab/wordlist.txt new file mode 100644 index 00000000..9fafe369 --- /dev/null +++ b/examples/mastering-lab/wordlist.txt @@ -0,0 +1,14 @@ +admin +login +api/users +uploads/ +backup.zip +.git/HEAD +.env +forbidden +auth-required +redirect +server-error +nonexistent +ghost +random-miss From f6e6b0286dec374bd77a47965225c53afb0fa9b7 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Wed, 27 May 2026 17:40:31 +0300 Subject: [PATCH 15/42] Allowlist legacy Google Analytics document.write loader --- data/directories.dat | 1 + src/core/http/plugins/response/malware.py | 59 ++++++++++++++ ...test_core_http_plugins_response_malware.py | 78 +++++++++++++++++++ 3 files changed, 138 insertions(+) diff --git a/data/directories.dat b/data/directories.dat index 49aaaebc..a464b422 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -11242,6 +11242,7 @@ admin-console/signin.php admin-console/signout.php admin-console/signup.php admin-console/sso +f.php admin-console/staff.php admin-console/start.php admin-console/status diff --git a/src/core/http/plugins/response/malware.py b/src/core/http/plugins/response/malware.py index a092ee78..bafbc5eb 100644 --- a/src/core/http/plugins/response/malware.py +++ b/src/core/http/plugins/response/malware.py @@ -285,6 +285,10 @@ def _is_allowed_match(cls, signal, match, source=''): if signal.get('signal') == 'hidden-iframe' and cls._is_bitrix_login_auth_frame(source, match): return True + if signal.get('signal') == 'suspicious-document-write-script': + if cls._is_legacy_google_analytics_document_write(source, match): + return True + if signal.get('signal') == 'known-webshell-name': if cls._is_security_documentation_match(source, match): return True @@ -294,6 +298,61 @@ def _is_allowed_match(cls, signal, match, source=''): return False + @classmethod + def _is_legacy_google_analytics_document_write(cls, source, match): + """ + Decide whether a document.write(unescape(...)) match is legacy GA. + + The drive-by-script signal intentionally treats document.write combined + with unescape/atob/String.fromCharCode as suspicious. Classic Google + Analytics snippets also used document.write(unescape(...ga.js...)), so + allowlist only that narrow GA loader shape and require nearby GA tracker + markers. Unknown scripts, atob, String.fromCharCode and other loaders + remain reportable. + + :param str source: full decoded response body + :param re.Match match: suspicious-document-write-script regex match + :return: True when this is the benign legacy Google Analytics loader + :rtype: bool + """ + + if 'unescape' not in match.group(0).lower(): + return False + + statement = cls._extract_js_statement(source, match) + if 'google-analytics.com/ga.js' not in statement.lower(): + return False + + context = cls._extract_context_window(source, match, 2500) + return any( + marker in context + for marker in ( + '_gat._getTracker', + '_trackPageview', + '_gaq.push', + 'UA-', + ) + ) + + @staticmethod + def _extract_js_statement(source, match): + """ + Extract a bounded JavaScript statement around a regex match. + + :param str source: full decoded response body + :param re.Match match: regex match starting inside a JS statement + :return: bounded JavaScript statement + :rtype: str + """ + + text = str(source or '') + start = int(match.start()) + end = text.find(';', start, start + 1200) + if end < 0: + return text[start:start + 1200] + + return text[start:end + 1] + @classmethod def _is_url_echo_webshell_name_match(cls, source, match): """ diff --git a/tests/test_core_http_plugins_response_malware.py b/tests/test_core_http_plugins_response_malware.py index d1a43ea5..c67a40e3 100644 --- a/tests/test_core_http_plugins_response_malware.py +++ b/tests/test_core_http_plugins_response_malware.py @@ -310,6 +310,84 @@ def test_detects_encoded_loader_hidden_iframe_and_miner_markers(self): with self.subTest(family=family): self.assert_malware_detection(body, subtype, family, confidence) + def test_ignores_legacy_google_analytics_document_write_unescape_loader(self): + """Classic GA document.write(unescape(...ga.js...)) should not be malware.""" + + body = ''' + + + ''' + response = self.make_response(body=body.encode('utf-8')) + + self.assertIsNone(MalwareResponsePlugin(None).process(response)) + self.assertFalse(hasattr(response, 'opendoor_malware_detection')) + + def test_ignores_split_host_legacy_google_analytics_document_write_loader(self): + """Classic GA split gaJsHost loader should not trigger drive-by detection.""" + + body = ''' + + + ''' + response = self.make_response(body=body.encode('utf-8')) + + self.assertIsNone(MalwareResponsePlugin(None).process(response)) + self.assertFalse(hasattr(response, 'opendoor_malware_detection')) + + def test_still_detects_unknown_document_write_unescape_script_loader(self): + """Unknown document.write(unescape(...script...)) loaders remain reportable.""" + + body = ''' + + ''' + + detection = self.assert_malware_detection(body, 'malware', 'drive-by-script', 72) + self.assertIn('suspicious-document-write-script', detection['signals']) + + def test_still_detects_document_write_atob_loader(self): + """The GA allowlist must not suppress atob based document.write loaders.""" + + body = '' + + detection = self.assert_malware_detection(body, 'malware', 'drive-by-script', 72) + self.assertIn('suspicious-document-write-script', detection['signals']) + + def test_still_detects_document_write_string_from_char_code_loader(self): + """The GA allowlist must not suppress String.fromCharCode loaders.""" + + body = '' + + detection = self.assert_malware_detection(body, 'malware', 'drive-by-script', 72) + self.assertIn('suspicious-document-write-script', detection['signals']) + + def test_google_analytics_allowlist_does_not_affect_php_payload_signals(self): + """The GA allowlist must not alter PHP eval/system detections.""" + + samples = ( + ("", 'php-command-execution', 'request-driven-command-exec'), + ("", 'php-code-execution', 'request-driven-eval-or-assert'), + ) + + for body, family, signal in samples: + with self.subTest(signal=signal): + detection = self.assert_malware_detection(body, 'webshell', family, 96, headers={'Content-Type': 'text/plain'}) + self.assertIn(signal, detection['signals']) + def test_detects_vendor_json_content_types(self): """Vendor JSON responses should be inspected when they carry malware indicators.""" From d295239eeea1d032ef5feb8b4faa7520789718d4 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Wed, 27 May 2026 17:41:28 +0300 Subject: [PATCH 16/42] Allowlist legacy Google Analytics document.write loader --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b1372879..ba7e7224 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ v5.16.2 (xx.06.2026) - (fix) `--auto-calibrate` now disables weak HTTP baselines when too many probes are blocked, ignored, or failed, preventing sparse signatures from over-filtering scan results. - (fix) reduced WAF-safe auto-calibration noise by using neutral calibration probe paths when `--waf-safe-mode` is enabled, avoiding high-risk `.php`, `.map`, `admin`, and `wp-*` probe shapes. - (fix) `--sniff malware` false positives on security-plugin documentation by suppressing name-only webshell vocabulary in documentation context while preserving executable payload and shell UI detections. +- (fix) `--sniff malware` false positives on legacy Google Analytics loaders while preserving suspicious document.write, atob, String.fromCharCode and PHP payload detections. - (enhancement) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt visible after in-flight worker output drains, while preserving Enter/C continue and E/Q abort semantics. - (enhancement) reduced `--sniff malware` false positives for standard Bitrix admin login pages by allowlisting the built-in hidden `auth_frame` iframe only when strong Bitrix login markers are present. - (ui) clarified Runtime Diagnostics queue accounting by showing consumed items, submitted HTTP jobs, and pre-request skipped items separately. From 8e289861140ac01770468cc71f0a35e5443a4234 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Wed, 27 May 2026 20:06:26 +0300 Subject: [PATCH 17/42] fix(runtime): keep pause prompt on a clean terminal line --- data/directories.dat | 1 + src/lib/browser/threadpool.py | 2 +- src/lib/tpl/tpl.py | 8 +++++++- tests/test_lib_browser_threadpool_worker.py | 9 +++++---- tests/test_lib_tpl.py | 14 ++++++++++++++ 5 files changed, 28 insertions(+), 6 deletions(-) diff --git a/data/directories.dat b/data/directories.dat index a464b422..14457ddc 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -11243,6 +11243,7 @@ admin-console/signout.php admin-console/signup.php admin-console/sso f.php +_buran/seoModule.php admin-console/staff.php admin-console/start.php admin-console/status diff --git a/src/lib/browser/threadpool.py b/src/lib/browser/threadpool.py index 18d45dd3..e3d74184 100644 --- a/src/lib/browser/threadpool.py +++ b/src/lib/browser/threadpool.py @@ -403,7 +403,7 @@ def pause(self): try: while True: - option = self.normalize_runtime_pause_answer(tpl.prompt(key='option_prompt')) + option = self.normalize_runtime_pause_answer(tpl.prompt(key='option_prompt', newline=True)) if option == 'E': raise KeyboardInterrupt diff --git a/src/lib/tpl/tpl.py b/src/lib/tpl/tpl.py index 938b7a59..b9c222d1 100644 --- a/src/lib/tpl/tpl.py +++ b/src/lib/tpl/tpl.py @@ -71,12 +71,13 @@ def line_log(msg='', key='', status='info', write=True, **args): raise TplError(error) @staticmethod - def prompt(key='', msg=None, status='info', **kwargs): + def prompt(key='', msg=None, status='info', newline=False, **kwargs): """ Prompt message :param str key: tpl message key :param str msg: target message :param str status: message status + :param bool newline: print prompt text as a full line before reading input :param dict kwargs: additional key arguments :raise TplError :return:str @@ -88,6 +89,11 @@ def prompt(key='', msg=None, status='info', **kwargs): msg = Tpl.line_log(key=key, status=status, write=False) else: msg = Tpl.line_log(msg, status=status, write=False, **kwargs) + if newline is True: + Tpl.__finish_dynamic_line() + sys.writeln(msg) + return input('') + result = input(msg) return result diff --git a/tests/test_lib_browser_threadpool_worker.py b/tests/test_lib_browser_threadpool_worker.py index c90078c6..745408ae 100644 --- a/tests/test_lib_browser_threadpool_worker.py +++ b/tests/test_lib_browser_threadpool_worker.py @@ -220,9 +220,10 @@ def active_task(self): setattr(pool, '_ThreadPool__workers', [DrainingWorker()]) - def continue_prompt(key): + def continue_prompt(key, newline=False): events.append('prompt') self.assertEqual(key, 'option_prompt') + self.assertTrue(newline) return 'c' with patch('src.lib.browser.threadpool.tpl.info'), \ @@ -232,7 +233,7 @@ def continue_prompt(key): self.assertLess(events.index('active'), events.index('prompt')) self.assertIn('resume', events) - prompt_mock.assert_called_once_with(key='option_prompt') + prompt_mock.assert_called_once_with(key='option_prompt', newline=True) sleep_mock.assert_called_once_with(pool.PAUSE_PROMPT_DRAIN_POLL_SEC) def test_pause_prompt_drain_is_bounded_for_stuck_active_tasks(self): @@ -263,7 +264,7 @@ def active_task(self): patch('src.lib.browser.threadpool.time.sleep') as sleep_mock: pool.pause() - prompt_mock.assert_called_once_with(key='option_prompt') + prompt_mock.assert_called_once_with(key='option_prompt', newline=True) sleep_mock.assert_not_called() self.assertTrue(pool.is_started) @@ -646,7 +647,7 @@ def test_threadpool_pause_prompts_even_from_main_thread(self): patch('src.lib.browser.threadpool.tpl.info'): pool.pause() - prompt_mock.assert_called_once_with(key='option_prompt') + prompt_mock.assert_called_once_with(key='option_prompt', newline=True) self.assertTrue(pool.is_started) def test_threadpool_resume_is_noop_when_already_started(self): diff --git a/tests/test_lib_tpl.py b/tests/test_lib_tpl.py index de2a16fe..ef4ee34e 100644 --- a/tests/test_lib_tpl.py +++ b/tests/test_lib_tpl.py @@ -92,6 +92,20 @@ def test_prompt_with_key(self): self.assertEqual(result, 'C') input_mock.assert_called_once() + def test_prompt_newline_should_write_complete_prompt_line_before_input(self): + """Tpl.prompt() should keep runtime menus on their own terminal line.""" + + with patch('src.lib.tpl.tpl.sys.finish_dynamic_line') as finish_mock, \ + patch('src.lib.tpl.tpl.sys.writeln') as writeln_mock, \ + patch('builtins.input', return_value='C') as input_mock: + result = Tpl.prompt(key='option_prompt', newline=True) + + self.assertEqual(result, 'C') + finish_mock.assert_called_once_with() + writeln_mock.assert_called_once() + self.assertTrue(writeln_mock.call_args[0][0]) + input_mock.assert_called_once_with('') + def test_prompt_exception(self): """Tpl.prompt() should wrap template lookup errors.""" From 9076bd982143a6913e169e2e4ef1332e282b5951 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Wed, 27 May 2026 20:15:51 +0300 Subject: [PATCH 18/42] feat(fingerprint): detect Evolution CMS signals --- CHANGELOG.md | 1 + data/directories.dat | 10 ++-- src/lib/browser/fingerprint.py | 69 ++++++++++++++++++++++++++- tests/test_lib_browser_fingerprint.py | 50 +++++++++++++++++++ 4 files changed, 126 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ba7e7224..52d24a1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ v5.16.2 (xx.06.2026) - (fix) reduced WAF-safe auto-calibration noise by using neutral calibration probe paths when `--waf-safe-mode` is enabled, avoiding high-risk `.php`, `.map`, `admin`, and `wp-*` probe shapes. - (fix) `--sniff malware` false positives on security-plugin documentation by suppressing name-only webshell vocabulary in documentation context while preserving executable payload and shell UI detections. - (fix) `--sniff malware` false positives on legacy Google Analytics loaders while preserving suspicious document.write, atob, String.fromCharCode and PHP payload detections. +- (enhancement) added Evolution CMS fingerprint detection from explicit generator, branding, and core install-fallback signals. - (enhancement) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt visible after in-flight worker output drains, while preserving Enter/C continue and E/Q abort semantics. - (enhancement) reduced `--sniff malware` false positives for standard Bitrix admin login pages by allowlisting the built-in hidden `auth_frame` iframe only when strong Bitrix login markers are present. - (ui) clarified Runtime Diagnostics queue accounting by showing consumed items, submitted HTTP jobs, and pre-request skipped items separately. diff --git a/data/directories.dat b/data/directories.dat index 14457ddc..5bbdadfe 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -7273,6 +7273,7 @@ _bugs.txt _build _buildManifest.js _bulk +_buran/seoModule.php _buy.html _c _cache @@ -11242,8 +11243,6 @@ admin-console/signin.php admin-console/signout.php admin-console/signup.php admin-console/sso -f.php -_buran/seoModule.php admin-console/staff.php admin-console/start.php admin-console/status @@ -49360,6 +49359,7 @@ exampleapp exampledir examples examples.html +examples.md examples.php examples/01-simple-model/.env examples/02-complex-example/.env @@ -49882,6 +49882,7 @@ extras extras.aspx extras.htm extras.html +extras.md extras.php extras/django_bash_completion extras/documentation @@ -62268,8 +62269,8 @@ installation.aspx installation.back.php installation.htm installation.html -INSTALLATION.md installation.md +INSTALLATION.md installation.old installation.old.php installation.php @@ -74677,6 +74678,7 @@ modular module module.aspx module.functions.php +module.md Module.php module.php Module.symvers @@ -100555,6 +100557,7 @@ SnIpEr_SA.php sniper_sa_shell.php snippet snippet.ashx +snippet.md snippetmaster snippets snips @@ -107072,6 +107075,7 @@ Tests/Application/.env tests/database/manager_users.sql tests/database/site_content.sql tests/database/site_templates.sql +tests/database/site_tmplvar_templates.sql tests/database/site_tmplvars.sql tests/database/user_attributes.sql tests/default_settings/v7.0/.env diff --git a/src/lib/browser/fingerprint.py b/src/lib/browser/fingerprint.py index a03108c4..20640698 100644 --- a/src/lib/browser/fingerprint.py +++ b/src/lib/browser/fingerprint.py @@ -138,7 +138,7 @@ def _default_result(cls): STATIC_CATEGORY = 'static' RUNTIME_CATEGORY = 'runtime' TECHNOLOGY_RUNTIME_MAP = { - 'WordPress': 'PHP', 'WooCommerce': 'PHP', 'Drupal': 'PHP', 'Joomla': 'PHP', 'Magento': 'PHP', 'Bitrix': 'PHP', 'OpenCart': 'PHP', 'PrestaShop': 'PHP', 'TYPO3': 'PHP', 'Nextcloud': 'PHP', 'ownCloud': 'PHP', 'Matomo': 'PHP', 'phpMyAdmin': 'PHP', 'phpBB': 'PHP', 'Moodle': 'PHP', 'Open Journal Systems': 'PHP', 'InstantCMS': 'PHP', 'DiafanCMS': 'PHP', 'Laravel': 'PHP', 'Symfony': 'PHP', 'Craft CMS': 'PHP', 'Bolt CMS': 'PHP', 'RoundCube Webmail': 'PHP', 'WHMCS': 'PHP', 'CS-Cart': 'PHP', 'CubeCart': 'PHP', 'DataLife Engine': 'PHP', 'Discuz!': 'PHP', 'SilverStripe': 'PHP', 'Webasyst / Shop-Script': 'PHP', 'XOOPS': 'PHP', 'Zen Cart CMS': 'PHP', 'e107': 'PHP', 'phpWind': 'PHP', 'phpCMS': 'PHP', + 'WordPress': 'PHP', 'WooCommerce': 'PHP', 'Drupal': 'PHP', 'Joomla': 'PHP', 'Magento': 'PHP', 'Bitrix': 'PHP', 'OpenCart': 'PHP', 'PrestaShop': 'PHP', 'TYPO3': 'PHP', 'Nextcloud': 'PHP', 'ownCloud': 'PHP', 'Matomo': 'PHP', 'phpMyAdmin': 'PHP', 'phpBB': 'PHP', 'Moodle': 'PHP', 'Open Journal Systems': 'PHP', 'Evolution CMS': 'PHP', 'InstantCMS': 'PHP', 'DiafanCMS': 'PHP', 'Laravel': 'PHP', 'Symfony': 'PHP', 'Craft CMS': 'PHP', 'Bolt CMS': 'PHP', 'RoundCube Webmail': 'PHP', 'WHMCS': 'PHP', 'CS-Cart': 'PHP', 'CubeCart': 'PHP', 'DataLife Engine': 'PHP', 'Discuz!': 'PHP', 'SilverStripe': 'PHP', 'Webasyst / Shop-Script': 'PHP', 'XOOPS': 'PHP', 'Zen Cart CMS': 'PHP', 'e107': 'PHP', 'phpWind': 'PHP', 'phpCMS': 'PHP', 'Express': 'Node.js', 'NestJS': 'Node.js', 'Fastify': 'Node.js', 'Koa': 'Node.js', 'Hapi': 'Node.js', 'Strapi': 'Node.js', 'Directus': 'Node.js', 'Ghost': 'Node.js', 'Next.js': 'Node.js', 'Nuxt': 'Node.js', 'Gatsby': 'Node.js', 'Astro': 'Node.js', 'Remix': 'Node.js', 'SvelteKit': 'Node.js', 'Docusaurus': 'Node.js', 'VitePress': 'Node.js', 'PencilBlue': 'Node.js', 'React': 'JavaScript', 'Vue': 'JavaScript', 'Angular': 'JavaScript', 'Django': 'Python', 'Flask': 'Python', 'FastAPI': 'Python', 'Ruby on Rails': 'Ruby', 'Spree': 'Ruby', 'Spring': 'Java/JVM', 'Liferay': 'Java/JVM', 'OpenCms': 'Java/JVM', 'Hippo CMS': 'Java/JVM', 'dotCMS': 'Java/JVM', 'ASP.NET': '.NET', 'Microsoft SharePoint': '.NET', 'DNN Platform': '.NET', 'Orchard CMS': '.NET', 'Sitecore': '.NET', 'Sitefinity': '.NET', 'Umbraco': '.NET', 'Phoenix': 'Elixir', 'MkDocs': 'Static site', 'Jekyll': 'Static site', 'Hugo': 'Static site', 'AsciiDoc': 'Static site', } @@ -173,6 +173,7 @@ def _default_result(cls): ('EC-CUBE', ECOMMERCE_CATEGORY, ('ec-cube', 'eccube')), ('EPiServer', CMS_CATEGORY, ('episerver', 'optimizely cms')), ('ExpressionEngine', CMS_CATEGORY, ('expressionengine', 'expression engine')), + ('Evolution CMS', CMS_CATEGORY, ('evolution cms', 'evolutioncms', 'modx evolution')), ('Fork CMS', CMS_CATEGORY, ('fork cms',)), ('GetSimple CMS', CMS_CATEGORY, ('getsimple cms', 'get-simple cms')), ('GoDaddy Website Builder', SITE_BUILDER_CATEGORY, ('godaddy website builder', 'go central')), @@ -247,6 +248,16 @@ def _default_result(cls): ('DNN Platform', CMS_CATEGORY, ('__dnnvariable', 'dnn_', '/portals/_default/')), ('EC-CUBE', ECOMMERCE_CATEGORY, ('eccube', 'ec-cube', '/user_data/packages/')), ('ExpressionEngine', CMS_CATEGORY, ('expressionengine', 'exp:channel', 'powered by expressionengine')), + ( + 'Evolution CMS', + CMS_CATEGORY, + ( + 'powered by evolution cms', + 'evolution cms is not currently installed', + 'please run the evolution cms install utility', + 'modx evolution', + ), + ), ('GetSimple CMS', CMS_CATEGORY, ('getsimple', 'get-simple', '/data/uploads/')), ('GoDaddy Website Builder', SITE_BUILDER_CATEGORY, ('wsimg.com', 'godaddy.com/websites/website-builder')), ('Hostinger Website Builder', SITE_BUILDER_CATEGORY, ('hostinger website builder', 'userapp.zyrosite.com', 'assets.zyrosite.com', 'zyrosite.com')), @@ -1383,6 +1394,54 @@ def _apply_dotcms_rules(self, body_lower, headers, cookies, probe_signals=None): elif len(found_markers) == 1 and len(found_cookies) >= 1: self._add_signal('dotCMS', self.CMS_CATEGORY, 'markup+cookie', '{0}+{1}'.format(found_markers[0], found_cookies[0]), 7) + def _apply_evolution_cms_rules(self, body_lower, generator, probe_statuses, not_found_status): + """ + Apply strong Evolution CMS signals. + + Evolution CMS descends from MODX Evolution, but short words like + "evo" or the generic /manager/ path are too noisy for standalone + detection. Keep the rule limited to explicit branding or core fallback + text, and use endpoint reachability only as corroborating evidence. + + :param str body_lower: normalized response body + :param str generator: raw generator meta value + :param dict probe_statuses: fingerprint endpoint probe statuses + :param int not_found_status: neutral 404-baseline status + :return: None + """ + + generator_lower = str(generator or '').lower() + explicit_markers = ( + 'evolution cms', + 'evolutioncms', + 'modx evolution', + ) + + has_explicit_marker = any(marker in generator_lower or marker in body_lower for marker in explicit_markers) + + if any(marker in generator_lower for marker in explicit_markers): + self._add_signal('Evolution CMS', self.CMS_CATEGORY, 'meta', 'generator={0}'.format(generator), 8) + + if 'powered by evolution cms' in body_lower: + self._add_signal('Evolution CMS', self.CMS_CATEGORY, 'markup', 'powered by evolution cms', 7) + + if ( + 'evolution cms is not currently installed' in body_lower + or 'please run the evolution cms install utility' in body_lower + ): + self._add_signal('Evolution CMS', self.CMS_CATEGORY, 'markup', 'install fallback', 8) + + if 'modx evolution' in body_lower: + self._add_signal('Evolution CMS', self.CMS_CATEGORY, 'markup', 'modx evolution', 7) + + if has_explicit_marker and self._is_distinct_probe_up( + probe_statuses, + '/manager/', + [200, 301, 302, 401, 403], + not_found_status, + ): + self._add_signal('Evolution CMS', self.CMS_CATEGORY, 'endpoint', '/manager/', 3) + def _apply_extended_cms_catalog_rules(self, body_lower, headers, cookies, generator): """ Apply extended catalog signals for CMSs not covered by dedicated rules. @@ -2071,6 +2130,14 @@ def _apply_detection_rules( if probe_statuses.get('/admin') in [200, 301, 302, 401, 403] and '/bl-themes/' in body_lower: self._add_signal('Bludit', self.CMS_CATEGORY, 'endpoint', '/admin + /bl-themes/', 3) + # Evolution CMS + self._apply_evolution_cms_rules( + body_lower=body_lower, + generator=generator, + probe_statuses=probe_statuses, + not_found_status=not_found_status, + ) + # MODX modx_hint = ( 'modx' in generator_lower diff --git a/tests/test_lib_browser_fingerprint.py b/tests/test_lib_browser_fingerprint.py index ce5754fd..0698b1ad 100644 --- a/tests/test_lib_browser_fingerprint.py +++ b/tests/test_lib_browser_fingerprint.py @@ -330,6 +330,13 @@ def test_detects_5145_regional_cms_and_sitebuilder_catalog(self): '', {}, ), + ( + 'Evolution CMS', + 'cms', + '' + '
Powered by Evolution CMS
', + {}, + ), ( 'Duda', 'sitebuilder', @@ -403,6 +410,49 @@ def test_detects_5145_regional_cms_and_sitebuilder_catalog(self): self.assertEqual(result['name'], expected_name) self.assertGreaterEqual(result['confidence'], 70) + def test_detects_evolution_cms_from_not_installed_core_template(self): + """Fingerprint should detect Evolution CMS from its own install fallback text.""" + + config = FakeConfig() + base = 'http://example.com/' + responses = { + ('GET', base): FakeResponse( + 503, + 'Evolution CMS is not currently installed or the configuration file cannot be found. ' + 'Do you want to install now?', + {}, + ), + ('GET', 'http://example.com{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse(404, 'Not Found', {}), + } + + detector = Fingerprint(config=config, client=self._make_client(config, responses)) + result = detector.detect() + + self.assertEqual(result['category'], 'cms') + self.assertEqual(result['name'], 'Evolution CMS') + self.assertGreaterEqual(result['confidence'], 70) + + def test_does_not_detect_evolution_cms_from_generic_evo_word_only(self): + """Fingerprint should not classify generic EVO wording as Evolution CMS.""" + + config = FakeConfig() + base = 'http://example.com/' + responses = { + ('GET', base): FakeResponse( + 200, + '

Our product follows an evolutionary design process.

', + {}, + ), + ('GET', 'http://example.com{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse(404, 'Not Found', {}), + } + + detector = Fingerprint(config=config, client=self._make_client(config, responses)) + result = detector.detect() + + self.assertEqual(result['category'], 'custom') + self.assertEqual(result['name'], 'Unknown custom stack') + self.assertFalse(any(candidate['name'] == 'Evolution CMS' for candidate in result['candidates'])) + def test_does_not_promote_generic_diafan_link_without_meta_author(self): """Fingerprint should not promote DiafanCMS from a generic body mention only.""" From 6e2fb41ec46fa185bf1fdab0bd35508e4a61921f Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Wed, 27 May 2026 20:28:21 +0300 Subject: [PATCH 19/42] fix(cli): show secret sniffer label in scan output --- CHANGELOG.md | 1 + src/lib/browser/debug.py | 8 +++++++- tests/test_lib_browser_debug_extra.py | 7 ++++--- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 52d24a1b..5935a132 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ v5.16.2 (xx.06.2026) - (fix) reduced WAF-safe auto-calibration noise by using neutral calibration probe paths when `--waf-safe-mode` is enabled, avoiding high-risk `.php`, `.map`, `admin`, and `wp-*` probe shapes. - (fix) `--sniff malware` false positives on security-plugin documentation by suppressing name-only webshell vocabulary in documentation context while preserving executable payload and shell UI detections. - (fix) `--sniff malware` false positives on legacy Google Analytics loaders while preserving suspicious document.write, atob, String.fromCharCode and PHP payload detections. +- (fix) `--sniff secret` scan output so secret sniffer hits are labeled as `OK (Secret)` like other sniffer findings. - (enhancement) added Evolution CMS fingerprint detection from explicit generator, branding, and core install-fallback signals. - (enhancement) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt visible after in-flight worker output drains, while preserving Enter/C continue and E/Q abort semantics. - (enhancement) reduced `--sniff malware` false positives for standard Bitrix admin login pages by allowlisting the built-in hidden `auth_frame` iframe only when strong Bitrix login markers are present. diff --git a/src/lib/browser/debug.py b/src/lib/browser/debug.py index 82caf055..ad459d67 100644 --- a/src/lib/browser/debug.py +++ b/src/lib/browser/debug.py @@ -285,6 +285,12 @@ def debug_request_uri(self, status, request_uri, **kwargs): tpl.line(msg='Malware', color='red'), tpl.line(msg=urlpath, color='green') ) + elif status in ['secret']: + request_uri = '{0} ({1}) {2}'.format( + tpl.line(msg='OK', color='green'), + tpl.line(msg='Secret', color='red'), + tpl.line(msg=urlpath, color='green') + ) elif status in ['stacktrace']: request_uri = '{0} ({1}) {2}'.format( tpl.line(msg='OK', color='green'), @@ -323,7 +329,7 @@ def debug_request_uri(self, status, request_uri, **kwargs): self.__clear = True if self.__catched else False - if status in ['success', 'file', 'bad', 'forbidden', 'redirect', 'blocked', 'indexof', 'certificate', 'auth', 'stacktrace', 'malware', 'shadow', 'openredirect']: + if status in ['success', 'file', 'bad', 'forbidden', 'redirect', 'blocked', 'indexof', 'certificate', 'auth', 'stacktrace', 'secret', 'malware', 'shadow', 'openredirect']: sys.writels('', flush=True) tpl.info( key='get_item', diff --git a/tests/test_lib_browser_debug_extra.py b/tests/test_lib_browser_debug_extra.py index f1962483..1001b61a 100644 --- a/tests/test_lib_browser_debug_extra.py +++ b/tests/test_lib_browser_debug_extra.py @@ -339,7 +339,7 @@ def test_should_log_waf_guard_configuration_at_scan_debug_level(self): debug_mock.assert_called_once_with(key='waf_guard_enabled', after=7, threshold='80.0') - def test_should_render_indexof_malware_stacktrace_shadow_and_openredirect_progress(self): + def test_should_render_indexof_secret_malware_stacktrace_shadow_and_openredirect_progress(self): """Debug.debug_request_uri() should render special finding buckets.""" dbg = self.make_debug({'debug': 1, 'reports': 'std'}) @@ -347,7 +347,7 @@ def test_should_render_indexof_malware_stacktrace_shadow_and_openredirect_progre with patch('src.lib.browser.debug.tpl.info') as info_mock, \ patch('src.lib.browser.debug.tpl.line', side_effect=lambda *args, **kwargs: kwargs.get('msg') or kwargs.get('url') or 'line'), \ patch('src.lib.browser.debug.sys.writels'): - for status in ('indexof', 'malware', 'stacktrace', 'shadow', 'openredirect'): + for status in ('indexof', 'secret', 'malware', 'stacktrace', 'shadow', 'openredirect'): self.assertTrue(dbg.debug_request_uri( status, 'http://test.local/path', @@ -357,9 +357,10 @@ def test_should_render_indexof_malware_stacktrace_shadow_and_openredirect_progre response_code='200', )) - self.assertEqual(info_mock.call_count, 5) + self.assertEqual(info_mock.call_count, 6) rendered = ' '.join(str(call.kwargs.get('item')) for call in info_mock.call_args_list) self.assertIn('IndexOf', rendered) + self.assertIn('Secret', rendered) self.assertIn('Malware', rendered) self.assertIn('StackTrace', rendered) self.assertIn('Shadow', rendered) From fc4d603b7f3dfd35d94357c780d53c7d461dad96 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Wed, 27 May 2026 23:18:13 +0300 Subject: [PATCH 20/42] Add conservative MogutaCMS fingerprint signals --- CHANGELOG.md | 1 + data/directories.dat | 9 ++++ docs/detection/fingerprinting.md | 4 +- src/lib/browser/fingerprint.py | 90 +++++++++++++++++++++++++++++++- 4 files changed, 102 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5935a132..3c4bc560 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ v5.16.2 (xx.06.2026) - (fix) `--sniff malware` false positives on legacy Google Analytics loaders while preserving suspicious document.write, atob, String.fromCharCode and PHP payload detections. - (fix) `--sniff secret` scan output so secret sniffer hits are labeled as `OK (Secret)` like other sniffer findings. - (enhancement) added Evolution CMS fingerprint detection from explicit generator, branding, and core install-fallback signals. +- (enhancement) added conservative MogutaCMS fingerprint detection without active probes or generic portfolio-page matches. - (enhancement) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt visible after in-flight worker output drains, while preserving Enter/C continue and E/Q abort semantics. - (enhancement) reduced `--sniff malware` false positives for standard Bitrix admin login pages by allowlisting the built-in hidden `auth_frame` iframe only when strong Bitrix login markers are present. - (ui) clarified Runtime Diagnostics queue accounting by showing consumed items, submitted HTTP jobs, and pre-request skipped items separately. diff --git a/data/directories.dat b/data/directories.dat index 5bbdadfe..e34d0520 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -23180,6 +23180,8 @@ apr.html aprcalc aprelium april +mg-admin +schedule.php April04_schedule.php april4videos.php april.html @@ -52313,6 +52315,8 @@ forgot_password.php forgot_pwd.php forgot_u.php forgotpass +mg-core +mg-plugins forgotpass.asp forgotpass.aspx forgotpass.html @@ -120811,7 +120815,12 @@ zb_system/scriptcommon.js zbblock ZBmsc zboard +journal/nlist.php +journal/content_list.php zbozi.php +libs/cookie-consent.js +libs/cookie.js +libs/cookies.js zbvnawul.php zc zc989_install diff --git a/docs/detection/fingerprinting.md b/docs/detection/fingerprinting.md index 8abee05f..f2b0ff4f 100644 --- a/docs/detection/fingerprinting.md +++ b/docs/detection/fingerprinting.md @@ -110,17 +110,18 @@ The heuristic fingerprint engine currently recognizes the following platform fam - Discourse - DotCMS - Drupal +- Evolution CMS - Ghost - GravCMS - Joomla - Matomo - MediaWiki -- Open Journal Systems - MODX - Moodle - Neos - Nextcloud - OctoberCMS +- Open Journal Systems - ownCloud - phpBB - phpMyAdmin @@ -188,6 +189,7 @@ The heuristic fingerprint engine currently recognizes the following platform fam ### E-commerce - Magento +- Moguta CMS - nopCommerce - OpenCart - PrestaShop diff --git a/src/lib/browser/fingerprint.py b/src/lib/browser/fingerprint.py index 20640698..ad69e763 100644 --- a/src/lib/browser/fingerprint.py +++ b/src/lib/browser/fingerprint.py @@ -138,7 +138,7 @@ def _default_result(cls): STATIC_CATEGORY = 'static' RUNTIME_CATEGORY = 'runtime' TECHNOLOGY_RUNTIME_MAP = { - 'WordPress': 'PHP', 'WooCommerce': 'PHP', 'Drupal': 'PHP', 'Joomla': 'PHP', 'Magento': 'PHP', 'Bitrix': 'PHP', 'OpenCart': 'PHP', 'PrestaShop': 'PHP', 'TYPO3': 'PHP', 'Nextcloud': 'PHP', 'ownCloud': 'PHP', 'Matomo': 'PHP', 'phpMyAdmin': 'PHP', 'phpBB': 'PHP', 'Moodle': 'PHP', 'Open Journal Systems': 'PHP', 'Evolution CMS': 'PHP', 'InstantCMS': 'PHP', 'DiafanCMS': 'PHP', 'Laravel': 'PHP', 'Symfony': 'PHP', 'Craft CMS': 'PHP', 'Bolt CMS': 'PHP', 'RoundCube Webmail': 'PHP', 'WHMCS': 'PHP', 'CS-Cart': 'PHP', 'CubeCart': 'PHP', 'DataLife Engine': 'PHP', 'Discuz!': 'PHP', 'SilverStripe': 'PHP', 'Webasyst / Shop-Script': 'PHP', 'XOOPS': 'PHP', 'Zen Cart CMS': 'PHP', 'e107': 'PHP', 'phpWind': 'PHP', 'phpCMS': 'PHP', + 'WordPress': 'PHP', 'WooCommerce': 'PHP', 'Drupal': 'PHP', 'Joomla': 'PHP', 'Magento': 'PHP', 'Bitrix': 'PHP', 'OpenCart': 'PHP', 'PrestaShop': 'PHP', 'TYPO3': 'PHP', 'Nextcloud': 'PHP', 'ownCloud': 'PHP', 'Matomo': 'PHP', 'phpMyAdmin': 'PHP', 'phpBB': 'PHP', 'Moodle': 'PHP', 'Open Journal Systems': 'PHP', 'Evolution CMS': 'PHP', 'MogutaCMS': 'PHP', 'InstantCMS': 'PHP', 'DiafanCMS': 'PHP', 'Laravel': 'PHP', 'Symfony': 'PHP', 'Craft CMS': 'PHP', 'Bolt CMS': 'PHP', 'RoundCube Webmail': 'PHP', 'WHMCS': 'PHP', 'CS-Cart': 'PHP', 'CubeCart': 'PHP', 'DataLife Engine': 'PHP', 'Discuz!': 'PHP', 'SilverStripe': 'PHP', 'Webasyst / Shop-Script': 'PHP', 'XOOPS': 'PHP', 'Zen Cart CMS': 'PHP', 'e107': 'PHP', 'phpWind': 'PHP', 'phpCMS': 'PHP', 'Express': 'Node.js', 'NestJS': 'Node.js', 'Fastify': 'Node.js', 'Koa': 'Node.js', 'Hapi': 'Node.js', 'Strapi': 'Node.js', 'Directus': 'Node.js', 'Ghost': 'Node.js', 'Next.js': 'Node.js', 'Nuxt': 'Node.js', 'Gatsby': 'Node.js', 'Astro': 'Node.js', 'Remix': 'Node.js', 'SvelteKit': 'Node.js', 'Docusaurus': 'Node.js', 'VitePress': 'Node.js', 'PencilBlue': 'Node.js', 'React': 'JavaScript', 'Vue': 'JavaScript', 'Angular': 'JavaScript', 'Django': 'Python', 'Flask': 'Python', 'FastAPI': 'Python', 'Ruby on Rails': 'Ruby', 'Spree': 'Ruby', 'Spring': 'Java/JVM', 'Liferay': 'Java/JVM', 'OpenCms': 'Java/JVM', 'Hippo CMS': 'Java/JVM', 'dotCMS': 'Java/JVM', 'ASP.NET': '.NET', 'Microsoft SharePoint': '.NET', 'DNN Platform': '.NET', 'Orchard CMS': '.NET', 'Sitecore': '.NET', 'Sitefinity': '.NET', 'Umbraco': '.NET', 'Phoenix': 'Elixir', 'MkDocs': 'Static site', 'Jekyll': 'Static site', 'Hugo': 'Static site', 'AsciiDoc': 'Static site', } @@ -1394,6 +1394,88 @@ def _apply_dotcms_rules(self, body_lower, headers, cookies, probe_signals=None): elif len(found_markers) == 1 and len(found_cookies) >= 1: self._add_signal('dotCMS', self.CMS_CATEGORY, 'markup+cookie', '{0}+{1}'.format(found_markers[0], found_cookies[0]), 7) + + @classmethod + def _contains_mogutacms_brand(cls, text): + """ + Return True when text contains an explicit MogutaCMS brand marker. + + The matcher intentionally avoids a standalone "moguta" token because + portfolio pages, comparison articles and vendor links can mention the + product without proving that the scanned target runs on it. + + :param str text: normalized text + :return: check result + :rtype: bool + """ + + source = str(text or '').lower() + return re.search(r'(?= 2: + self._add_signal('MogutaCMS', self.ECOMMERCE_CATEGORY, 'asset', '+'.join(found_markers[:3]), 8) + elif len(found_markers) == 1 and (has_generator or has_powered_by): + self._add_signal('MogutaCMS', self.ECOMMERCE_CATEGORY, 'asset+brand', found_markers[0], 4) + + def _apply_evolution_cms_rules(self, body_lower, generator, probe_statuses, not_found_status): """ Apply strong Evolution CMS signals. @@ -2130,6 +2212,12 @@ def _apply_detection_rules( if probe_statuses.get('/admin') in [200, 301, 302, 401, 403] and '/bl-themes/' in body_lower: self._add_signal('Bludit', self.CMS_CATEGORY, 'endpoint', '/admin + /bl-themes/', 3) + # MogutaCMS + self._apply_mogutacms_rules( + body_lower=body_lower, + generator=generator, + ) + # Evolution CMS self._apply_evolution_cms_rules( body_lower=body_lower, From 4be43509d8842b6678114ebd24360a982c563fb9 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Thu, 28 May 2026 00:27:19 +0300 Subject: [PATCH 21/42] add lines to wordlist --- data/directories.dat | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/data/directories.dat b/data/directories.dat index e34d0520..f7577a4c 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -19066,6 +19066,7 @@ ajax/adm ajax/adm.php ajax/admin ajax/admin.php +ajax/ajax.js ajax/api ajax/data ajax_ @@ -23180,8 +23181,6 @@ apr.html aprcalc aprelium april -mg-admin -schedule.php April04_schedule.php april4videos.php april.html @@ -52315,8 +52314,6 @@ forgot_password.php forgot_pwd.php forgot_u.php forgotpass -mg-core -mg-plugins forgotpass.asp forgotpass.aspx forgotpass.html @@ -64265,6 +64262,8 @@ journal journal.asp journal.cgi journal.php +journal/content_list.php +journal/nlist.php journal_proc.php journaleditors.aspx journalgetpage.aspx @@ -66968,6 +66967,9 @@ libs libs.html libs.php libs/.env +libs/cookie-consent.js +libs/cookie.js +libs/cookies.js libs/granite/core/content/login.html libs/granite/core/content/login/favicon.ico libsecure.php @@ -67950,6 +67952,8 @@ ljf ljgm.asp ljh.asp lk +lk2 +lk2/manifest_lk2.json lk.htm lk.php lk/login @@ -71119,6 +71123,7 @@ manufacturing.aspx manufaktur manulife manunited +manuscript.php manutencao manutencao.asp manutencao.html @@ -73314,7 +73319,9 @@ mfr_admin.php mfriend.php mfs mg +mg-admin mg-core +mg-plugins mg.html mg.jsp mg.php @@ -120815,12 +120822,7 @@ zb_system/scriptcommon.js zbblock ZBmsc zboard -journal/nlist.php -journal/content_list.php zbozi.php -libs/cookie-consent.js -libs/cookie.js -libs/cookies.js zbvnawul.php zc zc989_install From 5faa3f835a4aeba9dbb9b5b9103ccba8cdca363e Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Thu, 28 May 2026 00:27:33 +0300 Subject: [PATCH 22/42] add lines to wordlist --- .../test_lib_browser_fingerprint_mogutacms.py | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 tests/test_lib_browser_fingerprint_mogutacms.py diff --git a/tests/test_lib_browser_fingerprint_mogutacms.py b/tests/test_lib_browser_fingerprint_mogutacms.py new file mode 100644 index 00000000..546b79da --- /dev/null +++ b/tests/test_lib_browser_fingerprint_mogutacms.py @@ -0,0 +1,83 @@ +# -*- coding: utf-8 -*- + +import unittest + +from src.lib.browser.fingerprint import Fingerprint + + +class TestFingerprintMogutaCMS(unittest.TestCase): + + def _detect_candidates(self, body='', generator=''): + fingerprint = Fingerprint(None, None) + fingerprint._apply_detection_rules( + body=body, + body_lower=str(body or '').lower(), + headers={}, + cookies=[], + generator=generator, + probe_statuses={}, + final_root_url='https://example.test/', + not_found_status=404, + not_found_body='not found', + not_found_headers={}, + ) + return fingerprint._build_candidates() + + def _candidate(self, candidates, name): + for candidate in candidates: + if candidate.get('name') == name: + return candidate + return None + + def test_detects_mogutacms_from_generator_meta(self): + candidates = self._detect_candidates(generator='Moguta.CMS') + candidate = self._candidate(candidates, 'MogutaCMS') + + self.assertIsNotNone(candidate) + self.assertEqual('ecommerce', candidate.get('category')) + self.assertGreaterEqual(candidate.get('score'), 8) + + def test_detects_mogutacms_from_powered_by_footer(self): + body = ''' +
+ Сайт работает на движке: + Moguta. CMS +
+ ''' + candidates = self._detect_candidates(body=body) + candidate = self._candidate(candidates, 'MogutaCMS') + + self.assertIsNotNone(candidate) + self.assertEqual('ecommerce', candidate.get('category')) + self.assertGreaterEqual(candidate.get('score'), 9) + + def test_detects_mogutacms_from_multiple_engine_paths(self): + body = ''' + + + ''' + candidates = self._detect_candidates(body=body) + candidate = self._candidate(candidates, 'MogutaCMS') + + self.assertIsNotNone(candidate) + self.assertEqual('ecommerce', candidate.get('category')) + self.assertGreaterEqual(candidate.get('score'), 8) + + def test_ignores_portfolio_or_comparison_text_without_site_signals(self): + body = ''' + MogutaCMS portfolio examples and ecommerce CMS comparison. + See moguta.ru for product information and implementation cases. + ''' + candidates = self._detect_candidates(body=body) + + self.assertIsNone(self._candidate(candidates, 'MogutaCMS')) + + def test_ignores_single_generic_mg_path_without_brand_context(self): + body = '' + candidates = self._detect_candidates(body=body) + + self.assertIsNone(self._candidate(candidates, 'MogutaCMS')) + + +if __name__ == '__main__': + unittest.main() From bfcd8404164510c5133b7b181be5db5e60ccc45b Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Thu, 28 May 2026 12:19:23 +0300 Subject: [PATCH 23/42] Handle urllib3 decode errors as transport failures --- CHANGELOG.md | 1 + data/directories.dat | 3 +++ src/core/http/http.py | 5 +++- src/core/http/https.py | 5 +++- src/core/http/proxy.py | 10 +++++++- src/lib/tpl/config.py | 1 + tests/test_core_http_requests.py | 39 +++++++++++++++++++++++++++++--- 7 files changed, 58 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c4bc560..d42702c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ CHANGELOG ======= v5.16.2 (xx.06.2026) --------------------------- +- (critical) fixed scan crashes caused by corrupted gzip/encoded HTTP responses by handling `DecodeError` as a recoverable transport failure instead of aborting worker threads. - (fix) `--sniff malware` false positives when fallback pages repeatedly echo webshell-like names inside URL/query attributes, while preserving real webshell UI and executable payload detections. - (fix) false-positive OK findings when a target returns a canonical 404/410 error body with a transient 2xx status by adding strict cross-status soft-error calibration. - (fix) `--sniff shadow` false positives on soft-200/fallback routes by adding a negative-control probe before reporting backup-file variants. diff --git a/data/directories.dat b/data/directories.dat index f7577a4c..39094db2 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -19069,6 +19069,7 @@ ajax/admin.php ajax/ajax.js ajax/api ajax/data +ajax/search.php ajax_ ajax_action.php ajax_bookmarks.php @@ -61410,6 +61411,8 @@ indexoriginal.php indexorjj.php indexphil.php indexpic.asp +indexpoisk +indexpoisk.php indexppc.cfm indexprint.php indexprocess.cfm diff --git a/src/core/http/http.py b/src/core/http/http.py index a929291f..fa5a0315 100644 --- a/src/core/http/http.py +++ b/src/core/http/http.py @@ -17,7 +17,7 @@ """ from urllib3 import HTTPConnectionPool, PoolManager, Timeout -from urllib3.exceptions import MaxRetryError, ReadTimeoutError, ConnectTimeoutError, HostChangedError +from urllib3.exceptions import DecodeError, MaxRetryError, ReadTimeoutError, ConnectTimeoutError, HostChangedError from src.core import helper from .exceptions import HttpRequestError from .providers import DebugProvider @@ -162,5 +162,8 @@ def request(self, url, extra_headers=None): except ReadTimeoutError: self.__tpl.warning(key='read_timeout_error', url=url) + except DecodeError: + self.__tpl.warning(key='decode_error', url=url) + except ConnectTimeoutError: self.__tpl.warning(key='connection_timeout_error', url=url) diff --git a/src/core/http/https.py b/src/core/http/https.py index c423233c..e7a6a740 100644 --- a/src/core/http/https.py +++ b/src/core/http/https.py @@ -17,7 +17,7 @@ """ from urllib3 import HTTPSConnectionPool, PoolManager, HTTPResponse, Timeout, disable_warnings -from urllib3.exceptions import MaxRetryError, ReadTimeoutError, ConnectTimeoutError, \ +from urllib3.exceptions import DecodeError, MaxRetryError, ReadTimeoutError, ConnectTimeoutError, \ HostChangedError, SSLError, InsecureRequestWarning from src.core import helper from .exceptions import HttpsRequestError @@ -216,6 +216,9 @@ def request(self, url, extra_headers=None): except ReadTimeoutError: self.__tpl.warning(key='read_timeout_error', url=url) + except DecodeError: + self.__tpl.warning(key='decode_error', url=url) + except ConnectTimeoutError: self.__tpl.warning(key='connection_timeout_error', url=url) diff --git a/src/core/http/proxy.py b/src/core/http/proxy.py index 8082417a..71c24861 100644 --- a/src/core/http/proxy.py +++ b/src/core/http/proxy.py @@ -24,7 +24,7 @@ from urllib3 import ProxyManager, Timeout, disable_warnings from urllib3.util import make_headers -from urllib3.exceptions import DependencyWarning, MaxRetryError, ProxySchemeUnknown, ReadTimeoutError, InsecureRequestWarning +from urllib3.exceptions import DecodeError, DependencyWarning, MaxRetryError, ProxySchemeUnknown, ReadTimeoutError, InsecureRequestWarning from src.core import helper from .exceptions import ProxyRequestError @@ -301,6 +301,11 @@ def request(self, url, extra_headers=None): self.__finish_active_terminal_line() self.__tpl.warning(key='read_timeout_error', url=helper.parse_url(url).path) + except DecodeError: + if self.__is_directory_like_scan() is True: + self.__finish_active_terminal_line() + self.__tpl.warning(key='decode_error', url=helper.parse_url(url).path) + def __retry_after_max_retry(self, url, request_headers): """ Retry a proxy request once after MaxRetryError without leaking raw urllib3 tracebacks. @@ -318,6 +323,9 @@ def __retry_after_max_retry(self, url, request_headers): except ReadTimeoutError as error: self.__record_tls_transport_error(error) self.__warn_proxy_retry_failed(url, error) + except DecodeError: + self.__finish_active_terminal_line() + self.__tpl.warning(key='decode_error', url=helper.parse_url(url).path) return None diff --git a/src/lib/tpl/config.py b/src/lib/tpl/config.py index 43d49a61..64105ab4 100644 --- a/src/lib/tpl/config.py +++ b/src/lib/tpl/config.py @@ -72,6 +72,7 @@ class Config(object): 'proxy_max_retry_error': 'Skipped. Proxy {proxy} Max retries exceeded: {url}', 'host_changed_error': 'Block external redirect -> {details}', 'read_timeout_error': 'Read timeout error! {url}. Increase using --timeout option', + 'decode_error': 'Response decode error! {url}. Skipping corrupted encoded response', 'connection_timeout_error': 'Connection timeout error! {url}. Increase using --timeout option', 'certificate': 'Cert required {url}', 'success': 'OK {url}', diff --git a/tests/test_core_http_requests.py b/tests/test_core_http_requests.py index 5230848d..9b75b1cd 100644 --- a/tests/test_core_http_requests.py +++ b/tests/test_core_http_requests.py @@ -5,7 +5,7 @@ from types import SimpleNamespace from unittest.mock import MagicMock, PropertyMock, patch -from urllib3.exceptions import MaxRetryError, ReadTimeoutError, ConnectTimeoutError, HostChangedError, ProxySchemeUnknown, SSLError +from urllib3.exceptions import DecodeError, MaxRetryError, ReadTimeoutError, ConnectTimeoutError, HostChangedError, ProxySchemeUnknown, SSLError from urllib3.response import HTTPResponse from src.core.http.http import HttpRequest @@ -170,7 +170,7 @@ def test_request_handles_errors(self): self.assertIsNone(req.request('http://example.com/x')) tpl.warning.assert_called() - for exc in [HostChangedError(None, '/', 0), ReadTimeoutError(None, '/', 'x'), ConnectTimeoutError(None, '/', 'x')]: + for exc in [HostChangedError(None, '/', 0), ReadTimeoutError(None, '/', 'x'), DecodeError('bad gzip'), ConnectTimeoutError(None, '/', 'x')]: pool.request.reset_mock(side_effect=True) tpl.warning.reset_mock() pool.request.side_effect = exc @@ -377,7 +377,7 @@ def test_request_handles_ssl_and_timeouts(self): response = req_sub.request('https://api.example.com') self.assertEqual(response.status, 496) - for exc in [MaxRetryError(None, '/', None), HostChangedError(None, '/', 0), ReadTimeoutError(None, '/', 'x'), ConnectTimeoutError(None, '/', 'x')]: + for exc in [MaxRetryError(None, '/', None), HostChangedError(None, '/', 0), ReadTimeoutError(None, '/', 'x'), DecodeError('bad gzip'), ConnectTimeoutError(None, '/', 'x')]: pool.request.reset_mock(side_effect=True) tpl.warning.reset_mock() pool.request.side_effect = exc @@ -535,6 +535,39 @@ def test_get_proxy_type_and_random_proxy(self): self.assertEqual(proxy._Proxy__get_random_proxy(), 'http://127.0.0.1:8080') + def test_proxy_request_handles_decode_error_without_crashing(self): + """Proxy.request() should skip corrupted encoded responses without raising worker-fatal errors.""" + + cfg = self.make_cfg(scan='directories') + tpl = MagicMock() + proxy = Proxy(cfg, SimpleNamespace(level=0, debug_proxy_pool=lambda: None), tpl=tpl, proxy_list=['http://unused'], agent_list=['UA']) + + with patch.object(proxy, '_Proxy__pool_request', side_effect=DecodeError('bad gzip')): + actual = proxy.request('http://example.com/path') + + self.assertIsNone(actual) + tpl.warning.assert_called_once_with(key='decode_error', url='/path') + + def test_proxy_retry_handles_decode_error_without_marking_proxy_unavailable(self): + """Proxy retry path should not escalate DecodeError as a proxy outage.""" + + cfg = self.make_cfg(scan='directories', is_standalone_proxy=True) + tpl = MagicMock() + proxy = Proxy(cfg, SimpleNamespace(level=0, debug_proxy_pool=lambda: None), tpl=tpl, proxy_list=['http://unused'], agent_list=['UA']) + proxy._Proxy__server = 'http://127.0.0.1:8080' + + with patch.object( + proxy, + '_Proxy__pool_request', + side_effect=[MaxRetryError(None, '/', None), DecodeError('bad gzip')], + ): + actual = proxy.request('http://example.com/path') + + self.assertIsNone(actual) + tpl.error.assert_not_called() + self.assertEqual(tpl.warning.call_args_list[-1].kwargs['key'], 'decode_error') + + class TestSocket(unittest.TestCase): """TestSocket class.""" From 52b7c8dc188101c99aadde0cca642538dc3b6f80 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Fri, 29 May 2026 16:45:04 +0300 Subject: [PATCH 24/42] Add UMI.CMS fingerprint header signal --- CHANGELOG.md | 1 + README.md | 2 +- data/directories.dat | 33 +++++++ src/lib/browser/fingerprint.py | 2 + tests/test_lib_browser_fingerprint_umi_cms.py | 85 +++++++++++++++++++ 5 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 tests/test_lib_browser_fingerprint_umi_cms.py diff --git a/CHANGELOG.md b/CHANGELOG.md index d42702c3..3e70a7dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ v5.16.2 (xx.06.2026) - (fix) `--sniff malware` false positives on legacy Google Analytics loaders while preserving suspicious document.write, atob, String.fromCharCode and PHP payload detections. - (fix) `--sniff secret` scan output so secret sniffer hits are labeled as `OK (Secret)` like other sniffer findings. - (enhancement) added Evolution CMS fingerprint detection from explicit generator, branding, and core install-fallback signals. +- (enhancement) UMI.CMS fingerprint detection (strong rules added). - (enhancement) added conservative MogutaCMS fingerprint detection without active probes or generic portfolio-page matches. - (enhancement) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt visible after in-flight worker output drains, while preserving Enter/C continue and E/Q abort semantics. - (enhancement) reduced `--sniff malware` false positives for standard Bitrix admin login pages by allowlisting the built-in hidden `auth_frame` iframe only when strong Bitrix login markers are present. diff --git a/README.md b/README.md index de7e7aa9..f88e8783 100644 --- a/README.md +++ b/README.md @@ -293,7 +293,7 @@ Useful sniffers include: | `skipsizes=46:1024` | Skip responses inside a noisy size range. | | `stacktrace` | Detect exposed debug/runtime stack traces and internal error details. | | `secret` | Detect possible exposed API keys, tokens, private keys and credentials with redacted report metadata. | -| `shadow` | Actively probe confirmed `200 OK` file-like hits for bounded backup/shadow variants such as `.bak`, `.old`, and path templates like `index2.php`. | +| `shadow` | Actively probe confirmed `200 OK` file-like hits for bounded backup/shadow variants such as `.bak`, `.old`, and path templates . | | `openredirect` | Actively verify redirect-like query parameters with controlled marker URLs and report only confirmed open redirect vulnerabilities. | | `malware` | Detect possible malicious content, webshell markers, injected scripts or obfuscated payloads. | diff --git a/data/directories.dat b/data/directories.dat index 39094db2..dc1665a0 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -4821,6 +4821,7 @@ ../../../../../../etc/passwd ../../../../../../home/ubuntu/.env ../../data/config/microsrv.cfg +..; ..;/examples/jsp/index.html ..;/examples/servlets/index.html ..;/examples/websocket/index.xhtml @@ -13786,6 +13787,7 @@ admin_iprev.html admin_iprev.php admin_js admin_js.php +admin_ka_wx.php admin_ldown.asp admin_ldown.html admin_ldown.php @@ -20524,6 +20526,8 @@ api.tgz api.txt api.wsdl api.xml +api.yaml +api.yml api.zip api/2/explore api/2/issue/createmeta @@ -21582,6 +21586,8 @@ api/swagger/swagger-ui.html api/swagger/ui api/swagger/ui/index api/swagger/uiindex +api/swagger/v2/api-docs +api/swagger/v3/api-docs api/swagger_doc.json api/swaggerindex.html api/swaggerswagger @@ -21750,6 +21756,7 @@ api/v1/admin/repos api/v1/admin/users api/v1/alarm-center api/v1/alerts +api/v1/api-docs api/v1/app api/v1/application.wadl api/v1/applications @@ -21803,6 +21810,7 @@ api/v1/directory api/v1/discovery api/v1/dns/nameservers api/v1/docs +api/v1/documentation api/v1/employees api/v1/endpoints api/v1/environments @@ -22012,6 +22020,7 @@ api/v2/access api/v2/activity_stream api/v2/actuator api/v2/admin +api/v2/api-docs api/v2/app api/v2/application.wadl api/v2/auth @@ -22051,6 +22060,7 @@ api/v2/dashboard api/v2/dashboards api/v2/deployments api/v2/docs +api/v2/documentation api/v2/explore/tab api/v2/feature-flags api/v2/feed @@ -22117,6 +22127,7 @@ api/v2swagger.json api/v2swagger.yaml api/v3 api/v3/admin/system +api/v3/api-docs api/v3/character/recommend/tag/coll/list api/v3/chat/msg/edit api/v3/chat/regen @@ -22125,6 +22136,7 @@ api/v3/chat/suggestions/buy api/v3/core/applications api/v3/core/tokens api/v3/core/users +api/v3/documentation api/v3/explore/tab/list api/v3/flows/instances api/v3/graphiql @@ -33496,6 +33508,7 @@ classic.html classic.json classic.jsonp classical +classicapi/doc classics classificados classification @@ -44280,6 +44293,9 @@ documentation.rst Documentation.txt documentation.txt documentation/config.yml +documentation/swagger-ui +documentation/swagger.yaml +documentation/swagger.yml documentationconfig.yml Documentationreadme.txt documentazione @@ -69007,6 +69023,8 @@ lokales loki loki.php loki/api +loki/api/v1/label +loki/api/v1/label/pod/values loki/api/v1/labels loki/api/v1/push loki/api/v1/query @@ -78045,6 +78063,7 @@ nomatch.aspx nombas nombre nombres +nomer.php nominate_topic.php nominations noms @@ -78295,6 +78314,7 @@ notizie.php notjustbrowsing notloggedin.htm notmodrewrite +notpaid.php notrack.html notre-equipe.htm notregister.aspx @@ -78530,6 +78550,8 @@ num num.php number number9 +number.js +number.php Number.php Numberformat.php numberFormat.php @@ -78717,6 +78739,7 @@ ob.lib.php obb_profiles obdc obefacade.aspx +obekts.php obelix75 oberhausen.html oberon2.php @@ -90153,6 +90176,7 @@ query.jsp query.log query.php query?q=SHOW+DATABASES +query_info.php querydong.jsp QUERYHIT.HTM queryhit.htm @@ -93533,6 +93557,7 @@ robots-old.txt robots.php robots.phtml robots.txt +robots.txt.dist robots/.env robots_ssl.txt robotstats @@ -95829,6 +95854,7 @@ search_print.php search_prod.html search_products.htm search_products.php +search_queries.php search_query.aspx search_quick.asp search_res.php @@ -99835,6 +99861,7 @@ sitemap-dev.xml sitemap-develop.xml sitemap-en.html sitemap-groups0.xml +sitemap-images.txt sitemap-index.xml sitemap-old.jsp sitemap-prod.xml @@ -104228,6 +104255,8 @@ sw_sm_sw4.php swagger swagger-json swagger-resources +swagger-resources/configuration/security +swagger-resources/configuration/ui swagger-resources/configurationui swagger-resources/restservices/v2/api-docs swagger-ui @@ -104275,6 +104304,7 @@ swagger/v2swagger.yaml swagger/v3.0/api-docs swagger/v3.0/swagger.json swagger/v3.0/swagger.yaml +swagger/v3/api-docs swaggerapi swaggerapi-docs swaggerindex.html @@ -108506,6 +108536,7 @@ topad.html topadmin.php topadvert.php topauthors.php +topayment.php topbanner.htm topbanner.php topbar.php @@ -113391,6 +113422,7 @@ var/log/old var/log/payment.log var/log/payment_authorizenet.log var/log/payment_paypal_express.log +var/log/php_mail.log var/log/system.log var/logauthorizenet.log var/logexception.log @@ -118905,6 +118937,7 @@ wp-content/themes/enfold/readme.txt wp-content/themes/eptonic wp-content/themes/eptonic/functions/jwpanel/scripts/valums_uploader/php.php wp-content/themes/flatsome/readme.txt +wp-content/themes/jupiterx/readme.txt wp-content/themes/lightspeed/framework/_scripts/valums_uploader/php.php wp-content/themes/nuance/functions/jwpanel/scripts/valums_uploader/php.php wp-content/themes/oceanwp/readme.txt diff --git a/src/lib/browser/fingerprint.py b/src/lib/browser/fingerprint.py index ad69e763..3587e612 100644 --- a/src/lib/browser/fingerprint.py +++ b/src/lib/browser/fingerprint.py @@ -317,6 +317,8 @@ def _default_result(cls): ('Salesforce Commerce Cloud', ECOMMERCE_CATEGORY, 'x-dw-request-base-id', None), ('Salesforce Commerce Cloud', ECOMMERCE_CATEGORY, 'x-dw-trace-id', None), ('AEM', CMS_CATEGORY, 'x-dispatcher', None), + ('UMI.CMS', CMS_CATEGORY, 'x-generated-by', 'umi.cms'), + ('UMI.CMS', CMS_CATEGORY, 'x-generated-by', 'umi cms'), ) EXTENDED_CMS_COOKIE_SIGNATURES = ( diff --git a/tests/test_lib_browser_fingerprint_umi_cms.py b/tests/test_lib_browser_fingerprint_umi_cms.py new file mode 100644 index 00000000..d46a5366 --- /dev/null +++ b/tests/test_lib_browser_fingerprint_umi_cms.py @@ -0,0 +1,85 @@ +# -*- coding: utf-8 -*- + +import unittest + +from src.lib.browser.fingerprint import Fingerprint + + +class _FingerprintConfig(object): + """Minimal browser config for isolated fingerprint tests.""" + + DEFAULT_SCHEME = 'http://' + DEFAULT_HTTP_PORT = 80 + DEFAULT_SSL_PORT = 443 + + scheme = 'https://' + host = 'example.com' + port = 443 + prefix = '' + _method = 'HEAD' + + +class _Response(object): + """Small HTTP response stub used by the fingerprint detector.""" + + def __init__(self, status=200, headers=None, data=b''): + """ + Initialize a deterministic response object. + + :param int status: HTTP status code + :param dict|None headers: response headers + :param bytes data: response body + :return: None + """ + + self.status = status + self.headers = headers or {} + self.data = data + + +class _Client(object): + """Static client returning root headers and generic 404 for probes.""" + + def __init__(self, root_headers): + """ + Initialize the client with root response headers. + + :param dict root_headers: headers returned for the target root URL + :return: None + """ + + self.root_headers = root_headers + + def request(self, url): + """ + Return the root response or a neutral 404 response for probes. + + :param str url: requested URL + :return: response stub + :rtype: _Response + """ + + if str(url) == 'https://example.com/': + return _Response( + status=200, + headers=self.root_headers, + data=b'plain page', + ) + + return _Response( + status=404, + headers={'Server': 'Apache/2'}, + data=b'not found', + ) + + +class FingerprintUmiCmsTestCase(unittest.TestCase): + """Regression tests for passive UMI.CMS header fingerprinting.""" + + def test_detects_umi_cms_from_x_generated_by_header(self): + result = Fingerprint( + _FingerprintConfig(), + _Client({'X-Generated-By': 'UMI.CMS', 'X-CMS-Version': '22', 'Server': 'Apache/2'}), + ).detect() + + self.assertEqual('UMI.CMS', result['name']) From f8cd37580d85509b3aa49de1fb39066a47394543 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Fri, 29 May 2026 18:43:43 +0300 Subject: [PATCH 25/42] Add conservative Rails fingerprint signals --- data/directories.dat | 1 + src/lib/browser/fingerprint.py | 132 ++++++++++++++++++++++++++++++++- 2 files changed, 131 insertions(+), 2 deletions(-) diff --git a/data/directories.dat b/data/directories.dat index dc1665a0..463ef1bc 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -7,6 +7,7 @@ 0-0-1 0-9.html 0-12 +config/environments/development.rb 0-a.html 00-backup 00-cache diff --git a/src/lib/browser/fingerprint.py b/src/lib/browser/fingerprint.py index 3587e612..f5e9244c 100644 --- a/src/lib/browser/fingerprint.py +++ b/src/lib/browser/fingerprint.py @@ -1622,6 +1622,112 @@ def _has_php_route_marker(body_lower, final_root_url): body_text, ) is not None + @staticmethod + def _has_rails_authenticity_token_meta(body_lower): + """ + Return True for canonical Rails CSRF meta tags. + + Rails commonly emits a csrf-param meta tag with the fixed + authenticity_token value together with csrf-token. Keep this more + specific than a generic csrf-token match to avoid false positives on + other frameworks. + + :param str body_lower: normalized response body + :return: check result + :rtype: bool + """ + + body_text = str(body_lower or '') + if 'csrf-token' not in body_text: + return False + + return ( + re.search( + r']+name=["\']csrf-param["\'][^>]+content=["\']authenticity_token["\']', + body_text, + ) is not None + or re.search( + r']+content=["\']authenticity_token["\'][^>]+name=["\']csrf-param["\']', + body_text, + ) is not None + ) + + @staticmethod + def _has_rails_ujs_marker(body_lower): + """ + Return True for Rails UJS/Turbo integration markers. + + These markers are not used as standalone Rails evidence. They only + strengthen an existing Rails CSRF/cookie hint. + + :param str body_lower: normalized response body + :return: check result + :rtype: bool + """ + + body_text = str(body_lower or '') + markers = ( + '@rails/ujs', + 'rails-ujs', + 'turbo-rails', + 'data-turbo-track=', + 'data-disable-with=', + 'data-remote="true"', + "data-remote='true'", + 'data-method="delete"', + 'data-method="patch"', + 'data-method="put"', + "data-method='delete'", + "data-method='patch'", + "data-method='put'", + ) + return any(marker in body_text for marker in markers) + + @staticmethod + def _has_rails_asset_marker(body_lower): + """ + Return True for Rails asset pipeline or Webpacker application assets. + + Generic application.js/application.css names are intentionally ignored. + A digest-like asset name is required and the result is only used with + Rails corroboration. + + :param str body_lower: normalized response body + :return: check result + :rtype: bool + """ + + body_text = str(body_lower or '') + return ( + re.search(r'/assets/application-[a-z0-9]{8,}\.(?:css|js)(?:[?"\']|$)', body_text) is not None + or re.search(r'/packs/(?:js|css)/application-[a-z0-9]{8,}\.(?:css|js)(?:[?"\']|$)', body_text) is not None + or re.search(r'/assets/manifest-[a-z0-9]{8,}\.json(?:[?"\']|$)', body_text) is not None + ) + + @staticmethod + def _has_rails_error_marker(body_lower): + """ + Return True for exposed Rails exception or diagnostic markers. + + These strings are framework-specific and only consume response bodies + already fetched by fingerprinting. No active error probing is added. + + :param str body_lower: normalized response body + :return: check result + :rtype: bool + """ + + body_text = str(body_lower or '') + error_markers = ( + 'actioncontroller::routingerror', + 'actioncontroller::unknownformat', + 'actionview::template::error', + 'activerecord::', + 'rails.root', + 'action dispatch', + ) + return any(marker in body_text for marker in error_markers) + @staticmethod def _looks_like_express_not_found(not_found_status, not_found_body_lower): """ @@ -2429,11 +2535,33 @@ def _apply_detection_rules( self._add_signal('Flask', self.FRAMEWORK_CATEGORY, 'header', 'server={0}'.format(headers.get('server')), 7) # Ruby on Rails - if '_rails_session' in cookies: + rails_cookie_hint = '_rails_session' in cookies + rails_exact_csrf = self._has_rails_authenticity_token_meta(body_lower) + rails_csrf_pair = 'csrf-param' in body_lower and 'csrf-token' in body_lower + rails_ujs_hint = self._has_rails_ujs_marker(body_lower) + rails_asset_hint = self._has_rails_asset_marker(body_lower) + rails_error_hint = ( + self._has_rails_error_marker(body_lower) + or self._has_rails_error_marker(not_found_body_lower) + ) + + if rails_cookie_hint: self._add_signal('Ruby on Rails', self.FRAMEWORK_CATEGORY, 'cookie', '_rails_session', 8) - if 'csrf-param' in body_lower and 'csrf-token' in body_lower: + + if rails_exact_csrf: + self._add_signal('Ruby on Rails', self.FRAMEWORK_CATEGORY, 'markup', 'csrf-param=authenticity_token|csrf-token', 8) + elif rails_csrf_pair: self._add_signal('Ruby on Rails', self.FRAMEWORK_CATEGORY, 'markup', 'csrf-param|csrf-token', 5) + if rails_ujs_hint and (rails_cookie_hint or rails_exact_csrf or rails_csrf_pair): + self._add_signal('Ruby on Rails', self.FRAMEWORK_CATEGORY, 'script', 'rails-ujs|turbo-rails', 7) + + if rails_asset_hint and (rails_cookie_hint or rails_exact_csrf or rails_csrf_pair or rails_ujs_hint): + self._add_signal('Ruby on Rails', self.FRAMEWORK_CATEGORY, 'asset', 'rails application asset', 5) + + if rails_error_hint: + self._add_signal('Ruby on Rails', self.FRAMEWORK_CATEGORY, 'exception', 'Rails exception marker', 8) + # Express / NestJS / Fastify / FastAPI / Koa / Hapi if 'express' in x_powered_by or 'express' in not_found_powered_by: self._add_signal('Express', self.FRAMEWORK_CATEGORY, 'header', 'x-powered-by={0}'.format(headers.get('x-powered-by') or not_found_headers.get('x-powered-by')), 8) From cf908ecf8debfb8a5d600ed5401376dd63ea1bab Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Sat, 30 May 2026 11:38:12 +0300 Subject: [PATCH 26/42] pre-release check --- CHANGELOG.md | 1 + data/directories.dat | 10 +- tests/test_lib_browser_fingerprint_rails.py | 164 ++++++++++++++++++++ 3 files changed, 169 insertions(+), 6 deletions(-) create mode 100644 tests/test_lib_browser_fingerprint_rails.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e70a7dc..ded6a67c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ v5.16.2 (xx.06.2026) - (enhancement) added conservative MogutaCMS fingerprint detection without active probes or generic portfolio-page matches. - (enhancement) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt visible after in-flight worker output drains, while preserving Enter/C continue and E/Q abort semantics. - (enhancement) reduced `--sniff malware` false positives for standard Bitrix admin login pages by allowlisting the built-in hidden `auth_frame` iframe only when strong Bitrix login markers are present. +- (enhancement) Ruby on Rails fingerprint detection with conservative passive CSRF, Rails UJS/Turbo, asset-pipeline and Rails error markers while avoiding standalone Rack. - (ui) clarified Runtime Diagnostics queue accounting by showing consumed items, submitted HTTP jobs, and pre-request skipped items separately. - (ui) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt describe Enter/C continue, E/Q abort, and active-request drain semantics. - (dictionary) cleaned and normalized the internal directories list (+XXX potential interesting paths). diff --git a/data/directories.dat b/data/directories.dat index 463ef1bc..6a085bad 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -7,7 +7,6 @@ 0-0-1 0-9.html 0-12 -config/environments/development.rb 0-a.html 00-backup 00-cache @@ -5845,11 +5844,6 @@ config/environments/development.rb .idea/webServers.xml .idea/woaWordpress.iml .idea/workspace(2).xml -.idea/workspace(3).xml -.idea/workspace(4).xml -.idea/workspace(5).xml -.idea/workspace(6).xml -.idea/workspace(7).xml .idea/workspace.xml .idea_modules .ideaassetwizardsettings.xml @@ -12662,6 +12656,8 @@ admin/PMA/index.php admin/PMAindex.php admin/pmaindex.php admin/pol_log.txt +admin/polls/resultwin.php +admin/polls/resultwin.php3 admin/portal admin/portal.php admin/portalcollect.php @@ -36097,6 +36093,7 @@ config/db.inc config/development config/elasticsearch.yml config/environment.rb +config/environments/development.rb config/error_log config/initializers/secret_token.rb config/initializerssecret_token.rb @@ -68659,6 +68656,7 @@ login_users login_usuario.html LoginAction.do loginadmin +loginadmin.php loginasp Loginauth.php loginautoset.asp diff --git a/tests/test_lib_browser_fingerprint_rails.py b/tests/test_lib_browser_fingerprint_rails.py new file mode 100644 index 00000000..108e5d3b --- /dev/null +++ b/tests/test_lib_browser_fingerprint_rails.py @@ -0,0 +1,164 @@ +# -*- coding: utf-8 -*- + +import unittest + +from src.lib.browser.fingerprint import Fingerprint + + +class _FingerprintConfig(object): + """Minimal browser config for isolated Rails fingerprint tests.""" + + DEFAULT_SCHEME = 'http://' + DEFAULT_HTTP_PORT = 80 + DEFAULT_SSL_PORT = 443 + + scheme = 'https://' + host = 'example.com' + port = 443 + prefix = '' + _method = 'HEAD' + + +class _Response(object): + """Small HTTP response stub used by the fingerprint detector.""" + + def __init__(self, status=200, headers=None, data=b''): + """ + Initialize a deterministic response object. + + :param int status: HTTP status code + :param dict|None headers: response headers + :param bytes data: response body + :return: None + """ + + self.status = status + self.headers = headers or {} + self.data = data + + +class _Client(object): + """Static client returning root and generic 404 responses.""" + + def __init__(self, root_body='', root_headers=None, not_found_body='not found'): + """ + Initialize the client fixture. + + :param str root_body: body returned for the target root URL + :param dict|None root_headers: headers returned for the target root URL + :param str not_found_body: body returned for non-root probes + :return: None + """ + + self.root_body = root_body + self.root_headers = root_headers or {} + self.not_found_body = not_found_body + + def request(self, url): + """ + Return root response or neutral 404 for probes. + + :param str url: requested URL + :return: response stub + :rtype: _Response + """ + + if str(url) == 'https://example.com/': + return _Response(status=200, headers=self.root_headers, data=self.root_body.encode('utf-8')) + + return _Response(status=404, headers={'Server': 'nginx'}, data=self.not_found_body.encode('utf-8')) + + +class FingerprintRailsTestCase(unittest.TestCase): + """Regression tests for conservative passive Ruby on Rails fingerprinting.""" + + def _detect(self, root_body='', root_headers=None, not_found_body='not found'): + """ + Run fingerprint detector against a deterministic client fixture. + + :param str root_body: root response body + :param dict|None root_headers: root response headers + :param str not_found_body: 404 probe response body + :return: fingerprint result + :rtype: dict + """ + + return Fingerprint( + _FingerprintConfig(), + _Client(root_body=root_body, root_headers=root_headers, not_found_body=not_found_body), + ).detect() + + def test_keeps_rails_session_cookie_detection(self): + result = self._detect(root_headers={'Set-Cookie': '_rails_session=abc; path=/; HttpOnly'}) + + self.assertEqual('Ruby on Rails', result['name']) + self.assertEqual('Ruby', result['runtime']['name']) + + def test_detects_exact_rails_csrf_meta(self): + body = ''' + + + + hello + ''' + + result = self._detect(root_body=body) + + self.assertEqual('Ruby on Rails', result['name']) + self.assertIn('csrf-param=authenticity_token|csrf-token', [item['value'] for item in result['signals']]) + + def test_detects_rails_ujs_only_with_csrf_corroboration(self): + body = ''' + + + + ''' + + result = self._detect(root_body=body) + + self.assertEqual('Ruby on Rails', result['name']) + self.assertIn('rails-ujs|turbo-rails', [item['value'] for item in result['signals']]) + + def test_detects_rails_asset_pipeline_only_with_corroboration(self): + body = ''' + + + + ''' + + result = self._detect(root_body=body) + + self.assertEqual('Ruby on Rails', result['name']) + self.assertIn('rails application asset', [item['value'] for item in result['signals']]) + + def test_detects_rails_exception_marker_from_root_body(self): + result = self._detect(root_body='

ActionController::RoutingError

Rails.root
') + + self.assertEqual('Ruby on Rails', result['name']) + self.assertIn('Rails exception marker', [item['value'] for item in result['signals']]) + + def test_detects_rails_exception_marker_from_not_found_body(self): + result = self._detect(not_found_body='

ActionView::Template::Error

Rails.root
') + + self.assertEqual('Ruby on Rails', result['name']) + self.assertIn('Rails exception marker', [item['value'] for item in result['signals']]) + + def test_does_not_detect_rails_from_rack_or_passenger_headers_alone(self): + result = self._detect(root_headers={'X-Runtime': '0.042', 'Server': 'Phusion Passenger'}) + + self.assertNotEqual('Ruby on Rails', result['name']) + + def test_does_not_detect_rails_from_ujs_or_assets_alone(self): + body = ''' + + + Delete + ''' + + result = self._detect(root_body=body) + + self.assertNotEqual('Ruby on Rails', result['name']) + + +if __name__ == '__main__': + unittest.main() From cb9278d56d21a91f7352bad77c2ab423de0b3f55 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Sat, 30 May 2026 11:49:10 +0300 Subject: [PATCH 27/42] Improve v5.16.2 coverage gap tests --- CHANGELOG.md | 4 +- ...test_core_http_plugins_response_malware.py | 43 +++++++ tests/test_core_logger_rainbow_extra.py | 23 ++++ tests/test_lib_browser_fingerprint.py | 23 ++++ .../test_lib_browser_fingerprint_mogutacms.py | 23 ++++ tests/test_lib_browser_fingerprint_rails.py | 28 +++++ tests/test_lib_browser_sniffer_runtime.py | 107 ++++++++++++++++++ 7 files changed, 249 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ded6a67c..3530f6b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ CHANGELOG ======= -v5.16.2 (xx.06.2026) +v5.16.2 (30.06.2026) --------------------------- - (critical) fixed scan crashes caused by corrupted gzip/encoded HTTP responses by handling `DecodeError` as a recoverable transport failure instead of aborting worker threads. - (fix) `--sniff malware` false positives when fallback pages repeatedly echo webshell-like names inside URL/query attributes, while preserving real webshell UI and executable payload detections. @@ -21,7 +21,7 @@ v5.16.2 (xx.06.2026) - (enhancement) Ruby on Rails fingerprint detection with conservative passive CSRF, Rails UJS/Turbo, asset-pipeline and Rails error markers while avoiding standalone Rack. - (ui) clarified Runtime Diagnostics queue accounting by showing consumed items, submitted HTTP jobs, and pre-request skipped items separately. - (ui) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt describe Enter/C continue, E/Q abort, and active-request drain semantics. -- (dictionary) cleaned and normalized the internal directories list (+XXX potential interesting paths). +- (dictionary) cleaned and normalized the internal directories list (+1241 potential interesting paths). - (docs) added a `Mastering OpenDoor` companion documentation page for the upcoming article series. v5.16.1 (24.05.2026) diff --git a/tests/test_core_http_plugins_response_malware.py b/tests/test_core_http_plugins_response_malware.py index c67a40e3..76f43010 100644 --- a/tests/test_core_http_plugins_response_malware.py +++ b/tests/test_core_http_plugins_response_malware.py @@ -575,6 +575,49 @@ def test_get_header_returns_case_insensitive_match(self): self.assertEqual(MalwareResponsePlugin._get_header(response, 'Content-Type'), 'Application/XML; charset=utf-8') + def test_extract_js_statement_without_semicolon_is_bounded(self): + """JavaScript statement extraction should stay bounded when no semicolon exists.""" + + source = '' + '' + 'News site', + {}, + ), + ('GET', 'http://example.com{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse(404, 'Not Found', {}), + } + + detector = Fingerprint(config=config, client=self._make_client(config, responses)) + result = detector.detect() + + self.assertEqual(result['category'], 'cms') + self.assertEqual(result['name'], 'DataLife Engine') + self.assertEqual(result['runtime']['name'], 'PHP') + self.assertIn('engine/classes/js/dle_js.js', [signal['value'] for signal in result['signals']]) + + + def test_detects_datalife_engine_from_search_runtime_globals(self): + """Fingerprint should detect DLE from inline search globals used on real homepages.""" + + config = FakeConfig() + base = 'http://example.com/' + responses = { + ('GET', base): FakeResponse( + 200, + 'News', + {}, + ), + ('GET', 'http://example.com{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse(404, 'Not Found', {}), + } + + detector = Fingerprint(config=config, client=self._make_client(config, responses)) + result = detector.detect() + + self.assertEqual(result['category'], 'cms') + self.assertEqual(result['name'], 'DataLife Engine') + self.assertEqual(result['runtime']['name'], 'PHP') + self.assertTrue( + any('dle_search_delay' in signal['value'] for signal in result['signals']) + ) + + def test_detects_datalife_engine_from_explicit_generator(self): + """Fingerprint should keep explicit DataLife Engine generator support.""" + + config = FakeConfig() + base = 'http://example.com/' + responses = { + ('GET', base): FakeResponse( + 200, + '', + {}, + ), + ('GET', 'http://example.com{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse(404, 'Not Found', {}), + } + + detector = Fingerprint(config=config, client=self._make_client(config, responses)) + result = detector.detect() + + self.assertEqual(result['name'], 'DataLife Engine') + self.assertGreaterEqual(result['confidence'], 70) + + def test_does_not_promote_datalife_engine_from_weak_dle_text_only(self): + """Fingerprint should not classify generic DLE text or one isolated global as DLE.""" + + config = FakeConfig() + base = 'http://example.com/' + responses = { + ('GET', base): FakeResponse( + 200, + 'DLE can mean distance learning environment. ' + '', + {}, + ), + ('GET', 'http://example.com{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse(404, 'Not Found', {}), + } + + detector = Fingerprint(config=config, client=self._make_client(config, responses)) + result = detector.detect() + + self.assertNotEqual(result['name'], 'DataLife Engine') + self.assertEqual(result['name'], 'Unknown custom stack') + def test_detects_nextjs(self): """Fingerprint should detect Next.js from __NEXT_DATA__ and _next assets.""" From 6edbfba7bd7e4eafd3ceab3735515001084f89fa Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Sat, 30 May 2026 12:08:22 +0300 Subject: [PATCH 29/42] Fix DLE fingerprint detection from runtime globals --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8e8bd06..be523a76 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ CHANGELOG ======= -v5.16.2 (30.06.2026) +v5.16.2 (31.06.2026) --------------------------- - (critical) fixed scan crashes caused by corrupted gzip/encoded HTTP responses by handling `DecodeError` as a recoverable transport failure instead of aborting worker threads. - (fix) `--sniff malware` false positives when fallback pages repeatedly echo webshell-like names inside URL/query attributes, while preserving real webshell UI and executable payload detections. @@ -24,6 +24,7 @@ v5.16.2 (30.06.2026) - (ui) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt describe Enter/C continue, E/Q abort, and active-request drain semantics. - (dictionary) cleaned and normalized the internal directories list (+1243 potential interesting paths). - (docs) added a `Mastering OpenDoor` companion documentation page for the upcoming article series. +- (deps)(deps-dev): [PR#115](https://github.com/stanislav-web/OpenDoor/pull/115) bump ruff from 0.15.13 to 0.15.14 in the python-runtime-dependencies group v5.16.1 (24.05.2026) --------------------------- From 496fe2229cca30c2bc51c6f45e53715734d6b975 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Sat, 30 May 2026 13:56:16 +0300 Subject: [PATCH 30/42] Fix Webflow fingerprint precedence over WordPress path probes --- CHANGELOG.md | 1 + src/lib/browser/fingerprint.py | 28 ++++++++++++ tests/test_lib_browser_fingerprint.py | 63 +++++++++++++++++++++++++++ 3 files changed, 92 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index be523a76..f697c245 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ v5.16.2 (31.06.2026) - (fix) `--sniff malware` false positives on legacy Google Analytics loaders while preserving suspicious document.write, atob, String.fromCharCode and PHP payload detections. - (fix) `--sniff secret` scan output so secret sniffer hits are labeled as `OK (Secret)` like other sniffer findings. - (fix) `--fingerprint` now detects DataLife Engine (DLE) from conservative runtime globals and engine asset signals. +- (fix) `--fingerprint` now prefers Webflow hosted-platform signals over endpoint-only WordPress static path artifacts. - (enhancement) added Evolution CMS fingerprint detection from explicit generator, branding, and core install-fallback signals. - (enhancement) UMI.CMS fingerprint detection (strong rules added). - (enhancement) added conservative MogutaCMS fingerprint detection without active probes or generic portfolio-page matches. diff --git a/src/lib/browser/fingerprint.py b/src/lib/browser/fingerprint.py index 5769f333..053f4dfa 100644 --- a/src/lib/browser/fingerprint.py +++ b/src/lib/browser/fingerprint.py @@ -1956,7 +1956,19 @@ def _apply_detection_rules( x_amz_cf_id = str(headers.get('x-amz-cf-id', '')).lower() x_amz_request_id = str(headers.get('x-amz-request-id', '')).lower() x_amz_id_2 = str(headers.get('x-amz-id-2', '')).lower() + content_security_policy = str(headers.get('content-security-policy', '')).lower() + surrogate_key = str(headers.get('surrogate-key', '')).lower() + x_wf_region = str(headers.get('x-wf-region', '')).lower() final_root_lower = str(final_root_url).lower() + host_lower = str(getattr(self.__config, 'host', '') or '').lower() + webflow_hosted_context = bool( + host_lower == 'webflow.io' + or host_lower.endswith('.webflow.io') + or x_wf_region + or 'webflow.io' in surrogate_key + or 'webflow.com' in content_security_policy + or 'webflow.io' in content_security_policy + ) not_found_body_lower = str(not_found_body).lower() not_found_powered_by = str(not_found_headers.get('x-powered-by', '')).lower() not_found_server = str(not_found_headers.get('server', '')).lower() @@ -1974,12 +1986,18 @@ def _apply_detection_rules( docs_probe_up = any(probe_statuses.get(path) in [200, 301, 302, 401, 403] for path in ['/docs', '/redoc']) # WordPress + wordpress_root_evidence = False if 'wordpress' in generator_lower: self._add_signal('WordPress', self.CMS_CATEGORY, 'meta', 'generator={0}'.format(generator), 7) + wordpress_root_evidence = True if '/wp-content/' in body_lower: self._add_signal('WordPress', self.CMS_CATEGORY, 'markup', '/wp-content/', 6) + wordpress_root_evidence = True if '/wp-includes/' in body_lower: self._add_signal('WordPress', self.CMS_CATEGORY, 'markup', '/wp-includes/', 5) + wordpress_root_evidence = True + if any(cookie.startswith(('wordpress_', 'wp-settings-')) for cookie in cookies): + wordpress_root_evidence = True wordpress_static_probes = ( ('/wp-content/', 6), @@ -1988,6 +2006,8 @@ def _apply_detection_rules( ('/wp-content/themes/', 4), ) for probe_path, weight in wordpress_static_probes: + if webflow_hosted_context and not wordpress_root_evidence: + continue if self._is_distinct_probe_up(probe_statuses, probe_path, [200, 301, 302, 401, 403], not_found_status): self._add_signal('WordPress', self.CMS_CATEGORY, 'endpoint', probe_path, weight) @@ -2083,6 +2103,14 @@ def _apply_detection_rules( self._add_signal('Mobirise', self.SITE_BUILDER_CATEGORY, 'markup', 'mbr-*', 5) # Webflow + if host_lower == 'webflow.io' or host_lower.endswith('.webflow.io'): + self._add_signal('Webflow', self.SITE_BUILDER_CATEGORY, 'host', 'host=*.webflow.io', 9) + if x_wf_region: + self._add_signal('Webflow', self.SITE_BUILDER_CATEGORY, 'header', 'x-wf-region', 8) + if 'webflow.io' in surrogate_key: + self._add_signal('Webflow', self.SITE_BUILDER_CATEGORY, 'header', 'surrogate-key=webflow.io', 7) + if 'webflow.com' in content_security_policy or 'webflow.io' in content_security_policy: + self._add_signal('Webflow', self.SITE_BUILDER_CATEGORY, 'header', 'csp frame-ancestors webflow', 6) if 'webflow' in generator_lower: self._add_signal('Webflow', self.SITE_BUILDER_CATEGORY, 'meta', 'generator={0}'.format(generator), 7) if 'webflow.css' in body_lower or 'w-webflow-' in body_lower: diff --git a/tests/test_lib_browser_fingerprint.py b/tests/test_lib_browser_fingerprint.py index 9edc95c2..af179b0d 100644 --- a/tests/test_lib_browser_fingerprint.py +++ b/tests/test_lib_browser_fingerprint.py @@ -373,6 +373,69 @@ def test_detects_webflow(self): self.assertEqual(result['category'], 'sitebuilder') self.assertEqual(result['name'], 'Webflow') + def test_detects_webflow_hosted_site_and_ignores_wordpress_endpoint_artifacts(self): + """Fingerprint should prefer Webflow hosting/header signals over endpoint-only WordPress artifacts.""" + + config = FakeConfig(host='carrotdev.webflow.io', scheme='https://', port=443) + base = 'https://carrotdev.webflow.io/' + responses = { + ('GET', base): FakeResponse( + 200, + 'CarrotDevsWeb design', + { + 'Server': 'cloudflare', + 'X-WF-Region': 'us-east-1', + 'Surrogate-Key': 'carrotdev.webflow.io pageId:abc', + 'Content-Security-Policy': ( + "frame-ancestors 'self' https://*.webflow.com " + 'http://*.webflow.io https://webflow.com' + ), + }, + ), + ('HEAD', 'https://carrotdev.webflow.io/wp-content/'): FakeResponse(403, '', {}), + ('HEAD', 'https://carrotdev.webflow.io/wp-includes/'): FakeResponse(403, '', {}), + ('HEAD', 'https://carrotdev.webflow.io/wp-content/plugins/'): FakeResponse(403, '', {}), + ('HEAD', 'https://carrotdev.webflow.io/wp-content/themes/'): FakeResponse(403, '', {}), + ('GET', 'https://carrotdev.webflow.io{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse( + 404, + 'Not Found', + {'X-WF-Region': 'us-east-1'}, + ), + } + + detector = Fingerprint(config=config, client=self._make_client(config, responses)) + result = detector.detect() + + self.assertEqual(result['category'], 'sitebuilder') + self.assertEqual(result['name'], 'Webflow') + self.assertFalse(any(candidate['name'] == 'WordPress' for candidate in result['candidates'])) + self.assertIn('host=*.webflow.io', [signal['value'] for signal in result['signals']]) + + def test_does_not_detect_wordpress_from_404_static_probes(self): + """Fingerprint should not treat 404 WordPress static paths as reachable endpoints.""" + + config = FakeConfig() + base = 'http://example.com/' + responses = { + ('GET', base): FakeResponse(200, 'plain site', {}), + ('HEAD', 'http://example.com/wp-content/'): FakeResponse(404, '', {}), + ('HEAD', 'http://example.com/wp-includes/'): FakeResponse(404, '', {}), + ('HEAD', 'http://example.com/wp-content/plugins/'): FakeResponse(404, '', {}), + ('HEAD', 'http://example.com/wp-content/themes/'): FakeResponse(404, '', {}), + ('GET', 'http://example.com{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse( + 404, + 'Not Found', + {}, + ), + } + + detector = Fingerprint(config=config, client=self._make_client(config, responses)) + result = detector.detect() + + self.assertEqual(result['category'], 'custom') + self.assertEqual(result['name'], 'Unknown custom stack') + self.assertFalse(any(candidate['name'] == 'WordPress' for candidate in result['candidates'])) + def test_detects_mobirise_from_generator_and_assets(self): """Fingerprint should detect Mobirise landing-page builder output.""" From 4c55293ab07981816cf59b4d3f77861b94b32647 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Sat, 30 May 2026 17:58:45 +0300 Subject: [PATCH 31/42] Fix CMS.S3 fingerprint detection from root-page markers --- CHANGELOG.md | 6 +- data/directories.dat | 2 + src/lib/browser/calibration.py | 91 +++++++++++++- src/lib/browser/fingerprint.py | 165 +++++++++++++++++++++++++- tests/test_lib_browser_calibration.py | 59 +++++++++ tests/test_lib_browser_fingerprint.py | 113 +++++++++++++++++- 6 files changed, 423 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f697c245..78f6d798 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ CHANGELOG v5.16.2 (31.06.2026) --------------------------- - (critical) fixed scan crashes caused by corrupted gzip/encoded HTTP responses by handling `DecodeError` as a recoverable transport failure instead of aborting worker threads. +- (fix) `--fingerprint` no longer treats generic 403/405 WordPress static-path probes as strong WordPress evidence unless corroborated by root-page WordPress signals. +- (fix) compact nginx-style 404 bodies emitted with transient 2xx statuses are now suppressed by strict cross-status auto-calibration instead of being reported as OK findings. - (fix) `--sniff malware` false positives when fallback pages repeatedly echo webshell-like names inside URL/query attributes, while preserving real webshell UI and executable payload detections. - (fix) false-positive OK findings when a target returns a canonical 404/410 error body with a transient 2xx status by adding strict cross-status soft-error calibration. - (fix) `--sniff shadow` false positives on soft-200/fallback routes by adding a negative-control probe before reporting backup-file variants. @@ -23,7 +25,7 @@ v5.16.2 (31.06.2026) - (enhancement) Ruby on Rails fingerprint detection with conservative passive CSRF, Rails UJS/Turbo, asset-pipeline and Rails error markers while avoiding standalone Rack. - (ui) clarified Runtime Diagnostics queue accounting by showing consumed items, submitted HTTP jobs, and pre-request skipped items separately. - (ui) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt describe Enter/C continue, E/Q abort, and active-request drain semantics. -- (dictionary) cleaned and normalized the internal directories list (+1243 potential interesting paths). +- (dictionary) cleaned and normalized the internal directories list (+1244 potential interesting paths). - (docs) added a `Mastering OpenDoor` companion documentation page for the upcoming article series. - (deps)(deps-dev): [PR#115](https://github.com/stanislav-web/OpenDoor/pull/115) bump ruff from 0.15.13 to 0.15.14 in the python-runtime-dependencies group @@ -105,7 +107,7 @@ v5.16.0 (17.05.2026) - (ux) reduced stdout Summary noise by hiding low-value diagnostic counters and detailed fingerprint/HSTS/privacy internals while preserving them in structured reports. - (ux) improved connection preflight diagnostics for localhost/proxy transport checks. - (dictionary) bundled `data/shadow-suffixes.dat` in source and wheel distributions so PyPI, Homebrew-style source builds and local installs include the built-in shadow suffix catalog by default. -- (dictionary) cleaned and normalized internal directories list (+2133 potencial interesting paths). +- (dictionary) cleaned and normalized internal directories list (+xxx potencial interesting paths). - (build) added staged Ruff quality gates and advisory Vulture dead-code checks, with updated contributor rules and cleanup documentation. v5.15.3 (09.05.2026) diff --git a/data/directories.dat b/data/directories.dat index ef4f6305..770b7821 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -45117,6 +45117,7 @@ dump/admin.php dump/backup dump_2024.sql dump_2025.sql +dump_2026.sql dumpadmin.php dumpenv dumper @@ -70203,6 +70204,7 @@ Main_Page main_page main_page.php main_result.php +main_service.php main_special.cfm main_user/.env MainActivity.php diff --git a/src/lib/browser/calibration.py b/src/lib/browser/calibration.py index 7bd72607..4c33351d 100644 --- a/src/lib/browser/calibration.py +++ b/src/lib/browser/calibration.py @@ -555,6 +555,85 @@ def _has_strong_soft_error_semantics(cls, signature): return False + @classmethod + def _has_any_soft_error_semantics(cls, signature): + """ + Decide whether a signature carries at least a weak missing-resource marker. + + Some compact nginx/hosting 404 templates contain only a short ``Not Found`` + body without a title or ``requested URL`` wording. That is too weak by + itself, but it is useful when paired with an almost identical 4xx baseline. + + :param dict signature: response signature + :return: True when a weak 404-style marker is present + :rtype: bool + """ + + if cls._has_strong_soft_error_semantics(signature) is True: + return True + + phrases = set(signature.get('semantic_phrases') or []) + title = str(signature.get('title') or '').strip().lower() + + return title in ('404', '404 not found', 'not found') or bool({'404', 'not found'} & phrases) + + @classmethod + def _is_compact_cross_status_soft_error_shape_match(cls, baseline, candidate): + """ + Return True for compact 4xx error templates emitted with a transient 2xx. + + This is intentionally stricter than normal same-status calibration: it + requires a 404/410-to-2xx pair, weak missing-resource semantics on both + sides, small comparable bodies, compatible content kinds, and at least one + stable shape hash match. + + :param dict baseline: baseline calibration signature + :param dict candidate: candidate response signature + :return: True when the candidate is the same compact error template + :rtype: bool + """ + + if cls._is_soft_error_status_pair(baseline.get('code'), candidate.get('code')) is not True: + return False + + if cls._has_any_soft_error_semantics(baseline) is not True: + return False + + if cls._has_any_soft_error_semantics(candidate) is not True: + return False + + baseline_kind = baseline.get('content_kind') + candidate_kind = candidate.get('content_kind') + + if baseline_kind and candidate_kind: + if baseline_kind != candidate_kind or baseline_kind not in ('html', 'text'): + return False + + baseline_size = cls._soft_200_number(baseline.get('size')) + candidate_size = cls._soft_200_number(candidate.get('size')) + + if min(baseline_size, candidate_size) < 32: + return False + if max(baseline_size, candidate_size) > 1024: + return False + if cls._soft_200_similarity(baseline_size, candidate_size) < 0.965: + return False + + stable_hashes = ( + 'normalized_body_hash', + 'body_skeleton_hash', + 'visible_text_hash', + 'dom_token_hash', + ) + + for name in stable_hashes: + baseline_hash = baseline.get(name) + candidate_hash = candidate.get(name) + if baseline_hash and candidate_hash and baseline_hash == candidate_hash: + return True + + return False + @classmethod def _cross_status_soft_error_score(cls, baseline, candidate): """ @@ -575,15 +654,21 @@ def _cross_status_soft_error_score(cls, baseline, candidate): if cls._is_soft_error_status_pair(baseline.get('code'), candidate.get('code')) is not True: return 0.0, reasons - if cls._has_strong_soft_error_semantics(baseline) is not True: - return 0.0, reasons + compact_shape_match = cls._is_compact_cross_status_soft_error_shape_match(baseline, candidate) - if cls._has_strong_soft_error_semantics(candidate) is not True: + if ( + cls._has_strong_soft_error_semantics(baseline) is not True + or cls._has_strong_soft_error_semantics(candidate) is not True + ) and compact_shape_match is not True: return 0.0, reasons score = 0.36 reasons.append('cross-status-soft-error') + if compact_shape_match is True: + score += 0.12 + reasons.append('compact-soft-error-shape') + if baseline.get('normalized_body_hash') == candidate.get('normalized_body_hash'): score += 0.22 reasons.append('body-hash') diff --git a/src/lib/browser/fingerprint.py b/src/lib/browser/fingerprint.py index 053f4dfa..0186c9bf 100644 --- a/src/lib/browser/fingerprint.py +++ b/src/lib/browser/fingerprint.py @@ -138,7 +138,7 @@ def _default_result(cls): STATIC_CATEGORY = 'static' RUNTIME_CATEGORY = 'runtime' TECHNOLOGY_RUNTIME_MAP = { - 'WordPress': 'PHP', 'WooCommerce': 'PHP', 'Drupal': 'PHP', 'Joomla': 'PHP', 'Magento': 'PHP', 'Bitrix': 'PHP', 'OpenCart': 'PHP', 'PrestaShop': 'PHP', 'TYPO3': 'PHP', 'Nextcloud': 'PHP', 'ownCloud': 'PHP', 'Matomo': 'PHP', 'phpMyAdmin': 'PHP', 'phpBB': 'PHP', 'Moodle': 'PHP', 'Open Journal Systems': 'PHP', 'Evolution CMS': 'PHP', 'MogutaCMS': 'PHP', 'InstantCMS': 'PHP', 'DiafanCMS': 'PHP', 'Laravel': 'PHP', 'Symfony': 'PHP', 'Craft CMS': 'PHP', 'Bolt CMS': 'PHP', 'RoundCube Webmail': 'PHP', 'WHMCS': 'PHP', 'CS-Cart': 'PHP', 'CubeCart': 'PHP', 'DataLife Engine': 'PHP', 'Discuz!': 'PHP', 'SilverStripe': 'PHP', 'Webasyst / Shop-Script': 'PHP', 'XOOPS': 'PHP', 'Zen Cart CMS': 'PHP', 'e107': 'PHP', 'phpWind': 'PHP', 'phpCMS': 'PHP', + 'WordPress': 'PHP', 'WooCommerce': 'PHP', 'Drupal': 'PHP', 'Joomla': 'PHP', 'Magento': 'PHP', 'Bitrix': 'PHP', 'OpenCart': 'PHP', 'PrestaShop': 'PHP', 'TYPO3': 'PHP', 'Nextcloud': 'PHP', 'ownCloud': 'PHP', 'Matomo': 'PHP', 'phpMyAdmin': 'PHP', 'phpBB': 'PHP', 'Moodle': 'PHP', 'Open Journal Systems': 'PHP', 'Evolution CMS': 'PHP', 'MogutaCMS': 'PHP', 'CMS.S3 / Megagroup': 'PHP', 'InstantCMS': 'PHP', 'DiafanCMS': 'PHP', 'Laravel': 'PHP', 'Symfony': 'PHP', 'Craft CMS': 'PHP', 'Bolt CMS': 'PHP', 'RoundCube Webmail': 'PHP', 'WHMCS': 'PHP', 'CS-Cart': 'PHP', 'CubeCart': 'PHP', 'DataLife Engine': 'PHP', 'Discuz!': 'PHP', 'SilverStripe': 'PHP', 'Webasyst / Shop-Script': 'PHP', 'XOOPS': 'PHP', 'Zen Cart CMS': 'PHP', 'e107': 'PHP', 'phpWind': 'PHP', 'phpCMS': 'PHP', 'Express': 'Node.js', 'NestJS': 'Node.js', 'Fastify': 'Node.js', 'Koa': 'Node.js', 'Hapi': 'Node.js', 'Strapi': 'Node.js', 'Directus': 'Node.js', 'Ghost': 'Node.js', 'Next.js': 'Node.js', 'Nuxt': 'Node.js', 'Gatsby': 'Node.js', 'Astro': 'Node.js', 'Remix': 'Node.js', 'SvelteKit': 'Node.js', 'Docusaurus': 'Node.js', 'VitePress': 'Node.js', 'PencilBlue': 'Node.js', 'React': 'JavaScript', 'Vue': 'JavaScript', 'Angular': 'JavaScript', 'Django': 'Python', 'Flask': 'Python', 'FastAPI': 'Python', 'Ruby on Rails': 'Ruby', 'Spree': 'Ruby', 'Spring': 'Java/JVM', 'Liferay': 'Java/JVM', 'OpenCms': 'Java/JVM', 'Hippo CMS': 'Java/JVM', 'dotCMS': 'Java/JVM', 'ASP.NET': '.NET', 'Microsoft SharePoint': '.NET', 'DNN Platform': '.NET', 'Orchard CMS': '.NET', 'Sitecore': '.NET', 'Sitefinity': '.NET', 'Umbraco': '.NET', 'Phoenix': 'Elixir', 'MkDocs': 'Static site', 'Jekyll': 'Static site', 'Hugo': 'Static site', 'AsciiDoc': 'Static site', } @@ -1527,6 +1527,88 @@ def _apply_evolution_cms_rules(self, body_lower, generator, probe_statuses, not_ self._add_signal('Evolution CMS', self.CMS_CATEGORY, 'endpoint', '/manager/', 3) + @classmethod + def _collect_cms_s3_root_signals(cls, body_lower): + """ + Return conservative CMS.S3 / Megagroup root-page signals. + + CMS.S3 pages commonly expose generated builder markup and runtime + assets such as ``/my/s3/``, ``/shared/s3/``, ``$ite.start(...)`` and + ``widget-type-*``. A single vendor footer/link is intentionally weak + and is not enough for standalone detection. + + :param str body_lower: normalized response body + :return: detected signal tuples + :rtype: list[tuple[str, str]] + """ + + body_text = str(body_lower or '').lower() + marker_rules = ( + ('/my/s3/', 'asset', '/my/s3/'), + ('/shared/s3/', 'asset', '/shared/s3/'), + ('/g/s3/', 'asset', '/g/s3/'), + ('/my/s3/xapi/public/', 'asset', '/my/s3/xapi/public/'), + ('$ite.start', 'script', '$ite.start'), + ('s3solutionspanel', 'script', 'S3SolutionsPanel'), + ('wm-widget-', 'markup', 'wm-widget-*'), + ('widget-type-', 'markup', 'widget-type-*'), + ('editorelement layer-type', 'markup', 'editorElement layer-type'), + ('data-api-type="popup-form"', 'markup', 'data-api-type=popup-form'), + ("data-api-type='popup-form'", 'markup', 'data-api-type=popup-form'), + ('megagroup.ru', 'vendor', 'megagroup.ru'), + ('mega-copyright', 'vendor', 'mega-copyright'), + ) + + signals = [] + seen_values = set() + for marker, signal_type, value in marker_rules: + if marker not in body_text or value in seen_values: + continue + signals.append((signal_type, value)) + seen_values.add(value) + + return signals + + def _apply_cms_s3_rules(self, body_lower): + """ + Apply conservative passive CMS.S3 / Megagroup root-page signals. + + Generic footer/vendor mentions remain weak catalog evidence. Strong + CMS.S3 classification requires multiple generated S3 builder/runtime + markers from the root page and does not depend on endpoint probes. + + :param str body_lower: normalized response body + :return: None + """ + + signals = self._collect_cms_s3_root_signals(body_lower) + if len(signals) <= 0: + return + + structural_signals = [ + value for signal_type, value in signals + if signal_type in ('asset', 'script', 'markup') + ] + vendor_signals = [value for signal_type, value in signals if signal_type == 'vendor'] + + if len(structural_signals) >= 2: + self._add_signal( + 'CMS.S3 / Megagroup', + self.CMS_CATEGORY, + 'markup', + '+'.join(structural_signals[:4]), + 9, + ) + if len(vendor_signals) > 0: + self._add_signal( + 'CMS.S3 / Megagroup', + self.CMS_CATEGORY, + 'vendor', + '+'.join(vendor_signals[:2]), + 3, + ) + + def _apply_datalife_engine_rules(self, body_lower, generator): """ Apply conservative passive DataLife Engine (DLE) signals. @@ -1899,6 +1981,46 @@ def _is_distinct_probe_up(cls, probe_statuses, path, allowed_statuses, not_found status = probe_statuses.get(path) return status in allowed_statuses and cls._is_distinct_probe_status(status, not_found_status) + @classmethod + def _is_wordpress_probe_up( + cls, + probe_statuses, + path, + not_found_status, + has_root_evidence, + public_statuses, + corroborated_statuses, + ): + """ + Return True when a WordPress endpoint probe is safe to use as evidence. + + WordPress static paths often return 403 on real installations, but + many non-WordPress hosts also return generic 403/405 deny templates + for suspicious paths. Endpoint-only restricted statuses therefore need + root-page corroboration before they can become WordPress evidence. + + :param dict probe_statuses: collected probe statuses + :param str path: probe path + :param int|None not_found_status: missing-path baseline HTTP status + :param bool has_root_evidence: whether the root response exposed WordPress markers + :param list[int] public_statuses: statuses accepted without root corroboration + :param list[int] corroborated_statuses: statuses accepted only with root corroboration + :return: bool + """ + + try: + status = int(probe_statuses.get(path) or 0) + except (TypeError, ValueError): + return False + + if status <= 0 or cls._is_distinct_probe_status(status, not_found_status) is not True: + return False + + if status in public_statuses: + return True + + return bool(has_root_evidence and status in corroborated_statuses) + @staticmethod def _should_propagate_runtime_from_signal(signal_type): """ @@ -2008,14 +2130,42 @@ def _apply_detection_rules( for probe_path, weight in wordpress_static_probes: if webflow_hosted_context and not wordpress_root_evidence: continue - if self._is_distinct_probe_up(probe_statuses, probe_path, [200, 301, 302, 401, 403], not_found_status): + if self._is_wordpress_probe_up( + probe_statuses, + probe_path, + not_found_status, + wordpress_root_evidence, + public_statuses=[200], + corroborated_statuses=[301, 302, 401, 403], + ): self._add_signal('WordPress', self.CMS_CATEGORY, 'endpoint', probe_path, weight) - if self._is_distinct_probe_up(probe_statuses, '/wp-json/', [200, 401, 403], not_found_status): + if self._is_wordpress_probe_up( + probe_statuses, + '/wp-json/', + not_found_status, + wordpress_root_evidence, + public_statuses=[200], + corroborated_statuses=[401, 403], + ): self._add_signal('WordPress', self.CMS_CATEGORY, 'endpoint', '/wp-json/', 5) - if self._is_distinct_probe_up(probe_statuses, '/wp-login.php', [200, 301, 302, 401, 403], not_found_status): + if self._is_wordpress_probe_up( + probe_statuses, + '/wp-login.php', + not_found_status, + wordpress_root_evidence, + public_statuses=[200], + corroborated_statuses=[301, 302, 401, 403], + ): self._add_signal('WordPress', self.CMS_CATEGORY, 'endpoint', '/wp-login.php', 2) - if self._is_distinct_probe_up(probe_statuses, '/xmlrpc.php', [200, 301, 302, 401, 403, 405], not_found_status): + if self._is_wordpress_probe_up( + probe_statuses, + '/xmlrpc.php', + not_found_status, + wordpress_root_evidence, + public_statuses=[200], + corroborated_statuses=[301, 302, 401, 403, 405], + ): self._add_signal('WordPress', self.CMS_CATEGORY, 'endpoint', '/xmlrpc.php', 2) if any(cookie.startswith(('wordpress_', 'wp-settings-')) for cookie in cookies): self._add_signal('WordPress', self.CMS_CATEGORY, 'cookie', 'wordpress_*', 5) @@ -2426,6 +2576,11 @@ def _apply_detection_rules( generator=generator, ) + # CMS.S3 / Megagroup + self._apply_cms_s3_rules( + body_lower=body_lower, + ) + # MODX modx_hint = ( 'modx' in generator_lower diff --git a/tests/test_lib_browser_calibration.py b/tests/test_lib_browser_calibration.py index e31bd010..0396b026 100644 --- a/tests/test_lib_browser_calibration.py +++ b/tests/test_lib_browser_calibration.py @@ -209,6 +209,65 @@ def test_calibration_should_match_200_response_with_canonical_404_body(self): self.assertIsNotNone(actual) self.assertIn('cross-status-soft-error', actual['calibration_reason']) + def test_calibration_should_match_compact_200_response_with_not_found_body(self): + """Calibration.match() should suppress compact nginx-style 404 bodies emitted as 2xx.""" + + body = ( + '

Not Found

' + '
nginx-reuseport/1.21.1
' + ) + + baseline_response = self.make_response(status=404, body=body) + candidate_response = self.make_response(status=200, body=body) + + calibration = Calibration( + signatures=[ + Calibration.build_signature( + baseline_response, + ('failed', 'http://example.com/random', '275B', '404') + ) + ], + threshold=0.92 + ) + + actual = calibration.match( + candidate_response, + ('success', 'http://example.com/adminer-3.2.0-de.php', '273B', '200') + ) + + self.assertIsNotNone(actual) + self.assertIn('cross-status-soft-error', actual['calibration_reason']) + self.assertIn('compact-soft-error-shape', actual['calibration_reason']) + + def test_calibration_should_not_cross_match_large_or_different_compact_error_shape(self): + """Compact cross-status matching should not suppress unrelated small 2xx pages.""" + + baseline_response = self.make_response( + status=404, + body='

Not Found


nginx
' + ) + candidate_response = self.make_response( + status=200, + body='

Not Found Labs

admin panel

' + ) + + calibration = Calibration( + signatures=[ + Calibration.build_signature( + baseline_response, + ('failed', 'http://example.com/random', '90B', '404') + ) + ], + threshold=0.92 + ) + + actual = calibration.match( + candidate_response, + ('success', 'http://example.com/not-found-labs', '82B', '200') + ) + + self.assertIsNone(actual) + def test_calibration_should_not_cross_match_real_not_found_titled_page(self): """Cross-status soft-error matching should not hide useful pages by title only.""" diff --git a/tests/test_lib_browser_fingerprint.py b/tests/test_lib_browser_fingerprint.py index af179b0d..c4d213e5 100644 --- a/tests/test_lib_browser_fingerprint.py +++ b/tests/test_lib_browser_fingerprint.py @@ -124,13 +124,17 @@ def test_detects_wordpress(self): self.assertEqual(result['name'], 'WordPress') self.assertGreaterEqual(result['confidence'], 90) - def test_detects_wordpress_from_static_asset_endpoint_probes(self): - """Fingerprint should detect WordPress from distinctive static directory probes.""" + def test_detects_wordpress_from_corroborated_static_endpoint_probes(self): + """Fingerprint should use restricted WordPress endpoints only with root evidence.""" config = FakeConfig() base = 'http://example.com/' responses = { - ('GET', base): FakeResponse(200, 'plain site', {}), + ('GET', base): FakeResponse( + 200, + '', + {}, + ), ('HEAD', 'http://example.com/wp-content/'): FakeResponse(403, '', {}), ('HEAD', 'http://example.com/wp-includes/'): FakeResponse(403, '', {}), ('GET', 'http://example.com{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse( @@ -411,6 +415,109 @@ def test_detects_webflow_hosted_site_and_ignores_wordpress_endpoint_artifacts(se self.assertFalse(any(candidate['name'] == 'WordPress' for candidate in result['candidates'])) self.assertIn('host=*.webflow.io', [signal['value'] for signal in result['signals']]) + def test_detects_cms_s3_from_root_builder_runtime_markers(self): + """Fingerprint should detect CMS.S3 without relying on WordPress endpoint probes.""" + + config = FakeConfig(host='evroavtofurgon.ru', scheme='https://', port=443) + base = 'https://evroavtofurgon.ru/' + responses = { + ('GET', base): FakeResponse( + 200, + '' + '' + '' + '' + '
' + '' + 'Изготовление сайтов: megagroup.ru' + '', + {'Server': 'nginx'}, + ), + ('HEAD', 'https://evroavtofurgon.ru/wp-content/'): FakeResponse(403, '', {}), + ('HEAD', 'https://evroavtofurgon.ru/wp-includes/'): FakeResponse(403, '', {}), + ('HEAD', 'https://evroavtofurgon.ru/wp-content/plugins/'): FakeResponse(403, '', {}), + ('HEAD', 'https://evroavtofurgon.ru/wp-content/themes/'): FakeResponse(403, '', {}), + ('GET', 'https://evroavtofurgon.ru{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse( + 404, + 'Not Found', + {}, + ), + } + + detector = Fingerprint(config=config, client=self._make_client(config, responses)) + result = detector.detect() + + self.assertEqual(result['category'], 'cms') + self.assertEqual(result['name'], 'CMS.S3 / Megagroup') + self.assertEqual(result['runtime']['name'], 'PHP') + self.assertFalse(any(candidate['name'] == 'WordPress' for candidate in result['candidates'])) + self.assertIn( + '/shared/s3/', + ''.join(signal['value'] for signal in result['signals']), + ) + + def test_weak_cms_s3_vendor_text_stays_below_detection_threshold(self): + """A single Megagroup footer/link should not classify an unrelated site as CMS.S3.""" + + config = FakeConfig() + base = 'http://example.com/' + responses = { + ('GET', base): FakeResponse( + 200, + 'vendor portfolio link', + {}, + ), + ('GET', 'http://example.com{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse( + 404, + 'Not Found', + {}, + ), + } + + detector = Fingerprint(config=config, client=self._make_client(config, responses)) + result = detector.detect() + + self.assertEqual(result['category'], 'custom') + self.assertEqual(result['name'], 'Unknown custom stack') + self.assertEqual(result['candidates'][0]['name'], 'CMS.S3 / Megagroup') + self.assertLess(result['candidates'][0]['score'], 7) + + + def test_does_not_detect_wordpress_from_generic_restricted_static_probes(self): + """Fingerprint should not treat generic 403/405 WordPress path denies as WordPress.""" + + config = FakeConfig() + base = 'http://example.com/' + responses = { + ('GET', base): FakeResponse( + 200, + 'CMS.S3-like site' + '', + {'Server': 'nginx'}, + ), + ('HEAD', 'http://example.com/wp-content/'): FakeResponse(403, '', {}), + ('HEAD', 'http://example.com/wp-includes/'): FakeResponse(403, '', {}), + ('HEAD', 'http://example.com/wp-content/plugins/'): FakeResponse(403, '', {}), + ('HEAD', 'http://example.com/wp-content/themes/'): FakeResponse(403, '', {}), + ('HEAD', 'http://example.com/wp-json/'): FakeResponse(403, '', {}), + ('HEAD', 'http://example.com/wp-login.php'): FakeResponse(403, '', {}), + ('HEAD', 'http://example.com/xmlrpc.php'): FakeResponse(405, '', {}), + ('GET', 'http://example.com{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse( + 404, + 'Not Found', + {}, + ), + } + + detector = Fingerprint(config=config, client=self._make_client(config, responses)) + result = detector.detect() + + self.assertEqual(result['category'], 'custom') + self.assertEqual(result['name'], 'Unknown custom stack') + self.assertFalse(any(candidate['name'] == 'WordPress' for candidate in result['candidates'])) + def test_does_not_detect_wordpress_from_404_static_probes(self): """Fingerprint should not treat 404 WordPress static paths as reachable endpoints.""" From 1671edb811a084ec506e888ea44ea880c0002015 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Sat, 30 May 2026 18:14:26 +0300 Subject: [PATCH 32/42] Add Camaleon CMS fingerprint detection --- CHANGELOG.md | 22 ++--- docs/detection/fingerprinting.md | 1 + src/lib/browser/fingerprint.py | 114 +++++++++++++++++++++++++- tests/test_lib_browser_fingerprint.py | 93 +++++++++++++++++++++ 4 files changed, 218 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 78f6d798..19b09a42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,11 @@ CHANGELOG ======= -v5.16.2 (31.06.2026) +v5.16.2 (30.06.2026) --------------------------- - (critical) fixed scan crashes caused by corrupted gzip/encoded HTTP responses by handling `DecodeError` as a recoverable transport failure instead of aborting worker threads. -- (fix) `--fingerprint` no longer treats generic 403/405 WordPress static-path probes as strong WordPress evidence unless corroborated by root-page WordPress signals. -- (fix) compact nginx-style 404 bodies emitted with transient 2xx statuses are now suppressed by strict cross-status auto-calibration instead of being reported as OK findings. +- (fix) `--fingerprint` no longer treats generic WordPress static-path probes as strong WordPress evidence unless corroborated by root-page WordPress signals. +- (fix) false-positive OK findings when a target returns a canonical 404/410 error body with a transient 2xx status by adding strict cross-status soft-error calibration, including compact nginx-style 404 bodies. - (fix) `--sniff malware` false positives when fallback pages repeatedly echo webshell-like names inside URL/query attributes, while preserving real webshell UI and executable payload detections. -- (fix) false-positive OK findings when a target returns a canonical 404/410 error body with a transient 2xx status by adding strict cross-status soft-error calibration. - (fix) `--sniff shadow` false positives on soft-200/fallback routes by adding a negative-control probe before reporting backup-file variants. - (fix) subdomain scans so missing/no-response candidates are skipped without triggering the directory retry fail-streak abort guard. - (fix) directory scan prefix normalization so `--prefix ex` and `--prefix ex/` both scan under `/ex/` instead of concatenating paths as `/ex`. @@ -17,17 +16,18 @@ v5.16.2 (31.06.2026) - (fix) `--sniff secret` scan output so secret sniffer hits are labeled as `OK (Secret)` like other sniffer findings. - (fix) `--fingerprint` now detects DataLife Engine (DLE) from conservative runtime globals and engine asset signals. - (fix) `--fingerprint` now prefers Webflow hosted-platform signals over endpoint-only WordPress static path artifacts. -- (enhancement) added Evolution CMS fingerprint detection from explicit generator, branding, and core install-fallback signals. -- (enhancement) UMI.CMS fingerprint detection (strong rules added). -- (enhancement) added conservative MogutaCMS fingerprint detection without active probes or generic portfolio-page matches. -- (enhancement) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt visible after in-flight worker output drains, while preserving Enter/C continue and E/Q abort semantics. +- (fix) `--fingerprint` now detects CMS.S3 / Megagroup from strong root-page builder/runtime markers without relying on generic WordPress endpoint probes. +- (enhancement) added Camaleon CMS without adding active probes. +- (enhancement) added Evolution CMS fingerprint detection. +- (enhancement) added strong UMI.CMS fingerprint detection rules. +- (enhancement) added conservative MogutaCMS fingerprint detection without active probes. +- (enhancement) added Ruby on Rails fingerprint detection with conservative passive CSRF, Rails UJS/Turbo, asset-pipeline and Rails error markers while avoiding standalone Rack. - (enhancement) reduced `--sniff malware` false positives for standard Bitrix admin login pages by allowlisting the built-in hidden `auth_frame` iframe only when strong Bitrix login markers are present. -- (enhancement) Ruby on Rails fingerprint detection with conservative passive CSRF, Rails UJS/Turbo, asset-pipeline and Rails error markers while avoiding standalone Rack. - (ui) clarified Runtime Diagnostics queue accounting by showing consumed items, submitted HTTP jobs, and pre-request skipped items separately. -- (ui) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt describe Enter/C continue, E/Q abort, and active-request drain semantics. +- (ui) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt visible after in-flight worker output drains and by documenting Enter/C continue and E/Q abort semantics. - (dictionary) cleaned and normalized the internal directories list (+1244 potential interesting paths). - (docs) added a `Mastering OpenDoor` companion documentation page for the upcoming article series. -- (deps)(deps-dev): [PR#115](https://github.com/stanislav-web/OpenDoor/pull/115) bump ruff from 0.15.13 to 0.15.14 in the python-runtime-dependencies group +- (deps-dev) [PR#115](https://github.com/stanislav-web/OpenDoor/pull/115) bump ruff from 0.15.13 to 0.15.14 in the python-runtime-dependencies group. v5.16.1 (24.05.2026) --------------------------- diff --git a/docs/detection/fingerprinting.md b/docs/detection/fingerprinting.md index f2b0ff4f..ef84c99b 100644 --- a/docs/detection/fingerprinting.md +++ b/docs/detection/fingerprinting.md @@ -103,6 +103,7 @@ The heuristic fingerprint engine currently recognizes the following platform fam - Bitrix - Bludit - Bolt CMS +- Camaleon CMS - Concrete CMS - Contao - Craft CMS diff --git a/src/lib/browser/fingerprint.py b/src/lib/browser/fingerprint.py index 0186c9bf..d88d60b5 100644 --- a/src/lib/browser/fingerprint.py +++ b/src/lib/browser/fingerprint.py @@ -138,7 +138,7 @@ def _default_result(cls): STATIC_CATEGORY = 'static' RUNTIME_CATEGORY = 'runtime' TECHNOLOGY_RUNTIME_MAP = { - 'WordPress': 'PHP', 'WooCommerce': 'PHP', 'Drupal': 'PHP', 'Joomla': 'PHP', 'Magento': 'PHP', 'Bitrix': 'PHP', 'OpenCart': 'PHP', 'PrestaShop': 'PHP', 'TYPO3': 'PHP', 'Nextcloud': 'PHP', 'ownCloud': 'PHP', 'Matomo': 'PHP', 'phpMyAdmin': 'PHP', 'phpBB': 'PHP', 'Moodle': 'PHP', 'Open Journal Systems': 'PHP', 'Evolution CMS': 'PHP', 'MogutaCMS': 'PHP', 'CMS.S3 / Megagroup': 'PHP', 'InstantCMS': 'PHP', 'DiafanCMS': 'PHP', 'Laravel': 'PHP', 'Symfony': 'PHP', 'Craft CMS': 'PHP', 'Bolt CMS': 'PHP', 'RoundCube Webmail': 'PHP', 'WHMCS': 'PHP', 'CS-Cart': 'PHP', 'CubeCart': 'PHP', 'DataLife Engine': 'PHP', 'Discuz!': 'PHP', 'SilverStripe': 'PHP', 'Webasyst / Shop-Script': 'PHP', 'XOOPS': 'PHP', 'Zen Cart CMS': 'PHP', 'e107': 'PHP', 'phpWind': 'PHP', 'phpCMS': 'PHP', + 'WordPress': 'PHP', 'WooCommerce': 'PHP', 'Drupal': 'PHP', 'Joomla': 'PHP', 'Magento': 'PHP', 'Bitrix': 'PHP', 'OpenCart': 'PHP', 'PrestaShop': 'PHP', 'TYPO3': 'PHP', 'Nextcloud': 'PHP', 'ownCloud': 'PHP', 'Matomo': 'PHP', 'phpMyAdmin': 'PHP', 'phpBB': 'PHP', 'Moodle': 'PHP', 'Open Journal Systems': 'PHP', 'Evolution CMS': 'PHP', 'MogutaCMS': 'PHP', 'CMS.S3 / Megagroup': 'PHP', 'Camaleon CMS': 'Ruby', 'InstantCMS': 'PHP', 'DiafanCMS': 'PHP', 'Laravel': 'PHP', 'Symfony': 'PHP', 'Craft CMS': 'PHP', 'Bolt CMS': 'PHP', 'RoundCube Webmail': 'PHP', 'WHMCS': 'PHP', 'CS-Cart': 'PHP', 'CubeCart': 'PHP', 'DataLife Engine': 'PHP', 'Discuz!': 'PHP', 'SilverStripe': 'PHP', 'Webasyst / Shop-Script': 'PHP', 'XOOPS': 'PHP', 'Zen Cart CMS': 'PHP', 'e107': 'PHP', 'phpWind': 'PHP', 'phpCMS': 'PHP', 'Express': 'Node.js', 'NestJS': 'Node.js', 'Fastify': 'Node.js', 'Koa': 'Node.js', 'Hapi': 'Node.js', 'Strapi': 'Node.js', 'Directus': 'Node.js', 'Ghost': 'Node.js', 'Next.js': 'Node.js', 'Nuxt': 'Node.js', 'Gatsby': 'Node.js', 'Astro': 'Node.js', 'Remix': 'Node.js', 'SvelteKit': 'Node.js', 'Docusaurus': 'Node.js', 'VitePress': 'Node.js', 'PencilBlue': 'Node.js', 'React': 'JavaScript', 'Vue': 'JavaScript', 'Angular': 'JavaScript', 'Django': 'Python', 'Flask': 'Python', 'FastAPI': 'Python', 'Ruby on Rails': 'Ruby', 'Spree': 'Ruby', 'Spring': 'Java/JVM', 'Liferay': 'Java/JVM', 'OpenCms': 'Java/JVM', 'Hippo CMS': 'Java/JVM', 'dotCMS': 'Java/JVM', 'ASP.NET': '.NET', 'Microsoft SharePoint': '.NET', 'DNN Platform': '.NET', 'Orchard CMS': '.NET', 'Sitecore': '.NET', 'Sitefinity': '.NET', 'Umbraco': '.NET', 'Phoenix': 'Elixir', 'MkDocs': 'Static site', 'Jekyll': 'Static site', 'Hugo': 'Static site', 'AsciiDoc': 'Static site', } @@ -158,6 +158,7 @@ def _default_result(cls): ('Bubble', SITE_BUILDER_CATEGORY, ('bubble', 'bubble.io')), ('CKAN', CMS_CATEGORY, ('ckan',)), ('CMS.S3 / Megagroup', CMS_CATEGORY, ('cms.s3', 'cms s3', 'megagroup cms')), + ('Camaleon CMS', CMS_CATEGORY, ('camaleon cms', 'camaleoncms')), ('CMS Made Simple', CMS_CATEGORY, ('cms made simple', 'cmsms')), ('CMS CONTENIDO', CMS_CATEGORY, ('contenido', 'cms contenido')), ('CMSimple', CMS_CATEGORY, ('cmsimple',)), @@ -1527,6 +1528,110 @@ def _apply_evolution_cms_rules(self, body_lower, generator, probe_statuses, not_ self._add_signal('Evolution CMS', self.CMS_CATEGORY, 'endpoint', '/manager/', 3) + @classmethod + def _collect_camaleon_cms_signals(cls, body_lower, cookies, generator): + """ + Return conservative Camaleon CMS passive signals. + + Camaleon CMS is a Ruby on Rails CMS. Strong public markers include + Camaleon asset names used by the admin layout, generated Camaleon + image paths, Camaleon cookies observed by authenticated flows, and + explicit Camaleon branding paired with Rails CSRF metadata. Plain + marketing text alone is intentionally weak to avoid classifying blog + posts or documentation pages as Camaleon installations. + + :param str body_lower: normalized response body + :param list cookies: normalized response cookie names + :param str generator: raw generator meta value + :return: detected signal tuples + :rtype: list[tuple[str, str]] + """ + + body_text = str(body_lower or '').lower() + generator_lower = str(generator or '').lower() + cookie_names = [str(cookie or '').lower() for cookie in cookies] + signals = [] + seen_values = set() + + def add_signal(signal_type, value): + if value in seen_values: + return + signals.append((signal_type, value)) + seen_values.add(value) + + if 'camaleon cms' in generator_lower or 'camaleoncms' in generator_lower: + add_signal('meta', 'generator=Camaleon CMS') + + asset_markers = ( + ('camaleon_cms/admin/admin-basic-manifest', 'camaleon_cms/admin/admin-basic-manifest'), + ('/assets/camaleon_cms/', '/assets/camaleon_cms/'), + ('camaleon_cms/camaleon.png', 'camaleon_cms/camaleon.png'), + ('/camaleon_cms/', '/camaleon_cms/'), + ) + for marker, value in asset_markers: + if marker in body_text: + add_signal('asset', value) + + if 'auth_token' in cookie_names: + add_signal('cookie', 'auth_token') + if '_cms_session' in cookie_names: + add_signal('cookie', '_cms_session') + + brand_count = body_text.count('camaleon cms') + body_text.count('camaleoncms') + has_rails_csrf = cls._has_rails_authenticity_token_meta(body_text) + has_camaleon_public_context = bool( + 'camaleon.website/store/' in body_text + or 'camaleon.website/documentation/' in body_text + or 'camaleon cms, rails cms' in body_text + or 'camaleoncms. all rights reserved' in body_text + or 'built with ruby-on-rails' in body_text + ) + if brand_count >= 1 and has_rails_csrf and has_camaleon_public_context: + add_signal('markup', 'Camaleon CMS+Rails CSRF') + elif brand_count >= 2 and has_rails_csrf: + add_signal('markup', 'Camaleon CMS repeated+Rails CSRF') + + return signals + + def _apply_camaleon_cms_rules(self, body_lower, cookies, generator): + """ + Apply conservative passive Camaleon CMS fingerprint signals. + + This rule consumes only already fetched root response metadata. It does + not probe /admin or any Camaleon-specific endpoint. Strong asset/meta + signals are accepted directly; public brand text requires Rails CSRF + corroboration to avoid false positives on unrelated documentation. + + :param str body_lower: normalized response body + :param list cookies: normalized response cookie names + :param str generator: raw generator meta value + :return: None + """ + + signals = self._collect_camaleon_cms_signals(body_lower, cookies, generator) + if len(signals) <= 0: + return + + strong_values = [ + value for signal_type, value in signals + if signal_type in ('meta', 'asset', 'markup') + ] + cookie_values = [value for signal_type, value in signals if signal_type == 'cookie'] + + if len(strong_values) > 0: + self._add_signal( + 'Camaleon CMS', + self.CMS_CATEGORY, + 'markup', + '+'.join(strong_values[:4]), + 9, + ) + if len(cookie_values) > 0: + self._add_signal('Camaleon CMS', self.CMS_CATEGORY, 'cookie', '+'.join(cookie_values[:2]), 3) + elif len(cookie_values) >= 2: + self._add_signal('Camaleon CMS', self.CMS_CATEGORY, 'cookie', '+'.join(cookie_values[:2]), 7) + + @classmethod def _collect_cms_s3_root_signals(cls, body_lower): """ @@ -2576,6 +2681,13 @@ def _apply_detection_rules( generator=generator, ) + # Camaleon CMS + self._apply_camaleon_cms_rules( + body_lower=body_lower, + cookies=cookies, + generator=generator, + ) + # CMS.S3 / Megagroup self._apply_cms_s3_rules( body_lower=body_lower, diff --git a/tests/test_lib_browser_fingerprint.py b/tests/test_lib_browser_fingerprint.py index c4d213e5..e31cacf5 100644 --- a/tests/test_lib_browser_fingerprint.py +++ b/tests/test_lib_browser_fingerprint.py @@ -485,6 +485,99 @@ def test_weak_cms_s3_vendor_text_stays_below_detection_threshold(self): self.assertLess(result['candidates'][0]['score'], 7) + def test_detects_camaleon_cms_from_official_site_runtime_markers(self): + """Fingerprint should detect Camaleon CMS from brand context plus Rails CSRF.""" + + config = FakeConfig(host='camaleon.website', scheme='https://', port=443) + base = 'https://camaleon.website/' + responses = { + ('GET', base): FakeResponse( + 200, + '' + '' + '' + '' + '

CAMALEON CMS

' + '

Camaleon CMS is an advanced Content Management System.

' + '

Wordpress Alternative. Built with Ruby-on-Rails.

' + 'Plugins Store' + '
Copyright © 2015 - 2018 CamaleonCMS. All rights reserved.
' + '', + {}, + ), + ('GET', 'https://camaleon.website{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse( + 404, + 'Not Found', + {}, + ), + } + + detector = Fingerprint(config=config, client=self._make_client(config, responses)) + result = detector.detect() + + self.assertEqual(result['category'], 'cms') + self.assertEqual(result['name'], 'Camaleon CMS') + self.assertEqual(result['runtime']['name'], 'Ruby') + self.assertIn('Camaleon CMS+Rails CSRF', [signal['value'] for signal in result['signals']]) + + def test_detects_camaleon_cms_from_admin_assets_and_cookies(self): + """Fingerprint should detect Camaleon CMS from strong admin asset markers.""" + + config = FakeConfig() + base = 'http://example.com/' + responses = { + ('GET', base): FakeResponse( + 200, + '' + '' + '' + '', + MultiHeaders([ + ('Set-Cookie', 'auth_token=abc; Path=/'), + ('Set-Cookie', '_cms_session=xyz; Path=/; HttpOnly'), + ]), + ), + ('GET', 'http://example.com{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse( + 404, + 'Not Found', + {}, + ), + } + + detector = Fingerprint(config=config, client=self._make_client(config, responses)) + result = detector.detect() + + self.assertEqual(result['category'], 'cms') + self.assertEqual(result['name'], 'Camaleon CMS') + self.assertEqual(result['runtime']['name'], 'Ruby') + self.assertIn('auth_token+_cms_session', [signal['value'] for signal in result['signals']]) + + def test_does_not_detect_camaleon_cms_from_brand_text_without_rails_context(self): + """Generic Camaleon CMS text should not become a fingerprint by itself.""" + + config = FakeConfig() + base = 'http://example.com/' + responses = { + ('GET', base): FakeResponse( + 200, + '
Review of Camaleon CMS for Rails developers.
', + {}, + ), + ('GET', 'http://example.com{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse( + 404, + 'Not Found', + {}, + ), + } + + detector = Fingerprint(config=config, client=self._make_client(config, responses)) + result = detector.detect() + + self.assertEqual(result['category'], 'custom') + self.assertEqual(result['name'], 'Unknown custom stack') + self.assertFalse(any(candidate['name'] == 'Camaleon CMS' for candidate in result['candidates'])) + + def test_does_not_detect_wordpress_from_generic_restricted_static_probes(self): """Fingerprint should not treat generic 403/405 WordPress path denies as WordPress.""" From 16ed25aa4c6f0d12923386ebfd748674b536a5f4 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Sat, 30 May 2026 19:15:05 +0300 Subject: [PATCH 33/42] Fix JS cookie reload challenge false OK findings --- CHANGELOG.md | 13 +-- data/directories.dat | 1 + docs/detection/fingerprinting.md | 1 + src/lib/browser/browser.py | 123 +++++++++++++++++++++++ src/lib/browser/fingerprint.py | 127 +++++++++++++++++++++++- tests/test_lib_browser.py | 67 +++++++++++++ tests/test_lib_browser_fingerprint.py | 136 ++++++++++++++++++++++++++ 7 files changed, 461 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 19b09a42..56362617 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,16 +1,16 @@ CHANGELOG ======= -v5.16.2 (30.06.2026) +v5.16.2 (31.06.2026) --------------------------- - (critical) fixed scan crashes caused by corrupted gzip/encoded HTTP responses by handling `DecodeError` as a recoverable transport failure instead of aborting worker threads. -- (fix) `--fingerprint` no longer treats generic WordPress static-path probes as strong WordPress evidence unless corroborated by root-page WordPress signals. -- (fix) false-positive OK findings when a target returns a canonical 404/410 error body with a transient 2xx status by adding strict cross-status soft-error calibration, including compact nginx-style 404 bodies. -- (fix) `--sniff malware` false positives when fallback pages repeatedly echo webshell-like names inside URL/query attributes, while preserving real webshell UI and executable payload detections. -- (fix) `--sniff shadow` false positives on soft-200/fallback routes by adding a negative-control probe before reporting backup-file variants. +- (fix) JavaScript cookie-gate bypass pages such as `document.cookie` + `location.reload()` responses are no longer reported as `OK` findings. - (fix) subdomain scans so missing/no-response candidates are skipped without triggering the directory retry fail-streak abort guard. - (fix) directory scan prefix normalization so `--prefix ex` and `--prefix ex/` both scan under `/ex/` instead of concatenating paths as `/ex`. -- (fix) `--auto-calibrate` now disables weak HTTP baselines when too many probes are blocked, ignored, or failed, preventing sparse signatures from over-filtering scan results. - (fix) reduced WAF-safe auto-calibration noise by using neutral calibration probe paths when `--waf-safe-mode` is enabled, avoiding high-risk `.php`, `.map`, `admin`, and `wp-*` probe shapes. +- (fix) `--fingerprint` no longer treats generic WordPress static-path probes as strong WordPress evidence unless corroborated by root-page WordPress signals. +- (fix) `--auto-calibrate` now disables weak HTTP baselines when too many probes are blocked, ignored, or failed, preventing sparse signatures from over-filtering scan results. +- (fix) `--sniff shadow` false positives on soft-200/fallback routes by adding a negative-control probe before reporting backup-file variants. +- (fix) `--sniff malware` false positives when fallback pages repeatedly echo webshell-like names inside URL/query attributes, while preserving real webshell UI and executable payload detections. - (fix) `--sniff malware` false positives on security-plugin documentation by suppressing name-only webshell vocabulary in documentation context while preserving executable payload and shell UI detections. - (fix) `--sniff malware` false positives on legacy Google Analytics loaders while preserving suspicious document.write, atob, String.fromCharCode and PHP payload detections. - (fix) `--sniff secret` scan output so secret sniffer hits are labeled as `OK (Secret)` like other sniffer findings. @@ -20,6 +20,7 @@ v5.16.2 (30.06.2026) - (enhancement) added Camaleon CMS without adding active probes. - (enhancement) added Evolution CMS fingerprint detection. - (enhancement) added strong UMI.CMS fingerprint detection rules. +- (enhancement) added Melbis Shop Platform fingerprint detection rules. - (enhancement) added conservative MogutaCMS fingerprint detection without active probes. - (enhancement) added Ruby on Rails fingerprint detection with conservative passive CSRF, Rails UJS/Turbo, asset-pipeline and Rails error markers while avoiding standalone Rack. - (enhancement) reduced `--sniff malware` false positives for standard Bitrix admin login pages by allowlisting the built-in hidden `auth_frame` iframe only when strong Bitrix login markers are present. diff --git a/data/directories.dat b/data/directories.dat index 770b7821..c9007738 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -106290,6 +106290,7 @@ templates/defaultinfo.txt templates/index.html templates/ja-helio-farsi/index.php templates/ja-helio-farsiindex.php +templates/javascripts.js templates/protostar templates/rhuk_milkyway templates/rhuk_milkyway/0day.php diff --git a/docs/detection/fingerprinting.md b/docs/detection/fingerprinting.md index ef84c99b..e47c0875 100644 --- a/docs/detection/fingerprinting.md +++ b/docs/detection/fingerprinting.md @@ -190,6 +190,7 @@ The heuristic fingerprint engine currently recognizes the following platform fam ### E-commerce - Magento +- Melbis Shop Platform - Moguta CMS - nopCommerce - OpenCart diff --git a/src/lib/browser/browser.py b/src/lib/browser/browser.py index ab70a3b9..f054002a 100644 --- a/src/lib/browser/browser.py +++ b/src/lib/browser/browser.py @@ -17,6 +17,7 @@ """ import copy +import re import socket as net_socket import threading import time @@ -2639,6 +2640,20 @@ def __http_request(self, url, depth=0): metadata=calibration_match ) return + + js_cookie_challenge = self.__match_js_cookie_reload_challenge(resp, response_data) + if js_cookie_challenge is not None: + self.__emit_passive_sniffer_findings(passive_sniffer_findings, resp) + self.__emit_filtered_progress('calibrated', response_data, js_cookie_challenge, request_url=url) + self.__catch_report_data( + 'calibrated', + response_data[1], + response_data[2], + response_data[3], + metadata=js_cookie_challenge + ) + return + debug_response_data = getattr(self.__response, 'debug_response_data', None) if callable(debug_response_data) and primary_suppressed is not True: self.__clear_filtered_progress() @@ -2725,6 +2740,114 @@ def __should_suppress_primary_response(self, response_object, response_data, pas return False + @classmethod + def __match_js_cookie_reload_challenge(cls, response_object, response_data): + """ + Match JavaScript cookie bootstrap pages emitted as 2xx responses. + + Some hosting frontends return a small 200 HTML page that only sets a + browser cookie and reloads the current URL. Browsers execute the script + and then receive the real origin response, but raw scanners see the + bootstrap page as a false positive success. Treat only script-only + cookie+reload gates as filtered scan noise. + + :param object response_object: raw response object + :param tuple response_data: legacy classified response tuple + :return: calibration-like metadata when the response should be filtered + :rtype: dict|None + """ + + code = cls.__extract_response_code(response_object, response_data) + if code is None or code < 200 or code >= 300: + return None + + body = cls.__response_body_text(response_object) + if not body: + return None + + if len(body) > 2048: + return None + + content_type = str(cls.__get_header_value(response_object, 'content-type') or '').lower() + if content_type and 'html' not in content_type: + return None + + lowered = body.lower() + compact = re.sub(r'\s+', '', lowered) + + if 'document.cookie' not in compact: + return None + + if 'location.reload(' not in compact and 'window.location.reload(' not in compact: + return None + + if cls.__has_useful_html_controls(lowered) is True: + return None + + if cls.__visible_text_without_scripts(body): + return None + + known_cookie_gate = any(marker in compact for marker in ( + 'beget=begetok', + '__js_p_=', + )) + if known_cookie_gate is not True: + script_only = compact.startswith(']*>.*?', ' ', str(body or ''), flags=re.DOTALL | re.IGNORECASE) + value = re.sub(r']*>.*?', ' ', value, flags=re.DOTALL | re.IGNORECASE) + value = re.sub(r'<[^>]+>', ' ', value) + value = re.sub(r'\s+', ' ', value) + return value.strip() + @staticmethod def __is_soft404_suppressor_response(response_object, primary_bucket, response_code): """ diff --git a/src/lib/browser/fingerprint.py b/src/lib/browser/fingerprint.py index d88d60b5..a2cfd104 100644 --- a/src/lib/browser/fingerprint.py +++ b/src/lib/browser/fingerprint.py @@ -138,7 +138,7 @@ def _default_result(cls): STATIC_CATEGORY = 'static' RUNTIME_CATEGORY = 'runtime' TECHNOLOGY_RUNTIME_MAP = { - 'WordPress': 'PHP', 'WooCommerce': 'PHP', 'Drupal': 'PHP', 'Joomla': 'PHP', 'Magento': 'PHP', 'Bitrix': 'PHP', 'OpenCart': 'PHP', 'PrestaShop': 'PHP', 'TYPO3': 'PHP', 'Nextcloud': 'PHP', 'ownCloud': 'PHP', 'Matomo': 'PHP', 'phpMyAdmin': 'PHP', 'phpBB': 'PHP', 'Moodle': 'PHP', 'Open Journal Systems': 'PHP', 'Evolution CMS': 'PHP', 'MogutaCMS': 'PHP', 'CMS.S3 / Megagroup': 'PHP', 'Camaleon CMS': 'Ruby', 'InstantCMS': 'PHP', 'DiafanCMS': 'PHP', 'Laravel': 'PHP', 'Symfony': 'PHP', 'Craft CMS': 'PHP', 'Bolt CMS': 'PHP', 'RoundCube Webmail': 'PHP', 'WHMCS': 'PHP', 'CS-Cart': 'PHP', 'CubeCart': 'PHP', 'DataLife Engine': 'PHP', 'Discuz!': 'PHP', 'SilverStripe': 'PHP', 'Webasyst / Shop-Script': 'PHP', 'XOOPS': 'PHP', 'Zen Cart CMS': 'PHP', 'e107': 'PHP', 'phpWind': 'PHP', 'phpCMS': 'PHP', + 'WordPress': 'PHP', 'WooCommerce': 'PHP', 'Drupal': 'PHP', 'Joomla': 'PHP', 'Magento': 'PHP', 'Bitrix': 'PHP', 'OpenCart': 'PHP', 'PrestaShop': 'PHP', 'TYPO3': 'PHP', 'Nextcloud': 'PHP', 'ownCloud': 'PHP', 'Matomo': 'PHP', 'phpMyAdmin': 'PHP', 'phpBB': 'PHP', 'Moodle': 'PHP', 'Open Journal Systems': 'PHP', 'Evolution CMS': 'PHP', 'MogutaCMS': 'PHP', 'CMS.S3 / Megagroup': 'PHP', 'Camaleon CMS': 'Ruby', 'Melbis Shop Platform': 'PHP', 'InstantCMS': 'PHP', 'DiafanCMS': 'PHP', 'Laravel': 'PHP', 'Symfony': 'PHP', 'Craft CMS': 'PHP', 'Bolt CMS': 'PHP', 'RoundCube Webmail': 'PHP', 'WHMCS': 'PHP', 'CS-Cart': 'PHP', 'CubeCart': 'PHP', 'DataLife Engine': 'PHP', 'Discuz!': 'PHP', 'SilverStripe': 'PHP', 'Webasyst / Shop-Script': 'PHP', 'XOOPS': 'PHP', 'Zen Cart CMS': 'PHP', 'e107': 'PHP', 'phpWind': 'PHP', 'phpCMS': 'PHP', 'Express': 'Node.js', 'NestJS': 'Node.js', 'Fastify': 'Node.js', 'Koa': 'Node.js', 'Hapi': 'Node.js', 'Strapi': 'Node.js', 'Directus': 'Node.js', 'Ghost': 'Node.js', 'Next.js': 'Node.js', 'Nuxt': 'Node.js', 'Gatsby': 'Node.js', 'Astro': 'Node.js', 'Remix': 'Node.js', 'SvelteKit': 'Node.js', 'Docusaurus': 'Node.js', 'VitePress': 'Node.js', 'PencilBlue': 'Node.js', 'React': 'JavaScript', 'Vue': 'JavaScript', 'Angular': 'JavaScript', 'Django': 'Python', 'Flask': 'Python', 'FastAPI': 'Python', 'Ruby on Rails': 'Ruby', 'Spree': 'Ruby', 'Spring': 'Java/JVM', 'Liferay': 'Java/JVM', 'OpenCms': 'Java/JVM', 'Hippo CMS': 'Java/JVM', 'dotCMS': 'Java/JVM', 'ASP.NET': '.NET', 'Microsoft SharePoint': '.NET', 'DNN Platform': '.NET', 'Orchard CMS': '.NET', 'Sitecore': '.NET', 'Sitefinity': '.NET', 'Umbraco': '.NET', 'Phoenix': 'Elixir', 'MkDocs': 'Static site', 'Jekyll': 'Static site', 'Hugo': 'Static site', 'AsciiDoc': 'Static site', } @@ -159,6 +159,7 @@ def _default_result(cls): ('CKAN', CMS_CATEGORY, ('ckan',)), ('CMS.S3 / Megagroup', CMS_CATEGORY, ('cms.s3', 'cms s3', 'megagroup cms')), ('Camaleon CMS', CMS_CATEGORY, ('camaleon cms', 'camaleoncms')), + ('Melbis Shop Platform', ECOMMERCE_CATEGORY, ('melbis shop platform', 'melbis shop')), ('CMS Made Simple', CMS_CATEGORY, ('cms made simple', 'cmsms')), ('CMS CONTENIDO', CMS_CATEGORY, ('contenido', 'cms contenido')), ('CMSimple', CMS_CATEGORY, ('cmsimple',)), @@ -1528,6 +1529,123 @@ def _apply_evolution_cms_rules(self, body_lower, generator, probe_statuses, not_ self._add_signal('Evolution CMS', self.CMS_CATEGORY, 'endpoint', '/manager/', 3) + @classmethod + def _collect_melbis_shop_signals(cls, body_lower, cookies, generator): + """ + Return conservative Melbis Shop Platform passive signals. + + Melbis Shop pages often expose a product footer such as + ``Powered by Melbis Shop v6.x`` or the older Russian + ``Магазин создан на базе Melbis Shop v5.x`` text. The ``MS_MSS`` + session cookie is useful corroboration, but it is intentionally not + accepted as standalone evidence. + + :param str body_lower: normalized response body + :param list cookies: normalized response cookie names + :param str generator: raw generator meta value + :return: detected signal tuples + :rtype: list[tuple[str, str]] + """ + + body_text = str(body_lower or '').lower() + generator_lower = str(generator or '').lower() + cookie_names = [str(cookie or '').lower() for cookie in cookies] + signals = [] + seen_values = set() + + def add_signal(signal_type, value): + if value in seen_values: + return + signals.append((signal_type, value)) + seen_values.add(value) + + if 'melbis shop' in generator_lower: + add_signal('meta', 'generator=Melbis Shop') + + if re.search(r'powered\s+by(?:\s|<[^>]+>)*melbis\s+shop(?:\s*v?[0-9][0-9a-z.\-]*)?', body_text): + add_signal('powered', 'Powered by Melbis Shop') + + if re.search(r'магазин\s+создан\s+на\s+базе\s+melbis\s+shop(?:\s*v?[0-9][0-9a-z.\-]*)?', body_text): + add_signal('powered', 'Магазин создан на базе Melbis Shop') + + asset_markers = ( + ('/templates/default/melbis.css', 'templates/default/melbis.css'), + ('/templates/default/melbis.js', 'templates/default/melbis.js'), + ('templates/default/melbis.css', 'templates/default/melbis.css'), + ('templates/default/melbis.js', 'templates/default/melbis.js'), + ) + for marker, value in asset_markers: + if marker in body_text: + add_signal('asset', value) + + source_markers = ( + ("definesession('melbis_shop')", "DefineSession('MELBIS_SHOP')"), + ('definesession("melbis_shop")', 'DefineSession("MELBIS_SHOP")'), + ('melbis()->defineselfconst', 'MELBIS()->DefineSelfConst'), + ('melbis_base_page', 'melbis_base_page'), + ) + for marker, value in source_markers: + if marker in body_text: + add_signal('source', value) + + if re.search(r'(?:href|src|action)=["\'][^"\']*(?:dir|goods|news)\.php\?id=', body_text): + add_signal('route', 'dir/goods/news.php?id') + elif re.search(r'\b(?:dir|goods|news)\.php\?id=', body_text): + add_signal('route', 'dir/goods/news.php?id') + + if 'ms_mss' in cookie_names: + add_signal('cookie', 'MS_MSS') + + return signals + + def _apply_melbis_shop_rules(self, body_lower, cookies, generator): + """ + Apply conservative passive Melbis Shop Platform fingerprint signals. + + Product footer, generator/source, and default template assets are strong + enough to classify Melbis Shop directly. The ``MS_MSS`` cookie is only + used with route/template corroboration to avoid cookie-name false + positives on unrelated PHP applications. + + :param str body_lower: normalized response body + :param list cookies: normalized response cookie names + :param str generator: raw generator meta value + :return: None + """ + + signals = self._collect_melbis_shop_signals(body_lower, cookies, generator) + if len(signals) <= 0: + return + + strong_values = [ + value for signal_type, value in signals + if signal_type in ('meta', 'powered', 'asset', 'source') + ] + route_values = [value for signal_type, value in signals if signal_type == 'route'] + cookie_values = [value for signal_type, value in signals if signal_type == 'cookie'] + + if len(strong_values) > 0: + self._add_signal( + 'Melbis Shop Platform', + self.ECOMMERCE_CATEGORY, + 'markup', + '+'.join(strong_values[:4]), + 9, + ) + if len(cookie_values) > 0: + self._add_signal('Melbis Shop Platform', self.ECOMMERCE_CATEGORY, 'cookie', cookie_values[0], 3) + if len(route_values) > 0: + self._add_signal('Melbis Shop Platform', self.ECOMMERCE_CATEGORY, 'route', route_values[0], 3) + elif len(cookie_values) > 0 and len(route_values) > 0: + self._add_signal( + 'Melbis Shop Platform', + self.ECOMMERCE_CATEGORY, + 'cookie+route', + '{0}+{1}'.format(cookie_values[0], route_values[0]), + 8, + ) + + @classmethod def _collect_camaleon_cms_signals(cls, body_lower, cookies, generator): """ @@ -2681,6 +2799,13 @@ def _apply_detection_rules( generator=generator, ) + # Melbis Shop Platform + self._apply_melbis_shop_rules( + body_lower=body_lower, + cookies=cookies, + generator=generator, + ) + # Camaleon CMS self._apply_camaleon_cms_rules( body_lower=body_lower, diff --git a/tests/test_lib_browser.py b/tests/test_lib_browser.py index 8f66f756..f2cf1584 100644 --- a/tests/test_lib_browser.py +++ b/tests/test_lib_browser.py @@ -2680,6 +2680,73 @@ def test_browser_result_should_return_defensive_copy(self): self.assertEqual(instance._Browser__result['total']['success'], 1) + def test_http_request_should_filter_js_cookie_reload_challenge(self): + """Browser.__http_request() should not report JS cookie bootstrap pages as success.""" + + br = self.make_browser() + body = ( + "" + ) + response_object = SimpleNamespace( + status=200, + headers={'Content-Type': 'text/html'}, + data=body.encode('utf-8'), + ) + + client = MagicMock() + client.request.return_value = response_object + pool = SimpleNamespace(items_size=1, total_items_size=3) + reader = MagicMock() + reader.get_ignored_list.return_value = [] + response_handler = MagicMock() + response_handler.handle.return_value = ( + 'success', + 'http://www.madburg.ru/adminer-4.2.3-sk.php', + '273B', + '200', + ) + + setattr(br, '_Browser__client', client) + setattr(br, '_Browser__pool', pool) + setattr(br, '_Browser__reader', reader) + setattr(br, '_Browser__response', response_handler) + + br._Browser__http_request('http://www.madburg.ru/adminer-4.2.3-sk.php') + + result = getattr(br, '_Browser__result') + self.assertEqual(result['total']['success'], 0) + self.assertEqual(result['total']['calibrated'], 1) + self.assertEqual( + result['items']['calibrated'], + ['http://www.madburg.ru/adminer-4.2.3-sk.php'], + ) + self.assertEqual( + result['report_items']['calibrated'][0]['calibration_reason'], + 'js-cookie-reload-challenge', + ) + response_handler.debug_response_data.assert_not_called() + + def test_js_cookie_reload_challenge_helper_rejects_useful_pages(self): + """JS cookie challenge guard should not hide useful HTML pages.""" + + useful_response = SimpleNamespace( + status=200, + headers={'Content-Type': 'text/html'}, + data=( + "" + "
" + ).encode('utf-8'), + ) + + actual = Browser._Browser__match_js_cookie_reload_challenge( + useful_response, + ('success', 'http://example.com/login', '130B', '200'), + ) + + self.assertIsNone(actual) + def test_http_request_should_put_calibration_matches_into_calibrated_bucket(self): """Browser.__http_request() should classify calibration matches as calibrated.""" diff --git a/tests/test_lib_browser_fingerprint.py b/tests/test_lib_browser_fingerprint.py index e31cacf5..2c1d4590 100644 --- a/tests/test_lib_browser_fingerprint.py +++ b/tests/test_lib_browser_fingerprint.py @@ -485,6 +485,142 @@ def test_weak_cms_s3_vendor_text_stays_below_detection_threshold(self): self.assertLess(result['candidates'][0]['score'], 7) + def test_detects_melbis_shop_from_powered_footer(self): + """Fingerprint should detect Melbis Shop from an explicit product footer.""" + + config = FakeConfig() + base = 'http://example.com/' + responses = { + ('GET', base): FakeResponse( + 200, + '' + '
© 2026 Melbis. Powered by Melbis Shop v6.5.0.279
' + 'Product' + '', + {}, + ), + ('GET', 'http://example.com{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse( + 404, + 'Not Found', + {}, + ), + } + + detector = Fingerprint(config=config, client=self._make_client(config, responses)) + result = detector.detect() + + self.assertEqual(result['category'], 'ecommerce') + self.assertEqual(result['name'], 'Melbis Shop Platform') + self.assertEqual(result['runtime']['name'], 'PHP') + self.assertIn('Powered by Melbis Shop', [signal['value'] for signal in result['signals']]) + + def test_detects_melbis_shop_from_legacy_russian_footer_and_cookie(self): + """Fingerprint should detect legacy Melbis Shop storefront markers.""" + + config = FakeConfig() + base = 'http://example.com/' + responses = { + ('GET', base): FakeResponse( + 200, + '' + 'Каталог' + 'Товар' + '
Магазин создан на базе Melbis Shop v5.4.0. ' + 'Последнее обновление магазина: 25-06-2025 11:00
' + '', + MultiHeaders([('Set-Cookie', 'MS_MSS=abc123; path=/')]), + ), + ('GET', 'http://example.com{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse( + 404, + 'Not Found', + {}, + ), + } + + detector = Fingerprint(config=config, client=self._make_client(config, responses)) + result = detector.detect() + + self.assertEqual(result['category'], 'ecommerce') + self.assertEqual(result['name'], 'Melbis Shop Platform') + self.assertIn('MS_MSS', [signal['value'] for signal in result['signals']]) + + def test_detects_melbis_shop_from_default_template_assets(self): + """Fingerprint should detect Melbis Shop from default template assets.""" + + config = FakeConfig() + base = 'http://example.com/' + responses = { + ('GET', base): FakeResponse( + 200, + '' + '' + '' + 'Catalog', + {}, + ), + ('GET', 'http://example.com{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse( + 404, + 'Not Found', + {}, + ), + } + + detector = Fingerprint(config=config, client=self._make_client(config, responses)) + result = detector.detect() + + self.assertEqual(result['category'], 'ecommerce') + self.assertEqual(result['name'], 'Melbis Shop Platform') + + def test_does_not_detect_melbis_shop_from_ms_mss_cookie_alone(self): + """MS_MSS is a weak corroborating cookie and should not classify alone.""" + + config = FakeConfig() + base = 'http://example.com/' + responses = { + ('GET', base): FakeResponse( + 200, + '

Generic PHP storefront

', + MultiHeaders([('Set-Cookie', 'MS_MSS=abc123; path=/')]), + ), + ('GET', 'http://example.com{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse( + 404, + 'Not Found', + {}, + ), + } + + detector = Fingerprint(config=config, client=self._make_client(config, responses)) + result = detector.detect() + + self.assertNotEqual(result['name'], 'Melbis Shop Platform') + self.assertFalse(any(candidate['name'] == 'Melbis Shop Platform' for candidate in result['candidates'])) + + def test_does_not_detect_melbis_shop_from_generic_article_text(self): + """Generic Melbis Shop mentions should not become a storefront fingerprint.""" + + config = FakeConfig() + base = 'http://example.com/' + responses = { + ('GET', base): FakeResponse( + 200, + '
Review of Melbis Shop and other e-commerce platforms.
', + {}, + ), + ('GET', 'http://example.com{0}'.format(Fingerprint.NOT_FOUND_PROBE_PATH)): FakeResponse( + 404, + 'Not Found', + {}, + ), + } + + detector = Fingerprint(config=config, client=self._make_client(config, responses)) + result = detector.detect() + + self.assertEqual(result['category'], 'custom') + self.assertEqual(result['name'], 'Unknown custom stack') + self.assertFalse(any(candidate['name'] == 'Melbis Shop Platform' for candidate in result['candidates'])) + + def test_detects_camaleon_cms_from_official_site_runtime_markers(self): """Fingerprint should detect Camaleon CMS from brand context plus Rails CSRF.""" From 989f3ce2c4b8e6788348d9ed0c568a33c2f71b59 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Sat, 30 May 2026 21:24:56 +0300 Subject: [PATCH 34/42] Track transport-failed directory entries in reports --- CHANGELOG.md | 1 + data/directories.dat | 1 + docs/concepts/reports.md | 4 ++++ src/lib/browser/browser.py | 22 +++++++++++++++++-- src/lib/reporter/plugins/txt.py | 24 ++++++++++++++++++++ tests/test_lib_browser.py | 27 +++++++++++++++++++++++ tests/test_lib_reporter_txt_coverage.py | 29 +++++++++++++++++++++++++ tests/test_report_sizes.py | 24 ++++++++++++++++++++ 8 files changed, 130 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 56362617..649f298b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ v5.16.2 (31.06.2026) --------------------------- - (critical) fixed scan crashes caused by corrupted gzip/encoded HTTP responses by handling `DecodeError` as a recoverable transport failure instead of aborting worker threads. - (fix) JavaScript cookie-gate bypass pages such as `document.cookie` + `location.reload()` responses are no longer reported as `OK` findings. +- (fix) transport-exhausted directory entries are now saved to `transport_failed.txt` and JSON diagnostics, making temporary network-related wordlist coverage loss visible without changing scan scheduling. - (fix) subdomain scans so missing/no-response candidates are skipped without triggering the directory retry fail-streak abort guard. - (fix) directory scan prefix normalization so `--prefix ex` and `--prefix ex/` both scan under `/ex/` instead of concatenating paths as `/ex`. - (fix) reduced WAF-safe auto-calibration noise by using neutral calibration probe paths when `--waf-safe-mode` is enabled, avoiding high-risk `.php`, `.map`, `admin`, and `wp-*` probe shapes. diff --git a/data/directories.dat b/data/directories.dat index c9007738..bcfb1bba 100644 --- a/data/directories.dat +++ b/data/directories.dat @@ -12596,6 +12596,7 @@ admin/oauth.php admin/old admin/Oledit admin/operator.php +admin/order_tracking.php admin/orders admin/organizations admin/outgoing diff --git a/docs/concepts/reports.md b/docs/concepts/reports.md index f9005682..031eb7c5 100644 --- a/docs/concepts/reports.md +++ b/docs/concepts/reports.md @@ -57,6 +57,8 @@ opendoor --host https://example.com --reports txt Use `txt` when you want one plain text file per result bucket. +When directory requests exhaust the configured timeout and retry budget without any HTTP response, OpenDoor writes those consumed-but-unverified paths to `transport_failed.txt`. These lines are not findings; they show wordlist entries that may need a later rescan after a temporary network outage or route failure. Subdomain no-response candidates are not written to this file because they are normal enumeration misses. + Header-bypass candidates include evidence in the bypass report lines, for example: ```text @@ -75,6 +77,8 @@ Use JSON for automation, pipelines, post-processing, and CI/CD artifact uploads. JSON preserves detailed `report_items` metadata, including WAF, fingerprint, calibration, header-bypass, secret, stacktrace, shadow and openredirect fields. +When transport-exhausted directory entries exist, JSON also preserves them in the top-level `transport_failed` list. + --- ## CSV diff --git a/src/lib/browser/browser.py b/src/lib/browser/browser.py index f054002a..8bf75848 100644 --- a/src/lib/browser/browser.py +++ b/src/lib/browser/browser.py @@ -154,7 +154,13 @@ def __init__(self, params): key='method_override', sniffers=', '.join(method_override_items) ) - self.__result = {'total': {}, 'items': {}, 'report_items': {}, 'filtered_items': []} + self.__result = { + 'total': {}, + 'items': {}, + 'report_items': {}, + 'filtered_items': [], + 'transport_failed': [], + } self.__visited_recursive = set() self.__queued_recursive = set() runtime_paths = self.__prepare_runtime_paths() @@ -2503,6 +2509,8 @@ def __record_transport_failure(self, url): is_subdomains_scan = self.__is_subdomains_scan() is True + self.__ensure_session_runtime_state() + with self.__transport_failure_lock: self.__transport_failures_skipped += 1 @@ -2512,6 +2520,12 @@ def __record_transport_failure(self, url): else: self.__transport_failure_streak += 1 streak = self.__transport_failure_streak + self.__result['transport_failed'].append({ + 'url': url, + 'size': '0B', + 'code': '-', + 'reason': 'no_response_after_retries', + }) if is_subdomains_scan: self.__emit_filtered_progress( @@ -4088,8 +4102,12 @@ def __ensure_session_runtime_state(self): self.__result = { 'total': helper.counter(), 'items': helper.list(), - 'report_items': helper.list() + 'report_items': helper.list(), + 'transport_failed': [], } + + if isinstance(self.__result, dict) and not isinstance(self.__result.get('transport_failed'), list): + self.__result['transport_failed'] = [] if not hasattr(self, '_Browser__waf_safe_lock'): self.__waf_safe_lock = threading.RLock() diff --git a/src/lib/reporter/plugins/txt.py b/src/lib/reporter/plugins/txt.py index 9baffb70..075c203e 100644 --- a/src/lib/reporter/plugins/txt.py +++ b/src/lib/reporter/plugins/txt.py @@ -92,6 +92,27 @@ def __format_signal_list(cls, value): return str(value) + def format_transport_failed_items(self): + """Format transport-exhausted request paths for a dedicated txt report. + + These entries are not findings. They identify dictionary items that + were consumed but did not receive any HTTP response after the + configured timeout/retry budget. + + :return: formatted report lines + :rtype: list[str] + """ + + items = self._data.get('transport_failed') + if not isinstance(items, list): + return [] + + return [ + self.format_report_item(item) + for item in items + if item is not None + ] + def format_fingerprint_summary(self): fingerprint = self._data.get('fingerprint') if not isinstance(fingerprint, dict) or len(fingerprint) == 0: @@ -168,6 +189,9 @@ def process(self): if status not in ['failed']: data = [self.format_report_item(item) for item in self.get_report_items(status)] self.record(self.__target_dir, status, data, '\n') + transport_failed_data = self.format_transport_failed_items() + if len(transport_failed_data) > 0: + self.record(self.__target_dir, 'transport_failed', transport_failed_data, '\n') fingerprint_data = self.format_fingerprint_summary() if len(fingerprint_data) > 0: self.record(self.__target_dir, 'fingerprint', fingerprint_data, '\n') diff --git a/tests/test_lib_browser.py b/tests/test_lib_browser.py index f2cf1584..7d2ec7bd 100644 --- a/tests/test_lib_browser.py +++ b/tests/test_lib_browser.py @@ -761,6 +761,32 @@ def test_transport_failure_summary_reports_skipped_path_specific_failures(self): self.assertIn('Transport failures skipped: 3 request(s)', message) self.assertIn('Scan continued without reaching --retries-fail-streak.', message) + def test_http_request_records_transport_failed_paths_for_directory_scan(self): + """Transport-exhausted directory paths should be available for reports.""" + + br = self.make_browser() + client = MagicMock() + client.request.return_value = None + pool = SimpleNamespace(items_size=1, total_items_size=10) + response_handler = MagicMock() + + setattr(br, '_Browser__client', client) + setattr(br, '_Browser__pool', pool) + setattr(br, '_Browser__response', response_handler) + + br._Browser__http_request('http://example.com/offline-admin') + + result = getattr(br, '_Browser__result') + self.assertEqual(result['total']['ignored'], 1) + self.assertEqual(result['transport_failed'], [ + { + 'url': 'http://example.com/offline-admin', + 'size': '0B', + 'code': '-', + 'reason': 'no_response_after_retries', + } + ]) + def test_http_request_never_aborts_subdomain_scan_on_transport_failures(self): """Subdomain misses should be skipped without using the directory fail-streak guard.""" @@ -799,6 +825,7 @@ def test_http_request_never_aborts_subdomain_scan_on_transport_failures(self): self.assertEqual(getattr(br, '_Browser__transport_failure_streak'), 0) self.assertEqual(getattr(br, '_Browser__transport_failures_skipped'), 3) self.assertEqual(getattr(br, '_Browser__result')['total']['ignored'], 3) + self.assertEqual(getattr(br, '_Browser__result').get('transport_failed'), []) def test_transport_failure_summary_uses_subdomain_specific_wording(self): """Subdomain transport misses should not mention reaching the directory fail-streak guard.""" diff --git a/tests/test_lib_reporter_txt_coverage.py b/tests/test_lib_reporter_txt_coverage.py index 974d2a82..e1521cb8 100644 --- a/tests/test_lib_reporter_txt_coverage.py +++ b/tests/test_lib_reporter_txt_coverage.py @@ -109,6 +109,35 @@ def test_should_process_legacy_url_items_when_report_items_are_missing(self): '\n' ) + def test_should_write_transport_failed_report_when_present(self): + """TextReportPlugin.process() should write transport_failed.txt outside finding buckets.""" + + data = { + 'items': {}, + 'transport_failed': [ + { + 'url': 'http://example.com/offline-admin', + 'code': '-', + 'size': '0B', + 'reason': 'no_response_after_retries', + } + ], + } + + with patch('src.lib.reporter.plugins.txt.filesystem.makedir', return_value=self.target_dir), \ + patch('src.lib.reporter.plugins.txt.filesystem.clear') as clear_mock: + plugin = TextReportPlugin(self.target, data, directory='/custom/reports') + with patch.object(plugin, 'record') as record_mock: + plugin.process() + + clear_mock.assert_called_once_with(self.target_dir, extension='.txt') + record_mock.assert_called_once_with( + self.target_dir, + 'transport_failed', + ['http://example.com/offline-admin - - - 0B'], + '\n' + ) + def test_should_process_empty_items_without_writing_report_files(self): """TextReportPlugin.process() should clear stale txt reports even when no items exist.""" diff --git a/tests/test_report_sizes.py b/tests/test_report_sizes.py index 3ec80d51..15416bf9 100644 --- a/tests/test_report_sizes.py +++ b/tests/test_report_sizes.py @@ -162,6 +162,30 @@ def test_json_report_contains_report_items_with_size_metadata(self): self.assertIn('"size": "9B"', content) self.assertIn('"url": "http://example.com/admin"', content) + def test_json_report_preserves_transport_failed_entries(self): + """JSON reports should preserve transport-failed diagnostics when present.""" + + data = dict(self.data) + data['transport_failed'] = [ + { + 'url': 'http://example.com/offline-admin', + 'size': '0B', + 'code': '-', + 'reason': 'no_response_after_retries', + } + ] + + plugin = JsonReportPlugin(self.target, data, directory=self.base_dir + os.path.sep) + plugin.process() + + report_file = os.path.join(self.base_dir, self.target, self.target + '.json') + with open(report_file, 'r', encoding='utf-8') as handler: + content = handler.read() + + self.assertIn('"transport_failed"', content) + self.assertIn('"reason": "no_response_after_retries"', content) + self.assertIn('"url": "http://example.com/offline-admin"', content) + def test_html_report_uses_detailed_report_items_and_builds_fallbacks(self): """HTML reports should receive report_items regardless of input payload shape.""" From 59ebf6d970c730c79bf8efa61b5c359bc5905152 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Sat, 30 May 2026 23:15:14 +0300 Subject: [PATCH 35/42] Avoid ignored duplicates for transport-failed entries --- src/lib/browser/browser.py | 2 +- tests/test_lib_browser.py | 62 +++++++++++++++++++++++++++++++++----- 2 files changed, 55 insertions(+), 9 deletions(-) diff --git a/src/lib/browser/browser.py b/src/lib/browser/browser.py index 8bf75848..396ebf1d 100644 --- a/src/lib/browser/browser.py +++ b/src/lib/browser/browser.py @@ -2528,6 +2528,7 @@ def __record_transport_failure(self, url): }) if is_subdomains_scan: + self.__catch_report_data('ignored', url) self.__emit_filtered_progress( 'ignored', ('ignored', url, '0B', '-'), @@ -2592,7 +2593,6 @@ def __http_request(self, url, depth=0): resp = self.__request_with_waf_safe_mode(url) if resp is None: - self.__catch_report_data('ignored', url) self.__record_transport_failure(url) return diff --git a/tests/test_lib_browser.py b/tests/test_lib_browser.py index 7d2ec7bd..e85f66e4 100644 --- a/tests/test_lib_browser.py +++ b/tests/test_lib_browser.py @@ -579,6 +579,7 @@ def test_http_request_records_ignored_when_response_handler_returns_none(self): result = getattr(br, '_Browser__result') self.assertEqual(result['total']['ignored'], 1) self.assertEqual(result['items']['ignored'], ['http://example.com/admin']) + self.assertEqual(result['transport_failed'], []) def test_http_request_records_transport_failure_without_bypassing_retries(self): """Browser.__http_request() should track missing responses after provider retries are exhausted.""" @@ -608,8 +609,17 @@ def test_http_request_records_transport_failure_without_bypassing_retries(self): self.assertIn('Consecutive max-retry path failures: 1/10', debug_mock.call_args.kwargs.get('msg', '')) result = getattr(br, '_Browser__result') - self.assertEqual(result['total']['ignored'], 1) - self.assertEqual(result['items']['ignored'], ['http://example.com/admin']) + self.assertNotIn('ignored', result['total']) + self.assertNotIn('ignored', result['items']) + self.assertNotIn('ignored', result['report_items']) + self.assertEqual(result['transport_failed'], [ + { + 'url': 'http://example.com/admin', + 'size': '0B', + 'code': '-', + 'reason': 'no_response_after_retries', + } + ]) def test_http_request_includes_tls_diagnostic_in_transport_failure(self): @@ -665,8 +675,26 @@ def test_http_request_aborts_after_configured_retries_fail_streak(self): response_handler.handle.assert_not_called() result = getattr(br, '_Browser__result') - self.assertEqual(result['total']['ignored'], 2) - self.assertEqual(result['items']['ignored'], ['http://example.com/first', 'http://example.com/second']) + self.assertNotIn('ignored', result['total']) + self.assertNotIn('ignored', result['items']) + self.assertNotIn('ignored', result['report_items']) + self.assertEqual( + result['transport_failed'], + [ + { + 'url': 'http://example.com/first', + 'size': '0B', + 'code': '-', + 'reason': 'no_response_after_retries', + }, + { + 'url': 'http://example.com/second', + 'size': '0B', + 'code': '-', + 'reason': 'no_response_after_retries', + }, + ] + ) def test_http_request_does_not_abort_before_default_retries_fail_streak(self): """Browser.__http_request() should keep max-retry paths skipped until the default threshold.""" @@ -693,10 +721,25 @@ def test_http_request_does_not_abort_before_default_retries_fail_streak(self): self.assertEqual(getattr(br, '_Browser__transport_failure_streak'), 2) result = getattr(br, '_Browser__result') - self.assertEqual(result['total']['ignored'], 2) + self.assertNotIn('ignored', result['total']) + self.assertNotIn('ignored', result['items']) + self.assertNotIn('ignored', result['report_items']) self.assertEqual( - result['items']['ignored'], - ['http://example.com/.well', 'http://example.com/.idea/dictionaries'] + result['transport_failed'], + [ + { + 'url': 'http://example.com/.well', + 'size': '0B', + 'code': '-', + 'reason': 'no_response_after_retries', + }, + { + 'url': 'http://example.com/.idea/dictionaries', + 'size': '0B', + 'code': '-', + 'reason': 'no_response_after_retries', + }, + ] ) def test_http_request_does_not_run_healthcheck_during_max_retry_streak(self): @@ -777,7 +820,9 @@ def test_http_request_records_transport_failed_paths_for_directory_scan(self): br._Browser__http_request('http://example.com/offline-admin') result = getattr(br, '_Browser__result') - self.assertEqual(result['total']['ignored'], 1) + self.assertNotIn('ignored', result['total']) + self.assertNotIn('ignored', result['items']) + self.assertNotIn('ignored', result['report_items']) self.assertEqual(result['transport_failed'], [ { 'url': 'http://example.com/offline-admin', @@ -1007,6 +1052,7 @@ def test_add_urls_sends_only_non_ignored_urls_to_pool_with_zero_depth(self): result = getattr(br, '_Browser__result') self.assertEqual(result['total']['ignored'], 1) self.assertEqual(result['items']['ignored'], ['http://example.com/admin']) + self.assertEqual(result['transport_failed'], []) def test_add_urls_deduplicates_subdomain_candidates_before_queueing(self): """Browser._add_urls() should skip duplicate subdomain URLs before HTTP queueing.""" From f767b9cef35757a301f557527d366613de930f3a Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Sun, 31 May 2026 00:06:05 +0300 Subject: [PATCH 36/42] Reduce transport retry warning noise --- CHANGELOG.md | 2 + src/core/http/http.py | 3 +- src/core/http/https.py | 2 - src/lib/browser/browser.py | 56 +++++++++++++++++++ src/lib/browser/threadpool.py | 53 ++++++++++++++++++ tests/test_core_http_requests.py | 10 +++- tests/test_core_http_requests_low_coverage.py | 12 ++-- tests/test_lib_browser.py | 29 ++++++++++ tests/test_lib_browser_threadpool_worker.py | 29 ++++++++++ 9 files changed, 184 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 649f298b..d32bcf0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,8 @@ v5.16.2 (31.06.2026) - (fix) `--fingerprint` now detects DataLife Engine (DLE) from conservative runtime globals and engine asset signals. - (fix) `--fingerprint` now prefers Webflow hosted-platform signals over endpoint-only WordPress static path artifacts. - (fix) `--fingerprint` now detects CMS.S3 / Megagroup from strong root-page builder/runtime markers without relying on generic WordPress endpoint probes. +- (enhancement) scans automatic PAUSE after repeated transport failures to avoid burning through the wordlist during temporary network outages. +- (enhancement) exhausted directory entries are now tracked in `transport_failed.txt` and JSON diagnostics. - (enhancement) added Camaleon CMS without adding active probes. - (enhancement) added Evolution CMS fingerprint detection. - (enhancement) added strong UMI.CMS fingerprint detection rules. diff --git a/src/core/http/http.py b/src/core/http/http.py index fa5a0315..dfe951f9 100644 --- a/src/core/http/http.py +++ b/src/core/http/http.py @@ -153,8 +153,7 @@ def request(self, url, extra_headers=None): return response except MaxRetryError: - if self.__cfg.DEFAULT_SCAN == self.__cfg.scan: - self.__tpl.warning(key='max_retry_error', url=helper.parse_url(url).path) + pass except HostChangedError as error: self.__tpl.warning(key='host_changed_error', details=error) diff --git a/src/core/http/https.py b/src/core/http/https.py index e7a6a740..ddf1a8ae 100644 --- a/src/core/http/https.py +++ b/src/core/http/https.py @@ -207,8 +207,6 @@ def request(self, url, extra_headers=None): except MaxRetryError as error: self.__record_tls_transport_error(error) - if self.__cfg.DEFAULT_SCAN == self.__cfg.scan: - self.__tpl.warning(key='max_retry_error', url=helper.parse_url(url).path) except HostChangedError as error: self.__tpl.warning(key='host_changed_error', details=error) diff --git a/src/lib/browser/browser.py b/src/lib/browser/browser.py index 396ebf1d..bb14cf4d 100644 --- a/src/lib/browser/browser.py +++ b/src/lib/browser/browser.py @@ -92,6 +92,8 @@ class Browser(Filter): WAF_SAFE_RETRY_AFTER_STATUSES = (429, 503) WAF_SAFE_RETRY_AFTER_HEADER = 'retry-after' DEFAULT_RETRIES_FAIL_STREAK = 10 + TRANSPORT_OUTAGE_PAUSE_MIN_STREAK = 5 + TRANSPORT_OUTAGE_PAUSE_MAX_STREAK = 10 WAF_SAFE_RECOVERY_STATUSES = ('success', 'redirect', 'auth', 'forbidden', 'bad', 'certificate') def __init__(self, params): @@ -2431,6 +2433,56 @@ def __transport_failures_skipped_count(self): with self.__transport_failure_lock: return int(getattr(self, '_Browser__transport_failures_skipped', 0)) + def __transport_outage_pause_threshold(self, abort_threshold=None): + """Return the conservative streak threshold for auto-pausing scans. + + The value is derived from the existing ``--retries-fail-streak`` guard so + patch releases do not add a new public option. Very low fail-fast limits + still abort normally before the pause threshold can fire. + + :param int|None abort_threshold: configured fail-streak abort threshold + :return: pause threshold + :rtype: int + """ + + if abort_threshold is None: + abort_threshold = self.__transport_failure_threshold() + + try: + abort_threshold = int(abort_threshold) + except (TypeError, ValueError): + abort_threshold = self.DEFAULT_RETRIES_FAIL_STREAK + + tenth = max(1, abort_threshold // 10) + return min( + self.TRANSPORT_OUTAGE_PAUSE_MAX_STREAK, + max(self.TRANSPORT_OUTAGE_PAUSE_MIN_STREAK, tenth), + ) + + def __request_transport_outage_pause(self, streak, threshold, path): + """Ask the thread pool to open the regular pause prompt on the main thread. + + :param int streak: consecutive transport failure count + :param int threshold: configured fail-streak abort threshold + :param str path: last failed path for diagnostics + :return: None + """ + + request_pause = getattr(getattr(self, '_Browser__pool', None), 'request_pause', None) + if not callable(request_pause): + return + + if request_pause() is not True: + return + + tpl.warning( + msg=( + 'Network outage suspected after {streak} consecutive transport failures. ' + 'Scan paused to avoid consuming more dictionary entries. Last failed path: {path}. ' + 'Limit: {threshold}.' + ).format(streak=streak, threshold=threshold, path=path) + ) + def __emit_transport_failure_summary(self): """Print a compact summary for skipped path-specific transport failures. @@ -2558,6 +2610,10 @@ def __record_transport_failure(self, url): diagnostic_suffix=diagnostic_suffix, ) ) + + if streak >= self.__transport_outage_pause_threshold(threshold): + self.__request_transport_outage_pause(streak, threshold, path) + return raise BrowserError( diff --git a/src/lib/browser/threadpool.py b/src/lib/browser/threadpool.py index e3d74184..78e2d1f6 100644 --- a/src/lib/browser/threadpool.py +++ b/src/lib/browser/threadpool.py @@ -16,6 +16,7 @@ Development: Stanislav WEB """ +import threading import time from queue import Queue @@ -46,6 +47,8 @@ def __init__(self, num_threads, total_items, timeout, stall_warning_interval=Non self.__workers = [] self.__submitted = 0 self.__worker_error = None + self.__pause_requested = False + self.__pause_lock = threading.RLock() self.total_items_size = total_items self.is_started = True self.__stall_warning_interval = self.__normalize_stall_warning_interval(stall_warning_interval) @@ -153,6 +156,11 @@ def add(self, func, *args, **kargs): if self.__submitted >= self.total_items_size: return + self.__pause_if_requested() + + if True is not self.is_started: + return + self.__enqueue_with_pause_resume(func, args, kargs) def __enqueue_with_pause_resume(self, func, args, kargs): @@ -178,6 +186,45 @@ def __enqueue_with_pause_resume(self, func, args, kargs): except (SystemExit, KeyboardInterrupt): self.pause() + + def request_pause(self): + """ + Request the regular runtime pause prompt from another thread. + + Worker threads must not show the interactive prompt directly because an + abort answer raises ``KeyboardInterrupt`` outside the main scan thread. + This method only marks the pool as pause-requested and pauses workers + before their next queued task. ``add()`` or ``join()`` will show the + existing prompt on the controlling thread. + + :return: True when a new pause request was registered + :rtype: bool + """ + + with self.__pause_lock: + if self.__pause_requested is True or self.is_started is not True: + return False + + self.__pause_requested = True + + for worker in self.__workers: + worker.pause() + + return True + + def __pause_if_requested(self): + """Open the regular pause menu when a worker requested it. + + :raise KeyboardInterrupt: when the user aborts from the pause prompt + :return: None + """ + + with self.__pause_lock: + requested = self.__pause_requested is True + + if requested is True: + self.pause() + def join(self): """ Join queue and periodically warn when workers stop making progress. @@ -196,12 +243,15 @@ def join(self): with self.__queue.all_tasks_done: while int(getattr(self.__queue, 'unfinished_tasks', 0) or 0) > 0: + self.__pause_if_requested() + try: self.__queue.all_tasks_done.wait(timeout=self.JOIN_POLL_INTERVAL_SEC) except (SystemExit, KeyboardInterrupt): self.pause() continue + self.__pause_if_requested() self.__raise_worker_error_if_any() completed = self.completed_size @@ -393,6 +443,9 @@ def pause(self): :return: None """ + with self.__pause_lock: + self.__pause_requested = False + self.is_started = False tpl.info(key='stop_threads', threads=len(self.__workers)) diff --git a/tests/test_core_http_requests.py b/tests/test_core_http_requests.py index 9b75b1cd..1dcb3e35 100644 --- a/tests/test_core_http_requests.py +++ b/tests/test_core_http_requests.py @@ -168,7 +168,7 @@ def test_request_handles_errors(self): pool.request.side_effect = MaxRetryError(None, '/', None) self.assertIsNone(req.request('http://example.com/x')) - tpl.warning.assert_called() + tpl.warning.assert_not_called() for exc in [HostChangedError(None, '/', 0), ReadTimeoutError(None, '/', 'x'), DecodeError('bad gzip'), ConnectTimeoutError(None, '/', 'x')]: pool.request.reset_mock(side_effect=True) @@ -377,7 +377,13 @@ def test_request_handles_ssl_and_timeouts(self): response = req_sub.request('https://api.example.com') self.assertEqual(response.status, 496) - for exc in [MaxRetryError(None, '/', None), HostChangedError(None, '/', 0), ReadTimeoutError(None, '/', 'x'), DecodeError('bad gzip'), ConnectTimeoutError(None, '/', 'x')]: + pool.request.reset_mock(side_effect=True) + tpl.warning.reset_mock() + pool.request.side_effect = MaxRetryError(None, '/', None) + self.assertIsNone(req.request('https://example.com/x')) + tpl.warning.assert_not_called() + + for exc in [HostChangedError(None, '/', 0), ReadTimeoutError(None, '/', 'x'), DecodeError('bad gzip'), ConnectTimeoutError(None, '/', 'x')]: pool.request.reset_mock(side_effect=True) tpl.warning.reset_mock() pool.request.side_effect = exc diff --git a/tests/test_core_http_requests_low_coverage.py b/tests/test_core_http_requests_low_coverage.py index 17d6e6af..a54f7e2b 100644 --- a/tests/test_core_http_requests_low_coverage.py +++ b/tests/test_core_http_requests_low_coverage.py @@ -157,8 +157,8 @@ def test_http_request_warns_on_host_changed_and_timeouts(self): self.assertIsNone(requester.request('http://example.com/test')) self.assertTrue(tpl.warning.called) - def test_http_request_warns_on_max_retry_only_for_default_scan(self): - """HttpRequest.request() should warn on MaxRetryError only for default scan mode.""" + def test_http_request_keeps_max_retry_exhaustion_quiet_for_browser_accounting(self): + """HttpRequest.request() should let Browser account exhausted retries without per-path warning noise.""" cfg = self.make_cfg() tpl = MagicMock() @@ -168,7 +168,7 @@ def test_http_request_warns_on_max_retry_only_for_default_scan(self): pool.request.side_effect = MaxRetryError(None, '/', None) self.assertIsNone(requester.request('http://example.com/test')) - tpl.warning.assert_called_once() + tpl.warning.assert_not_called() def test_http_request_preserves_explicit_user_agent_and_forwards_body(self): @@ -342,8 +342,8 @@ def test_https_request_returns_none_for_directory_ssl_errors(self): with patch('src.core.http.https.disable_warnings'): self.assertIsNone(requester.request('https://example.com/test')) - def test_https_request_warns_on_max_retry_only_for_default_scan(self): - """HttpsRequest.request() should warn on MaxRetryError only for default scan mode.""" + def test_https_request_keeps_plain_max_retry_exhaustion_quiet_for_browser_accounting(self): + """HttpsRequest.request() should let Browser account plain exhausted retries without per-path warning noise.""" cfg = self.make_cfg() tpl = MagicMock() @@ -354,7 +354,7 @@ def test_https_request_warns_on_max_retry_only_for_default_scan(self): with patch('src.core.http.https.disable_warnings'): self.assertIsNone(requester.request('https://example.com/test')) - tpl.warning.assert_called_once() + tpl.warning.assert_not_called() def test_https_pool_manager_wraps_construction_errors(self): """HttpsRequest should wrap PoolManager construction errors for non-default scans.""" diff --git a/tests/test_lib_browser.py b/tests/test_lib_browser.py index e85f66e4..9a4ac5f9 100644 --- a/tests/test_lib_browser.py +++ b/tests/test_lib_browser.py @@ -832,6 +832,35 @@ def test_http_request_records_transport_failed_paths_for_directory_scan(self): } ]) + + def test_http_request_requests_pause_after_transport_outage_streak(self): + """Directory scans should pause before burning many paths during a network outage.""" + + br = self.make_browser() + client = MagicMock() + client.request.return_value = None + pool = SimpleNamespace( + items_size=1, + total_items_size=10, + request_pause=MagicMock(return_value=True), + ) + response_handler = MagicMock() + + setattr(br, '_Browser__client', client) + setattr(br, '_Browser__pool', pool) + setattr(br, '_Browser__response', response_handler) + setattr(getattr(br, '_Browser__config'), '_retries_fail_streak', 10) + + with patch('src.lib.browser.browser.tpl.warning') as warning_mock: + for index in range(5): + br._Browser__http_request('http://example.com/miss-{0}'.format(index)) + + pool.request_pause.assert_called_once_with() + self.assertEqual(getattr(br, '_Browser__transport_failure_streak'), 5) + message = warning_mock.call_args.kwargs.get('msg', '') + self.assertIn('Network outage suspected after 5 consecutive transport failures', message) + self.assertIn('Scan paused to avoid consuming more dictionary entries', message) + def test_http_request_never_aborts_subdomain_scan_on_transport_failures(self): """Subdomain misses should be skipped without using the directory fail-streak guard.""" diff --git a/tests/test_lib_browser_threadpool_worker.py b/tests/test_lib_browser_threadpool_worker.py index 745408ae..6ecd53a0 100644 --- a/tests/test_lib_browser_threadpool_worker.py +++ b/tests/test_lib_browser_threadpool_worker.py @@ -666,6 +666,35 @@ def test_threadpool_resume_is_noop_when_already_started(self): info_mock.assert_not_called() worker.resume.assert_not_called() + + def test_request_pause_marks_workers_and_join_opens_pause_prompt(self): + """ThreadPool.request_pause() should defer the interactive prompt to join().""" + + with patch('src.lib.browser.threadpool.Worker', side_effect=lambda q, n, t: FakeWorker(q, n, t)): + pool = ThreadPool(num_threads=1, total_items=1, timeout=0) + + worker = getattr(pool, '_ThreadPool__workers')[0] + queue = getattr(pool, '_ThreadPool__queue') + queue.put((lambda: None, (), {})) + + self.assertTrue(pool.request_pause()) + self.assertTrue(worker.paused) + self.assertFalse(pool.request_pause()) + + def wait_once(timeout=None): + queue.unfinished_tasks = 0 + return True + + def pause_once(): + setattr(pool, '_ThreadPool__pause_requested', False) + + with patch.object(queue.all_tasks_done, 'wait', side_effect=wait_once), \ + patch.object(pool, 'pause', side_effect=pause_once) as pause_mock, \ + patch('src.lib.browser.threadpool.time.monotonic', side_effect=[1.0, 2.0]): + pool.join() + + pause_mock.assert_called_once_with() + def test_threadpool_join_opens_pause_menu_on_keyboard_interrupt_and_continues(self): """ThreadPool.join() should pause/resume instead of bubbling Ctrl+C immediately.""" From 29a54145f64da3b26f2d5dc70f86e2cb8a51c66b Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Sun, 31 May 2026 00:22:42 +0300 Subject: [PATCH 37/42] Improve release coverage for shadow and transport helpers --- ...t_core_http_plugins_response_stacktrace.py | 13 +++ ..._core_http_request_provider_socks_extra.py | 11 +++ tests/test_lib_browser_calibration.py | 56 +++++++++++++ tests/test_lib_browser_shadow.py | 84 +++++++++++++++++++ tests/test_lib_reader.py | 6 ++ 5 files changed, 170 insertions(+) diff --git a/tests/test_core_http_plugins_response_stacktrace.py b/tests/test_core_http_plugins_response_stacktrace.py index 24913408..9fe4d9b0 100644 --- a/tests/test_core_http_plugins_response_stacktrace.py +++ b/tests/test_core_http_plugins_response_stacktrace.py @@ -288,6 +288,19 @@ def test_get_header_uses_case_insensitive_fallback_and_handles_missing_header(se self.assertEqual(plugin.process(response), 'stacktrace') self.assertEqual(getattr(response, 'opendoor_stacktrace_detection')['runtime'], 'python') + def test_get_header_returns_none_after_iterating_non_matching_headers(self): + """Stacktrace header lookup should return None after case-insensitive misses.""" + + plugin = StacktraceResponsePlugin(None) + response = self.make_response( + body=b'Traceback (most recent call last):', + headers={'X-Test': '1'}, + ) + + plugin.process(response) + self.assertIsNone(plugin._get_header('Content-Type')) + + def test_accepts_vendor_json_and_xml_suffix_content_types(self): """Should inspect vendor structured content types ending with +json or +xml.""" diff --git a/tests/test_core_http_request_provider_socks_extra.py b/tests/test_core_http_request_provider_socks_extra.py index 1729e75a..c79335f8 100644 --- a/tests/test_core_http_request_provider_socks_extra.py +++ b/tests/test_core_http_request_provider_socks_extra.py @@ -246,6 +246,17 @@ def test_ping_success_uses_create_connection_and_closes_socket(self): connect_mock.assert_called_once_with(('example.com', 80), timeout=5) sock.close.assert_called_once() + def test_ping_closes_socket_when_closeable_connection_was_created(self): + """Socket.ping() should close a connection object even when it is truthy only after creation.""" + + sock = MagicMock() + + with patch('src.core.http.socks.socket.create_connection', return_value=sock): + Socket.ping('example.com', '80', timeout=1) + + sock.close.assert_called_once_with() + + def test_ping_wraps_socket_errors_with_connect_details(self): """Socket.ping() should wrap socket errors with host, port, timeout and resolved addresses.""" diff --git a/tests/test_lib_browser_calibration.py b/tests/test_lib_browser_calibration.py index 0396b026..4f7990d9 100644 --- a/tests/test_lib_browser_calibration.py +++ b/tests/test_lib_browser_calibration.py @@ -1154,6 +1154,62 @@ def test_calibration_soft_200_shape_should_cover_title_and_dom_positive_paths(se self.assertTrue(Calibration._is_soft_200_shape_match(baseline, dom_candidate)) + def test_calibration_soft_error_semantic_helpers_cover_phrase_branches(self): + """Soft-error semantic helpers should cover strong and weak phrase combinations.""" + + self.assertTrue(Calibration._has_strong_soft_error_semantics({ + 'title': '', + 'semantic_phrases': ['404', 'not found'], + })) + self.assertTrue(Calibration._has_strong_soft_error_semantics({ + 'title': '', + 'semantic_phrases': ['not found', 'requested resource'], + })) + self.assertTrue(Calibration._has_any_soft_error_semantics({ + 'title': '', + 'semantic_phrases': ['404'], + })) + self.assertFalse(Calibration._has_any_soft_error_semantics({ + 'title': 'admin', + 'semantic_phrases': ['login'], + })) + + def test_calibration_compact_cross_status_shape_negative_branches(self): + """Compact cross-status matching should reject each weak or unsafe branch.""" + + base = { + 'code': 404, + 'content_kind': 'html', + 'size': 100, + 'title': 'not found', + 'semantic_phrases': ['not found'], + 'normalized_body_hash': 'same', + } + candidate = dict(base, code=200) + + self.assertFalse(Calibration._is_compact_cross_status_soft_error_shape_match( + dict(base, code=403), candidate + )) + self.assertFalse(Calibration._is_compact_cross_status_soft_error_shape_match( + dict(base, title='admin', semantic_phrases=[]), candidate + )) + self.assertFalse(Calibration._is_compact_cross_status_soft_error_shape_match( + base, dict(candidate, title='admin', semantic_phrases=[]) + )) + self.assertFalse(Calibration._is_compact_cross_status_soft_error_shape_match( + dict(base, content_kind='html'), dict(candidate, content_kind='json') + )) + self.assertFalse(Calibration._is_compact_cross_status_soft_error_shape_match( + dict(base, size=31), dict(candidate, size=31) + )) + self.assertFalse(Calibration._is_compact_cross_status_soft_error_shape_match( + dict(base, size=1025), dict(candidate, size=1025) + )) + self.assertFalse(Calibration._is_compact_cross_status_soft_error_shape_match( + dict(base, normalized_body_hash='left'), dict(candidate, normalized_body_hash='right') + )) + + if __name__ == '__main__': unittest.main() diff --git a/tests/test_lib_browser_shadow.py b/tests/test_lib_browser_shadow.py index 06be9e76..ca5ba745 100644 --- a/tests/test_lib_browser_shadow.py +++ b/tests/test_lib_browser_shadow.py @@ -420,6 +420,90 @@ def test_debug_classification_renders_shadow_detection(self): rendered = [call.kwargs.get('msg') for call in debug_mock.call_args_list] self.assertTrue(any('Shadow detection:' in str(item) for item in rendered)) + def test_shadow_template_and_candidate_edge_branches(self): + """Shadow template helpers should reject malformed rendered paths.""" + + self.assertIsNone(ShadowProbe.build_template_path('/index.', '{path}2.{ext}')) + self.assertIsNone(ShadowProbe.build_template_path('/index.php', '{path}{bad}.{ext}')) + self.assertIsNone(ShadowProbe.build_template_path('/index.php', '{path}.{ext}')) + self.assertEqual(ShadowProbe.build_candidates('https://example.com/index.php', ['.bak', '.bak']), [ + ('https://example.com/index.php.bak', '.bak'), + ]) + + def test_shadow_control_candidate_and_fallback_edges(self): + """Shadow negative-control helpers should cover parse and mismatch guards.""" + + self.assertIsNone(ShadowProbe.build_control_candidate('http://[::1')) + self.assertIsNone(ShadowProbe.build_control_candidate('https://example.com/admin/')) + + identical = self.make_response(body=b'body', content_type='text/html') + base = ShadowProbe.response_signature(identical) + different_type = self.make_response(body=b'body', content_type='application/json') + self.assertFalse(ShadowProbe.is_fallback_like_control(base, different_type)) + + self.assertTrue(ShadowProbe.is_fallback_like_control(base, identical)) + self.assertFalse(ShadowProbe.is_fallback_like_control(None, identical)) + + def test_shadow_enqueue_control_candidate_guards(self): + """Shadow control enqueue should skip short, invalid and duplicate states.""" + + probe = ShadowProbe(MagicMock(), MagicMock()) + base_signature = {'hash': 'h', 'normalized': 'body', 'size': 10, 'content_type': 'text/html'} + enqueue_control = getattr(probe, '_ShadowProbe__enqueue_control_candidate') + + enqueue_control('https://example.com/index.php', base_signature, [ + ('https://example.com/index.php.bak', '.bak'), + ]) + self.assertEqual(getattr(probe, '_ShadowProbe__queue').qsize(), 0) + + enqueue_control('https://example.com/admin/', base_signature, [ + ('https://example.com/admin/.bak', '.bak'), + ('https://example.com/admin/.old', '.old'), + ]) + self.assertEqual(getattr(probe, '_ShadowProbe__queue').qsize(), 0) + + enqueue_control('https://example.com/index.php', base_signature, [ + ('https://example.com/index.php.bak', '.bak'), + ('https://example.com/index.php.old', '.old'), + ]) + enqueue_control('https://example.com/index.php', base_signature, [ + ('https://example.com/index.php.tmp', '.tmp'), + ('https://example.com/index.php.save', '.save'), + ]) + self.assertEqual(getattr(probe, '_ShadowProbe__queue').qsize(), 1) + + def test_shadow_process_control_task_delay_exception_and_state(self): + """Control probes should honor delay and mark allowed on request errors.""" + + probe = ShadowProbe(MagicMock(side_effect=RuntimeError('offline')), MagicMock(), delay=0.5) + base_signature = {'hash': 'h', 'normalized': 'body', 'size': 10, 'content_type': 'text/html'} + + with patch('src.lib.browser.shadow.time.sleep') as sleep_mock: + getattr(probe, '_ShadowProbe__process_control_task')( + 'https://example.com/index.php', + base_signature, + 'https://example.com/index.php{0}'.format(ShadowProbe.CONTROL_SUFFIX), + ) + + sleep_mock.assert_called_once_with(0.5) + self.assertFalse(getattr(probe, '_ShadowProbe__is_base_suppressed')('https://example.com/index.php')) + self.assertFalse(getattr(ShadowProbe, '_ShadowProbe__is_control_task')(None)) + + def test_shadow_enqueue_stops_when_probe_limit_is_reached_mid_batch(self): + """Shadow enqueue should stop cleanly once the total probe limit is reached mid-batch.""" + + request = MagicMock(return_value=self.make_response(body=b'different')) + probe = ShadowProbe(request, MagicMock()) + base = self.make_response(body=b'base stable body line\n' * 5) + + with patch.object(probe, '_ShadowProbe__suffixes', ['.bak', '.old', '.tmp']), \ + patch.object(ShadowProbe, 'MAX_TOTAL_PROBES', 1): + self.assertEqual(probe.enqueue('https://example.com/index.php', base, 'success'), 1) + probe.drain() + + self.assertLessEqual(probe.submitted, 1) + + class TestBrowserShadowIntegration(unittest.TestCase): """Browser integration tests for active shadow probe plumbing.""" diff --git a/tests/test_lib_reader.py b/tests/test_lib_reader.py index c92c25ba..567db837 100644 --- a/tests/test_lib_reader.py +++ b/tests/test_lib_reader.py @@ -305,6 +305,12 @@ def test_subdomains_line_should_strip_www_when_host_context_is_not_prepared(self self.assertEqual(line, 'http://api.example.com:8080') + def test_normalize_directory_prefix_should_accept_none(self): + """Reader._normalize_directory_prefix() should treat None as no prefix.""" + + self.assertEqual(Reader._normalize_directory_prefix(None), '') + + def test_count_active_lines_should_wrap_filesystem_errors(self): """Reader.count_active_lines() should wrap filesystem count errors.""" From 1652cf7b63f2aacec9409259ee061c678e52f515 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Sun, 31 May 2026 00:32:57 +0300 Subject: [PATCH 38/42] Enhance secret sniffer token coverage --- src/core/http/plugins/response/secret.py | 21 ++++++++++++++-- .../test_core_http_plugins_response_secret.py | 25 +++++++++++++++++++ 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/src/core/http/plugins/response/secret.py b/src/core/http/plugins/response/secret.py index ae43f8d2..b6d5b270 100644 --- a/src/core/http/plugins/response/secret.py +++ b/src/core/http/plugins/response/secret.py @@ -71,14 +71,19 @@ def __init__(self, _void): ) GOOGLE_API_KEY_RE = re.compile(r'\bAIza[0-9A-Za-z_-]{35}\b') GITHUB_TOKEN_RE = re.compile(r'\b(?:ghp|gho|ghu|ghs|ghr)_[A-Za-z0-9]{36,255}\b') + GITHUB_FINE_GRAINED_TOKEN_RE = re.compile(r'\bgithub_pat_[A-Za-z0-9_]{40,255}\b') SLACK_TOKEN_RE = re.compile(r'\bxox[baprs]-[A-Za-z0-9-]{10,}\b') STRIPE_KEY_RE = re.compile(r'\b(?:sk|rk)_(?:live|test)_[0-9A-Za-z]{16,}\b') + SQUARE_TOKEN_RE = re.compile(r'\bsq0(?:csp|scp|atp)-[0-9A-Za-z_-]{20,}\b') + AUTHORIZATION_BEARER_RE = re.compile( + r'(?i)\bauthorization\b\s*[:=]\s*[\"\']?bearer\s+([A-Za-z0-9._~+/=-]{20,})' + ) DB_URL_RE = re.compile( r'\b(?:postgres(?:ql)?|mysql|mongodb(?:\+srv)?|redis)://[^:\s/@]{1,80}:[^@\s]{6,}@[^\'"\s<>]+', re.IGNORECASE, ) ASSIGNMENT_RE = re.compile( - r'(?i)\b(?:api[_-]?key|secret[_-]?key|access[_-]?token|auth[_-]?token|client[_-]?secret|db[_-]?password|password)\b' + r'(?i)\b(?:api[_-]?key|secret[_-]?key|secretkey|access[_-]?key|access[_-]?secret|access[_-]?token|auth[_-]?token|client[_-]?secret|account[_-]?key|accountkey|db[_-]?password|password|pwd)\b' r'\s*[:=]\s*[\'"]([^\'"\s]{12,})[\'"]' ) @@ -86,6 +91,13 @@ def __init__(self, _void): DETECTION_TYPE_GENERIC_ASSIGNMENT = ( 'generic_assignment' # nosec B105 - detector type id, not a credential. ) + DETECTION_TYPE_AUTHORIZATION_BEARER = ( + 'authorization_bearer' # nosec B105 - detector type id, not a credential. + ) + CAPTURE_GROUP_RULES = ( + DETECTION_TYPE_GENERIC_ASSIGNMENT, + DETECTION_TYPE_AUTHORIZATION_BEARER, + ) SECRET_RULES = ( ('aws_access_key', AWS_ACCESS_KEY_RE, 95), @@ -93,8 +105,11 @@ def __init__(self, _void): ('private_key', PRIVATE_KEY_RE, 98), ('google_api_key', GOOGLE_API_KEY_RE, 90), ('github_token', GITHUB_TOKEN_RE, 95), + ('github_fine_grained_token', GITHUB_FINE_GRAINED_TOKEN_RE, 95), ('slack_token', SLACK_TOKEN_RE, 95), ('stripe_key', STRIPE_KEY_RE, 95), + ('square_token', SQUARE_TOKEN_RE, 92), + (DETECTION_TYPE_AUTHORIZATION_BEARER, AUTHORIZATION_BEARER_RE, 88), ('database_url', DB_URL_RE, 92), (DETECTION_TYPE_GENERIC_ASSIGNMENT, ASSIGNMENT_RE, 70), ) @@ -147,7 +162,7 @@ def detect(cls, text): for match in pattern.finditer(str(text or '')): value = ( match.group(1) - if secret_type == cls.DETECTION_TYPE_GENERIC_ASSIGNMENT and match.groups() + if secret_type in cls.CAPTURE_GROUP_RULES and match.groups() else match.group(0) ) if cls._is_probable_false_positive(secret_type, value): @@ -326,6 +341,8 @@ def _is_probable_false_positive(cls, secret_type, value): 'dummy', 'placeholder', 'changeme', + 'redacted', + 'masked', 'your_', 'insert_', '<', diff --git a/tests/test_core_http_plugins_response_secret.py b/tests/test_core_http_plugins_response_secret.py index dab73cfc..e2455896 100644 --- a/tests/test_core_http_plugins_response_secret.py +++ b/tests/test_core_http_plugins_response_secret.py @@ -67,6 +67,8 @@ def test_detects_common_token_families(self): ('xoxb-1234567890-abcdEFGHijk', 'slack_token', 95), ('sk_live_' + ('A' * 24), 'stripe_key', 95), ('AIza' + ('A' * 35), 'google_api_key', 90), + ('github_pat_' + ('A' * 40), 'github_fine_grained_token', 95), + ('sq0csp-' + ('A' * 24), 'square_token', 92), ] for value, secret_type, confidence in samples: @@ -82,6 +84,7 @@ def test_detects_jwt_private_key_database_url_and_generic_assignment(self): ('-----BEGIN PRIVATE KEY-----\nredacted\n-----END PRIVATE KEY-----', 'private_key', 98), ('postgresql://app_user:superSecretPassword@db.local:5432/app', 'database_url', 92), ('api_key = "live_secret_value_12345"', 'generic_assignment', 70), + ('access_secret = "live_access_secret_12345"', 'generic_assignment', 70), ] for value, secret_type, confidence in samples: @@ -98,6 +101,28 @@ def test_detects_json_vendor_content_types(self): headers={'Content-Type': 'application/vnd.api+json'}, ) + def test_detects_authorization_bearer_without_storing_raw_token(self): + """Should detect leaked bearer headers while storing only redacted metadata.""" + + token = 'headerPayloadSignatureValue1234567890' + detection = self.assert_secret_detection( + 'Authorization: Bearer ' + token, + 'authorization_bearer', + 88, + ) + + self.assertEqual(detection['redacted'], 'head****7890') + + def test_should_keep_secret_searcher_style_placeholder_hits_suppressed(self): + """Should avoid broad keyword-style hits when values are placeholders.""" + + self.assertIsNone( + SecretResponsePlugin.detect('Authorization: Bearer redactedBearerToken123456') + ) + self.assertIsNone( + SecretResponsePlugin.detect('account_key = "maskedAccountKey123456"') + ) + def test_ignores_binary_non_success_and_normal_responses(self): """Should avoid binary content, non-200 responses and ordinary text.""" From bffd26f6a15095aa1274577965c8c819242d1fd1 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Sun, 31 May 2026 17:02:50 +0300 Subject: [PATCH 39/42] Finalize 5.16.2 release notes and assets --- .coveragerc | 2 ++ .dockerignore | 3 ++- CHANGELOG.md | 11 +++++------ pyproject.toml | 1 + 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.coveragerc b/.coveragerc index 08b3ba08..e36f1176 100644 --- a/.coveragerc +++ b/.coveragerc @@ -7,6 +7,7 @@ omit = */docs/* */benchmarks/* */scripts/* + */examples/* [report] show_missing = true @@ -17,6 +18,7 @@ omit = */benchmarks/* */docs/* */scripts/* + */examples/* [html] directory = htmlcov diff --git a/.dockerignore b/.dockerignore index 1effe158..60e2cb96 100644 --- a/.dockerignore +++ b/.dockerignore @@ -94,4 +94,5 @@ debian/*.substvars # Misc TODO ROADMAP.md -test.py \ No newline at end of file +test.py +examples \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index d32bcf0c..90185351 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,9 @@ CHANGELOG ======= -v5.16.2 (31.06.2026) +v5.16.2 (31.05.2026) --------------------------- - (critical) fixed scan crashes caused by corrupted gzip/encoded HTTP responses by handling `DecodeError` as a recoverable transport failure instead of aborting worker threads. -- (fix) JavaScript cookie-gate bypass pages such as `document.cookie` + `location.reload()` responses are no longer reported as `OK` findings. -- (fix) transport-exhausted directory entries are now saved to `transport_failed.txt` and JSON diagnostics, making temporary network-related wordlist coverage loss visible without changing scan scheduling. +- (fix) JavaScript cookie-gate bootstrap pages such as `document.cookie` + `location.reload()` responses are no longer reported as `OK` findings. - (fix) subdomain scans so missing/no-response candidates are skipped without triggering the directory retry fail-streak abort guard. - (fix) directory scan prefix normalization so `--prefix ex` and `--prefix ex/` both scan under `/ex/` instead of concatenating paths as `/ex`. - (fix) reduced WAF-safe auto-calibration noise by using neutral calibration probe paths when `--waf-safe-mode` is enabled, avoiding high-risk `.php`, `.map`, `admin`, and `wp-*` probe shapes. @@ -18,8 +17,7 @@ v5.16.2 (31.06.2026) - (fix) `--fingerprint` now detects DataLife Engine (DLE) from conservative runtime globals and engine asset signals. - (fix) `--fingerprint` now prefers Webflow hosted-platform signals over endpoint-only WordPress static path artifacts. - (fix) `--fingerprint` now detects CMS.S3 / Megagroup from strong root-page builder/runtime markers without relying on generic WordPress endpoint probes. -- (enhancement) scans automatic PAUSE after repeated transport failures to avoid burning through the wordlist during temporary network outages. -- (enhancement) exhausted directory entries are now tracked in `transport_failed.txt` and JSON diagnostics. +- (fix) transport-exhausted directory entries are now tracked in `transport_failed.txt` and JSON diagnostics, and scans automatically pause after repeated transport failures to avoid burning through the wordlist during temporary network outages. - (enhancement) added Camaleon CMS without adding active probes. - (enhancement) added Evolution CMS fingerprint detection. - (enhancement) added strong UMI.CMS fingerprint detection rules. @@ -27,9 +25,10 @@ v5.16.2 (31.06.2026) - (enhancement) added conservative MogutaCMS fingerprint detection without active probes. - (enhancement) added Ruby on Rails fingerprint detection with conservative passive CSRF, Rails UJS/Turbo, asset-pipeline and Rails error markers while avoiding standalone Rack. - (enhancement) reduced `--sniff malware` false positives for standard Bitrix admin login pages by allowlisting the built-in hidden `auth_frame` iframe only when strong Bitrix login markers are present. +- (enhancement) `--sniff secret` now detects additional low-noise token patterns, including GitHub fine-grained tokens, Square-style tokens, leaked bearer headers and expanded credential assignments. - (ui) clarified Runtime Diagnostics queue accounting by showing consumed items, submitted HTTP jobs, and pre-request skipped items separately. - (ui) clarified runtime pause/resume behavior by making the Ctrl+C pause prompt visible after in-flight worker output drains and by documenting Enter/C continue and E/Q abort semantics. -- (dictionary) cleaned and normalized the internal directories list (+1244 potential interesting paths). +- (dictionary) cleaned and normalized the internal directories list (+1247 potential interesting paths). - (docs) added a `Mastering OpenDoor` companion documentation page for the upcoming article series. - (deps-dev) [PR#115](https://github.com/stanislav-web/OpenDoor/pull/115) bump ruff from 0.15.13 to 0.15.14 in the python-runtime-dependencies group. diff --git a/pyproject.toml b/pyproject.toml index 1c9f3a2e..7e3f554e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,6 +18,7 @@ extend-exclude = [ ".docs-venv", "build", "dist", + "examples", "htmlcov", "site", ] From 90b5bf743506ea0d1f88d9597105b3dea8e19c19 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Sun, 31 May 2026 17:03:12 +0300 Subject: [PATCH 40/42] Finalize 5.16.2 release notes and assets --- examples/screenshots/01-local-lab-startup.png | Bin 0 -> 20550 bytes examples/screenshots/02-lab-smoke-test.png | Bin 0 -> 529984 bytes .../screenshots/03-fingerprint-summary.png | Bin 0 -> 52440 bytes examples/screenshots/04-baseline-summary.png | Bin 0 -> 66839 bytes examples/screenshots/05-sniffer-findings.png | Bin 0 -> 110629 bytes examples/screenshots/06-html-report.png | Bin 0 -> 229764 bytes examples/screenshots/cli.png | Bin 0 -> 100721 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 examples/screenshots/01-local-lab-startup.png create mode 100644 examples/screenshots/02-lab-smoke-test.png create mode 100644 examples/screenshots/03-fingerprint-summary.png create mode 100644 examples/screenshots/04-baseline-summary.png create mode 100644 examples/screenshots/05-sniffer-findings.png create mode 100644 examples/screenshots/06-html-report.png create mode 100644 examples/screenshots/cli.png diff --git a/examples/screenshots/01-local-lab-startup.png b/examples/screenshots/01-local-lab-startup.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8342db6f5a965e4b29861a092e6da5cb7224f6 GIT binary patch literal 20550 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⋘8J^plNbG&%sf;&&Q#4@5yYfR|G1$u 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

#0~T$ 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℘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�aNL4lV*@vR2B9 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

?* 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 nBH;dVB<~XonDjI~d{zjX#e2MCx-D(QmJ0zM!IV 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 IWzD|-fA?6XK>z>% literal 0 HcmV?d00001 diff --git a/examples/screenshots/03-fingerprint-summary.png b/examples/screenshots/03-fingerprint-summary.png new file mode 100644 index 0000000000000000000000000000000000000000..3ab6f9c13b79988756e350029cc71fbb1a95d011 GIT binary patch literal 52440 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 literal 0 HcmV?d00001 diff --git a/examples/screenshots/04-baseline-summary.png b/examples/screenshots/04-baseline-summary.png new file mode 100644 index 0000000000000000000000000000000000000000..c41da67b26692528b76fa8c70d675aa1984926ba GIT binary patch literal 66839 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

mJKrvkWdqUPntS)de@h0Z0;vl>yWPiN-ZU$Y>S5 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 z z7+e~L+;hL~6f2Kzz9JRPGAn&=**JmNQ&B6@9mH6~V#VUIIREpEv>;W3Y!_xyt8emG zQ3)-aR!gze7tdA83`jZ5>>5gh+UoKm`Qu2>mCaVuFR1Qr+6qG{gMBde#u(>ANoaik5L3oc|78Q;c*T1CkBi(b^jng?5^kxC(GX0L*G+E-9(B?M_-aSP1c-rSXPVHqj!B{63*a1LmDfbswgXiK`uuwO=G+Oyd zjA+%!*2qvnKx%T_Hmm7Y8ny{Jwy7`I(;WqtwL~shva4Me0k4pq=R!0T?|oWOzi$dU z>}!QS;9^__;?>LpGu)XwAYZ+e!LZNrpltv^t8n1R0(teSa50i3El0i*#1ticrDMwQxCp(LqOpON1*rhXL411 zN#j+AS&dG`Q~b+bVsY>Kiyyy0Ec?lP9*xG38>Fwk@81%Zq53;Ao4}khFM33qr=mOe z)sz-39svH(g9m?X3SD-E>-(vVa3!qexpTf&of*r8vjF-Z)9A2J@d1gv%ZjOCv{+!& z1C^cDbjeW1j@`dW%AJrEt5ugB;;vZ7h0()t>E*q3|1gn>q8Rea=iZta$E?WxQWfdL1xN3Lh=hV2b0BTFh68Bx`(pa4z(h z=^*O`T?3W|T+*u6${$uOipITQ?Otu%Q0h{_I+R0B*y`;N(VoS?#RvtA?m;$n5x9vt z)+E-cL%ibr5juY$R~SmE$4-Ux^stmFM{)}nFaKqiv6my>JL-;JxF1eE^|&PlLU=^S zcS{@Vx4Zie)koQhGdzd4m95t0e>Q$ri?Eqdmb>UANqHKO*t_oQ1Y3@O|K1RkOBK$j zWuf9BIU7E8=FOeJsU(U*f+u0XL%q{eB>>@f4y#+K{@XQ5&1=GY=jSgwDlQ`rl9(g9 zbz(kxc8$~VNTUGs4XsDDiv@ap;aMiezu-Ro)Q^CE-FPK{2=ddeU;@?tgG5GaE96O{ z-!ub?8&DqlSDaCnB}RZLEYc<30bmekX!I(~W*P2*k;QxbFL!9bFpen;5Pp=jwoaFI zc`s}d9Y*n*;ISzZq|ej$a`N&#+K#d%pC=bam+|)fBu5fQUm*^VucswE&VD8Gg6lKRTjTH_&dh5`pW# z)c~yC9cmFv4M3%^5Rja%zl8@iccr4?$aBLO+;Yq7W5@}^C!^}v=hc<0%|T(#mAEbs zt_lM)P&E#V7O7Tp5ND;A#=cEck5RxZaenT}!it6SL~y3MJ(_+}-5U`Q zO1cYvN86wOu>B(5^XN&7O1dW|%z)l*Y^noZW}9`c!rx;20H_qjnmoM5tbP1H%`LD$ zJr%P_9C4q)nolz30N@+V{w{YD;N~$Es}%ym=nMm zM^tZv;UhcDA=Y8u@Oa~8pngy|n6xW2Vft&I?YD{u?N?Yoy-O3lRgq?x%D@C(Dhu$k zi^N?R)F3*%O}MEvUbou6J75ZI0gt(GVs7KVoj-N89?-x+YZ7>I*1CITti=qVhCzDz z{&>jj9xB~H=}^uenM#8nW`lx`S(*XHnw?%rGhTJcWCVV%aBPSe_vm;PMLGLk8_zEJ z#teJwrzFBh+9|v?9&x_0$EftH_Ka6~U5xqVdFWNY%+A_pB6GvhHX`>Avz*+hLu|&D zLUsg#6lV_|H?oPPNb2Co81_#o`1NUZvxK_NHcEz@jJ*tnl>dYCx+kF6UR$&~E@BXfH!AumPOB&xfPx(vDA1?lHMoJyH+7_1EwHQ7!xPb*muHlp!AMEiVq5s zX8{e#lyDVN!AcAY*ISXPk;x%2sD=xOpx&vI#C7+59atZzgoYEFO&0{bqbcfheGl$; zjsUIgg#QubZDqZE3^fP%bnDA-&~1PX`Xl6Dg~qaRkHW^h_gkMni^>_3atDK4z5h!z z$X3KNA9$8ByjL-wowtE`?z#llzscIL?-G;2{R^YmwAG&Xd-(* z#^wgvR-3NR)}(`f8DQ>a#nD_)yIyR4wj43(!mCFM+p=!= z=C@K@lOf2Q*-6zIwd2h0#5zKlUQUh_M?(WSK+RlUy7EA;=AQsBG)Rv96(63PQvRP+ zM$c?7o+h93@C7d?1FuJ6kHWh#_~3$fLV|K&G8Gq_ztlEb92G3F;TE=J9vzKLQiwCz zfbQN!QK+JxQU7ohTaYWFL__cjGOnfmlR)YYTRxoz|*dk~UqIBJf( zCbhTCLfX%Oqv~n&=HFMjs3MAqNax10s{z&1YBwz&Ed_(6^v)&fA-0_DJGHCPrGU{3 zEcyd#Ch&_#6uM=z@MlROrj+Di~ddF)&YfJk)2a-yKvIInbU#B>5Te*s#EH3EsSw z)M~CbEf=3blfA7PWWWpn-sVt-4*jTF_dDBStUyV-YKyswOcerzI3k!4Qymx}ZVF&A zMd}#xP53|xI-YlGK3M!+6@EIAFEv>}ET+ijjpO1G@xkk)5oQE?Nx7yG>@QF5@vQbA6 z@@|1Tl)`(*EV-v0DS|dq(OQ#_4EYJZOV~s_=5{8agojqXAm8DiObT^=aeSYHf`8kU z7?|GdNgth5!-Tn2($<*gj0Jwb@r(3>#MnCU%vQhgGHnq@KJ5R z_-fEfVP)kh@5;Z9W@56a6k(mBs+|*Vj(wBuKlapvG6)K1N9UQQ0xyzNtfPrjd zQ3)B4lh!lcmuJ0c;Fet#@IWm;S)Podw(K4IWJn4Jj{kc*jL4 z)Hpe@33UGBi7^jHQvJ_X<)7;k`+anymlch6?Wd`nt!j$tYd#oX3VmDV5xiju|9md) z=di%;%v9q3!OWdFMhtl>$3#Tr7Pp&P3}>d12f$AT{iY~|A<&B6Y>N?Bo2>lUT0K(@ z1c<*=FTbRl8%O%8hrAW3tJn23Roxa^Un#L%w$_!tsy9g=w3SA>FdjcRKt*OfDmUrW z*3aUwm~Hl*dL$dP6Z(O+@^jX!Eg6}Ai?lK#9XHIiiT@7%R@SD2`u^@$k0Zfx0c10^ z70u!8^pS>rLX=_L2HMw>Ns3_CmH8yWRgj$M3!_VqoZ4rPrcC|y$TJPR({La+b%lwd5`oEQ?YS{3&2)oPAMHE6=-DNsypT4e(ceOxI0lm9Ngc+d-}HgUT$N-0`^kz0O%$jg}mO+ora(-lR)`d?P#?t2PwCEq)}8v#H7qE9pVCW3rJEZnc% z?fZzGR6euHMX&DNJHA#lZ(Zei%g9NCiW$67LH!0pL*JYko*I6B!IQ#yiZE~8z->76{00Tma5aHUT@hR-BFffU_B}tXy-tJLE*$~ZL8|}8z+FKb$|k< zCNUgj(P{fyij4)w&_TW9aFUjQ{kNg;FArjx-oWc3orptIe_h%JTX+U6nQPxr1CA+$|)JumjbUeTJ8Z1GHvx) z)YsUv$HN{lFo&0RhgK(l)#3al;XP=zT4$RX`t-wz=jXS(3o~4WWVJ7%LH6!(GIVJ> z7?}7aE)_dE&RR%kMU5pJs8WSn6{1-UIWHFZEhwShU$E-k)!rGFBL-J#50dCMyzKt;db2)&C(_q4RzyGHJ?Q4c!SJcKCbUNc02~C?&CC@7CCN>H|mBa)$y7UQ0 zLj_~?NNxF9IH@>PzB@OJ=(o^zCzrCO#f4Hb6Q&2^%@2~##43qGE`2CH9-NiR8sHLN zm$Ytp>g>^#=vFhZ{v{!X>!}8FMDAH4f~d-4P;>6P({6*PBfGxI%1Zc1IsU`j5jsO& z+*2p|POdVs`?9+LLEa1+W(MA`vU#=+vP^9ds+r zF28?hMGnA4fT5VoahJg&72?&_2cx;ffxh# zbttu2jgD4GLzAzjV3nL0|7$H%2N1eL9G@Lz*@S03xK!x=R#9-wa}EqT;It_|laahV z7K?A25i>@C%g|)9AT~I+WzcziUV7d?S9LOilF%2w+Yye&Rx8FH7pt*f>wIL~qO`s; zTYdJcVq19A9Jz9Ot}}HwAWj)Ce zEt-RL8ClXR&pS@=b=HVa%=h!12U^XMsvAm$>$E5PP~S~#BmMbLsweA$P%ft6?HC*oH%Cfz;07hoW0v~_r3+hQCi08T~ty0Knh zFohox`ZZWzVunH~f>a=#))6=*i9UlQY=Cl%kUadTatl7VKQg8>hYn;SiBk_D-LMnl zf#cymBT@!ct!#uxFb6#iv5p3co4ad{5wa)47wlSzq#-ph@^I@ozjQXyrj@HqBlyC< zSy>&yEv5qqKoiY{W_~{isy?YS$w~F_&AHI>Q)_w1VS9!|L{P$)`3V+TZVx5uuFki; zM-ICD5>GOt3t~|w<`yywe}{RF26EJ>3^pd^pKW2h3NL3Ydhy(018WY}l089ovpeEt z@uJzZ(S}|^u6N>A7dw)kZMqeGcv1aNCBz3+{IiK331=#h!}g}6Qj!PT;tzJ_OxwBP zBE?v#JWzZmD?Fga{8h$flOSgx>YCxhQkzYKue33?{6fgcT0oi=V9L6g>MYIn|h&vMz?^RoPMNy-|Lk% z=lK;MbQ8h4U6SGrZ*BLR`dE)ZbF6P&6e^ySs(*}N(usc-IY`J+-J7GoiZ7>$qiAa6 z|EV#!B~go}!OLF&?PyqpMv|QkOfL$%<{tz9D%x?_V3vKaowa)x31BeRLUy*Q70^;&xMwQaB zj1mSAz7|}CVMo8nA|777Su6tS&C#N=F+sKmYvL=9)we0sEG+WIq)lCxlaT%@P1x?( zF{@tg`bVOtnDMPGmpM4eUU_XJNy8(~e}3P~kE87eapzyyk^h-HapQBf7W{IPHCMJ^ z>MHIP4mc!?s;&}?(IN+}D;84WW_^qr0A#U|?SDZQA0t~Xw=_%YuqE$!%y=FOw`%W_ z$U%fa=M*Q@&3&}8n;4UAK>bEQ*5geY`yMs(k8-rM{PK^M+V8;q_bEEWCKr>n#~I7~ zkKcX<3?SJrxXWDEtktOUf?{V|ulcZzV$nF{*s4wRf(9l<~6oTllN`?nO->HaN0rDk$4|h8|J$>BhUoK6rJsCJ%u; zzf?oyg@ned*Is{lBmM!3(euJtk-nm0h4$>;5BiitrH#fCf~#He2{;{8LCaa4QD6j5 z_)Yq0V^^^|i59%z$d{&5tA%I_?!Toi*G_CDnf#yc2aP7JZfZ{GE{pym!D~!Og!tXv zO)7VllWL_Eqz@8IS(O=y7NYnoGB^j6OM^ID6`)sM_1U|r_-;y$8YqaCsV(VjFV)J1 zs&#m@f{V3&pACLTU6kz2nRwAh>xg~`uAY~n-#80BQX#6s1KFS#Oa`JCAw-7RFA!da zVxHp}3-C+(Vs#eO-G?X^sp#B?FtocYUzdPi3Ji#9-8$Z@J@Efv+mFmw_3^=<5PEs~ zV*tep8LW6N9(3)6BpAd0xc*DQRo&=b1u;>3i&Ly}Ma$f{vH+Olt6@8|eDgv`N;zwv zB2Z^Nh65mlI1zHgd|I>+;x+a`x7}PKVDnvb>wSU2IrBxS9+B1veA69ar7fLR$Jf&X z3YeYX#-{~jlusW%QdYhUCiEz+BbWq>7@RwjnQ4!Q!XP3a27t+gmiGztrk7iYkR!j6hM8gVm>$G3qEl|X& z;*uGFeD-WKVA=$O8yjofCij#xO6Le6V|e$q3~}6-O);M^2}PMv|EN5M{<;d+gT!16 zxmoh{pn%bGoh%IB+q#Y7t$H|&0Yis_0SPK{Hb}vyJEUoy3WiP^?GsR{x!-qcd zTvfWCkM38|Vh6Ubbp5}bD5vGa`d^JR2pmJ~aOFEHzrPMOprAo|MvW9*@^n*d5LLfYs$wV1_d}XCyJ)U%^g6v$6M{X%2zWs%7m%G;pNJ z(;p`pbsaA^jONDQS!l|%9n&M#mKjf^9Gmq?OwRMoRmXX*Doaa7?$jBH|J?o+H*NO{ z!`aUOI|oP;_}uy3vsYzJdvmbo*tu&l;9eSZu@NFeTqK=)PWTr-GiPWD6U>&ze|<6S z!?{m-QLibwT#Q+P6iOU%yjQTjI!uQ)UCxgUa%AWPYKQuA9tWqQf>gul$J&0Dmv5Yj z<(VjVC;@?&kL=w>a!%qRr?YxEF_n>$U|RsEv2Ol?&tLQ2YoZQ){QheLTkXb%=xFmI zK=}N^60KN{4W&4pK0$k{{XriiuDNA=`!VgNS|{lB;6tNkR@UNCX@R)cpxZ@Tvk%-k zhFa74^0QBBiP4_{7LZW6a~F%{+}$Wx?IrBUO3tSuQsnV$1>yYD0b3e)_t^-vi^_kz z-fp=CHNt{>yZFF27z{cPZ%lPqJchKj=}|%$U%?%%Cc7N zuzNH588mO~h&OBh6xy-glT!uWWXm3iKTY6mZ(QzWWQWi(vbUW=ZGKt0#H{S>*Xxp0 zz>g*mbzJ!1gG5i8|2RT5r=X~tX_)Do8DRkeumBL~L%R4E!S5YDL6KFKs1DjM196SGmBeidowbUdCW zPyMjN1q+3_1HNv|)&y3gH{dCoS#^ZSn)clBiMymXq`ryAy z8!<{C?GJ#GVy?Ov3Ba8qkYd3&K72WaI$#S(fBS|ZXnMu~6IW5ErLYHDog}=j)vroS z?c^FEOyyvIP~p%l242qm!#ZgNV6-Pp=nR{NpVl+&OuIefuVt&xe09 zdxpUt6K(h=izVWy(|io)56|fPzWjl2CU&k#Qt6w55@~*~&d;!6PZ}4` zk$>LQ0oaO%fcq+U5v`6}>>)KnV=h+e0MbDn+XB)J_^o{G%3AYQP)3A>Ax3C;X2`j( z%66u7F%|j`3XyC^x`WPIHl!p7rs}AuNE(iSC{Mzn@7>qh$`DHXorANiji#zYmF_F9 zKH0VxHI>ePCih3y8}c+-f-6IQbXKIskv87SsXS>S^#|lZZ5CDnNhSFENy6>qx7t{S z_T|x}hvJ5SMyns=X%F7zE%N$tf*b6bu@=GSz){=(5^vCI`FN8RSzOC}qc&ne-^_qu z%<59h3S4pm1>qWYdtT?9sDb7saS1mT6Y~DjfmMVqG^_jHWirMxv&DhVb;3=mFI%Jv zW_pvLWn#lfl!2dk>TKW4d*z!;%OVXxc7FZSvd{OgPE+gXOto^G0A~*E3pk#>49xqE z|Hc_23fi`pp!ElMABo^ynfVzk9l_vm7cr>kj#at1UELt(S5V z$Z}~}ThzB;=?T|2SaW}$7xA&ss;K?9`ot$!jNZ=2$>}H*z#;7b&_crlKV(clwq{m( zC9yIaYyr>byPcmoZ}m+;w)>yM&4B%A^p1j(c>Zr!K&jv{QEc&HGtj0@I&}}QLVqjw z-}J*}aO4)JZHSQx0LKJzCx0>_OJ-g2aXH#ICF^>vE_sP1;P}}&Ex!#LFh~8sZ?kD} zDRL_-m+=bKRs%HAQ-<5@efkeAZ<|ek z^r!&loma#{4?7G;tjd12FII?uUd$xyIWIz(o65ni4*WtII8-p1k06=C_l(Ud~` zeYvouaKg`}zx#PHW4W~|zo;i`e(b(u^zdR$rQyhxs)g%k3!*>*-kwrLn12F|AowV4 z+FIb8=j-|{KE-6nZ4jxQy6J2)gbl;DiVvA|P)}?z7}OuWFRUqR5Bhi=W~XvEmSi8- zTY&)R)vLOqNA&^4f#dgbT2R&e9k4zf5lNG4N+)8G7~ubz0SNfE0Fi-nX3J)jgkKqU zV}tG1H}s`!f=2T>c)T&ERgXIDF&Ox1CwW4+9!5zo~qw zX7Sv)SP@9MuVsO?NL-g;t8pc;bEZdCq^c*k1Wge!jG*42j`>I@jg2+2&OD0u?Rz(K zJ5)nwZUjI_zc)Nr@^^5)s(-^51VmpMCJCFF-=lmIcXwNm3Lx)u9K}@pu>eSq zXlGC7wby&+{lefQY43m7Ad*UO;*<;sxr28D)6tZ$K`f6GciT8h{ra=Zbt^?NwbhcVTGz)p5vt!h`+-c$i`N}XBsC}#MrsrC=3P!U!WOho zy3)p8<3cH`0YFCA85zn-+n^&jKfJAu)xqZ}MC^4~Db%$&Jk)Z4>;KQ{V&K#e_+zDj z?tsHN{pU}v6OlLPwUm9w=E$Twxj18Bm0{NXhUxP7Y{Kmo`eqaWel&y;dm*rJ;ev0jLE?Nffvg| zeU0?gun&Es1T_8B-2WScc;I7>^jtK+RN?JOQhS<7muMHlx?H4Rr3axw-7wIGKGrv~bz;cEls=r72cNdo{x_D6f5GtfR(7 zZ*=#XHG0kbSSNh@vH7UV$wgWvByZ}eFrY{0yt$`(Cs~zcFx%pR`9}We+Cm*M^7l2x zVUVPbvoJw z{xZ`8imE>ch|9#yX3HFovK(@k5F#D&2}x)`4NLS1SUn#Yl%54HR{M`zZZr>?UgPC! zr+tGM2PtwVNQ#UB$P8epaiPsduOrm38KU8`6}uku&o~mtsAcKYs1yf|!c)1jYfYjA zo&QIc&(v>flKb)UISN$8x4b*I`%j}O$_vOCu--FOqnj-kq}siwuhashH)4e2irJ*H z{dlL<qhdN&lK9bp8lz@jtaY$EC==4ho2Rw^JFuZ!_0(tp3E%7*RY3eyDVQQ5Oyc5dF-*jhaDHK=z-PR2!WFRmv(Wvo zx3~XOy}K*qxz^0>s}Q+smW0f&<5vQnddsHwI~jVi(pn8lokD{pX$wY74uJ;#)Qio& z4|`V*#h3X6B+9rj_u8jx)7AG=3>0xyF6W-r-k1KFb}1iBDRa+C+F7${=(7Z=P}8S` zKiRm8Q4D(-r1lL@pAbm299z;V5ed);vbY=cK<=K=`)(q#Qdk8K_5DK@2SAZE9p^bp z%=$b&S#Zt{-N^UE;BzRH*%~OV?TsaUSL;1AbsENeJF{F{y``7*b5cac2~*sxZCf6)kk z5y1eDIsAdQ4kz(kpQ6dwR@21@w@3!rEurUZvQj6U+7t>dLp6@~HHkZvRgW~l-yfrz zUx(Z2I0pg690{FF_(lfY&lRxy2Geyalh4S9yyX8$B;@3>{11^(1GP5bm0w^G2%3>m zQ#kY)?NieomnladLyW`P`z#NLL@{nKoSRt~X8oc<#a1J&v6`~Iltd# zryzE|=h|>NIS5ONjWsZQSeyH2xwu)mh&bakpJSSo7D)V8k9)hyrAChdo=@XJLryqC z{@~#va<73*LE42vumix?nma&v1kzDx~cMmu!0GHx=uIo(g2@$+keT?D@U zaA_>hA7*(eZi#yM=@mNKXGKH`QQ%pLl_`Ds?wG=(=?P^AH(01Q4-s>H)4ggq&wd`9 zuMlM;Mp=m~p$0e9Ht;SLr$c3=*mXSnye=*KNfx%&h&4&8Gh+2UfNm^>T!U~W&5!AW zH0k?PN!BZi#{-hKgeGYuQ&)@7Gq&E^-vlx@=LlYXOoM}XnTsnfYcJInk9sbO9uyjk z#8#GOJZWL%L%An|bwAIuXy7+p_jzpkLVRIOE3_%!<+Z#B6ze>)9k)JU7{B+Vn_DxL~PVcZ5_vy zZ1m|>>UALHuQawCWqy`rX8d#qSQ(mRRE%eflw?D+TWd@zW3#!%`HxlYRjl2EiU90u(psn9IN+l{fX+hVo4>fyRHT4pt(QMFvdyb^@GX`3j+*ta*MXp4F zVBmcbtA{#Qix$tHh!`|qA89TmTzxW|DG7Xw@K6Si5y?Eq;`w-cKKeyU>T|@dkMPnw z!>5!ECpE0-8jylHYgIAvvo-rq*SapRBGTj; zH}$43RQsR}$IDI0#l4a}K$YPGsdwui>hmEf67Sr#CDp_#(?s{3$>Y=+tH{eX>7R@> zF5I>K>tsg1OpF&l-3g~Z=PgBLxhFR1{dPIJ-Z8RR9Gv1yt6fz#3LdUJGC-Hst#zf! zr~HsK-3n(*OWfU0%sFGuohkm#tI0M2}0oZ;YgSW~VT;GwDjXKP{i5HM6`tED_@WS;3?;cRj8h8wYCN845=Vs^(r zJ7BAU-a8ek;;sN!O z;!jv8WFb0=yhOS;l5Lx3DJns4BV%=$)WWTfZT%*Ar*7a6W6J~5ypz)u6J8n+;9f3b z(@Eb2y)u(#@ZonF8i)6$Ng(%LUC(DLAeaAn8Zp{A9C1m9VnB9&78>T+HvGSBZL!mi zzh!bVYeiU*@3jF>>WK69+8ffr8(KBjBJyeLpo~ev)8y_9ip^W zCTE7fjmyx*BeF6p&hGgy?h=DOJ+h(`M6_TOo}#t8(9o^jlJz9IGu%Fn3To?+U+pm+@_Ri$MshWOeosp7OUq+?IKx9PxNtR&)Jo8-Ig(CQ zV-?rD74T`K*a)7-&0TEIR>JMKN2R0Xw>J+mdPFY^qoILr#>s|usXLxBrN8#0^l%N% zHaZById)||V3bBROnv+{FD0bHOe_-=wGF)~xKVuVGf#JRob{ERzTG9&Pl7)00{b0> zdmY_hjE~_D&w?YYUeu#^TJ|+n>bf0_89m-T08?=>_tD93ck?XHm+w$8X1BS-6-Jj6 zSR%&Po8jiK4<*X3dW^GLynm-njKw#xy0s;&nuQ?~4UR}~+M-a>`z!^p5J z84Gc3FvIjxxXc4TR9}1w9DT=0k^HiSa3>hO*>fet}Yfc$=xcR;_vUF*UH{= zeNCD!!ez$pJ0)7ndKln^E;W@cat(iSQeixSdQj8fmaD|RlT_XgA|5m5E#jH4EltcI zL)0=A2PiSuRCBlI+$u|;tMq$>k{q*FAxwbBS*%>C_{{^xU#!EntvN(6rY}Gj)GTuB z(#~9D9oBqP?i-}rx>b5Je(W8}25AmtriCDOpxxm4R@^RKo~*9&5LTj|J$mTfZ@2_m zf4m*iW^%aL9yauHrgl1*kzzW+TeN=B^m=j-v}J9Y=gnYF2oO}RCO#$V*;zH+z{0^9 zNa3_QY?|4d{pBv>!MMcmN~yPLrHB1`C<#N8w9yuV9ZXJ za*u~>c#KNj>kC_JW1U)mMrlO-cD>PU+GsNSD2G-(F_etHIYeOtQ}P#NM`E+9lZUfl z5Qn*vg@s)^0^T$I;Ii!7+ zt?K{P-j#o|we4|pDJ3y9VrrCDYpS6rf*7i5)*FhNqm)wBn$?gtl^RN@;VM!?(V}Xm z#+rxL7?KhtB&d0&Me61DzPH}H?}xkIAMnoluCvbG>vPU`pU*nqwf9=z^Zo1yEhmCD zNm$cX0AK7g^&a}Y+UrVyb&TPFA-coufqU2P$aQxW>v<^%f?CPwBb#9J$egF9spVKo zb=TzWj%SKA)wVW~QW1_1*oB6>d^IeVtgMRd*aMul${E+yH%Obu1}x@2h6V?xHEc8N zz5TTou@@ASiVzBk6<>Nd7fM}qEO1yX<~oDvnm{j2H0H;du3y-kSa^&Ce_>WQB)!DJ z+_J;k$D_=7o`h$32gq0l>M2ui-kI)n^Vn37EPOS--luZY^;nYnXkAjd1=zoqLA2zuShm@EM-y*i1A%9IPBuZXea733^0`% z(t`_6mV+Lr`k=ptgPWasOT72^`|$NJBMIPy>7(Ytk~xf;HpE^Uo7)pE56a#E~Zw$E;`cKeQLyB1D%K(=m$gu z6~aN7srZ?&9*W`;t)-@R_QFCtwAY7APb^BVio z6=1f+8KGsR7AGQ`w);q#0$rcu6MmH_tD?hu^OCwFaeLb5({PH2d}rXTy7hJ-hE}u` z-U_jKo+y9oA5W?3DIqNdtCU=36UKL(ByBKAw`2`*ps?n+^A8K>B zdib8O$eVkWiL4?fnq(HXKl-uQ_Vy^a}|y&hOAp2z`>A%SUBf z>7@0yS@aWPv~_}O@D?=a4DrOXmD{>u!Yd6fY(2=Oc8zYI*x!CHgB{wh5@&5YdwM*m ze&``ypNU3CfS2Gae|bi;Tr_9UPUXGpGOfwt0d}-91|^Aljd^) zR;{I7A=^T{s*-}C#%eqFiu3Ui{RZz*T0nb5$OX40KtFkQjlZ_1$1F$%K$ z_Vo8fw`XJOw|5mIW885 zoomnVpf=DqXT_E@TV)ZD+q5=j4sD+#PF|?lj@YKea<#}3^IU+@thX$Tg5HzBnn%%^ zY8hjSFIwN8?x=QD^eGgYCPxgORoypWru>STtTkmqVkG*br4)p`1JUCYx-!%u{sb+> z!7vYg{?-N#7tc^u?dC3`1r=5wAVos54Cc`4q@=S6KCcSHZlCG2I*g@J?<}M4>u>AB8tyk)P z4yn+l;mr+GDFnBmQNm`{Ywv{A5xJTYvAl&~3&q(r>KpSdEsfc#41(HZB~1vJKf!m> z=b4>Rs`RF0yUG+3i5~jRhVOK>1z0*5yN^A~mJUt|CmLKgzAN#ZO#bY4Ipk6i;W#~v zIZ5SMlO;bbH9SVFol!D5M=mW-dfgV78MPoU@_Aya`OWljrKH_L z%VCb4W>~?|kO}d1kBRDU&tZ+*DR!zKTBkGK%$bCVKb-XDCblUqR}$lBK2Xm+To zYQz?WSb&&aQR=X*o7T64eqPfSblY7T!+W-z(=$g^wQciz13qnVbdnUgS@Se_O{^>#Dm3){$|%7( zTkJPs`b6M92Pf->IC@+6vTaGo=q?uX7TY6}@4#r5AxwxqVh`1nP7X6@qr6+@=V)be zS0c$g78vN3JUi7|9(d~pt zqHr38X1&D?wY@(pTWQ;9gXGH}s(?q7EdefVTe4lg5kvKBH|Rg?7x$SQTZ&zC*+%0B)tZa< zKwA|-sqRt@Z+**O-nb|rq6<%DWHXDH)E4c3*!wsI_jq_;tp)h{l~L$uOR_ux8M@~2Oq6niPa z`Es@XH7_zRx=x`xsthzeL6-KnIlKspPwU%H(_PO~j`MJ8+iCrgQ}z88^?i=>WVz-1 zXi<|_Tom~k?k>8$=jn^-WOXsiLu4_D&i9?mxtd^}AEi4nc2|7gLX#1EaQjtDy$O}l zJst|ZK{h9l_F;^tu`^LJGlizd9v$>b5Oo4!!j#i7uuo~1 z_U-M9*H3VXc+DP=#f$m`D+(@s%TLQh_#VTVC@<&x$%%Aqqaw(i9lsAWom~?bk7a30 zNl8UKFTU9>31$f>>xOn2x6*WkdTAxleD|I5B;#Y%?xhc#A*Q7=R>(6$X5`0 zafq%poy3zMp$pQHIL)yp&Z!0~1^iQX5WbgUL;LwlWvaHh1Oi!@pFj9@4?XuA91~5j zQ&9#G#gZc<#~#n{Agejw|0f0b;!KW|Tn4D}9SQ8n6SZ-<{me3g)4x7j?_p6LdbT)v zdq&ro2qQxiVfPtW(NDGGU^(!|gf?z* z7{eb1(4;@vGgC>%{EV@wwy*LGLuI{)P5Kb`#h8up!rLJ!7=CjE67|3=XI zVQ`-8NTIRXG|;tQ{{PFibHa y#NUDRlxQ?qgoOtC{w)vxC+iOq|5vh*$0u|IdY8)x2rW9=as8^PUa5}L<9`5hPX|c= literal 0 HcmV?d00001 diff --git a/examples/screenshots/06-html-report.png b/examples/screenshots/06-html-report.png new file mode 100644 index 0000000000000000000000000000000000000000..4cc10e2657ce617a3b0af4c3f49a9614de182bd4 GIT binary patch literal 229764 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 z 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 A$p8QV literal 0 HcmV?d00001 diff --git a/examples/screenshots/cli.png b/examples/screenshots/cli.png new file mode 100644 index 0000000000000000000000000000000000000000..1747e5b94265bde70fca15f999fd5462bf8c3cb9 GIT binary patch literal 100721 zcmeFZby$>NyEZ&D0t(X7(jg(;B}#WUh;)p|&4+6nawtetGP5!|H8ntIoD_aLk2t+O)ji83U6;nwTE-C*1FyP^rj?;xxOB`d`wN(Sf8-LUjJSm^Ty*(FS`=)B;$OS zyrZGpm-~Gm{CkDmx0CNcRw;e*c}d`?G^$aYp*N4Lm6cS?BU6x2uPOtD%=Xcqu`me> zQ?zo!uDw0IDJMQZYnRGD>^r(PsC-Ua2Z7L&&BM}--eK&jLVolh=ij4-WDxEx^Xz3S zG~Rklc?X6!Z^zK9HD|@3qC2OE!oOQ)^qLw;QfFn~@&m-?Kr%&}=G${&7%BVHD9m>J z*OxR$o!yCy&pnX7@b{yK%j>RJ47Ch&UL;zbePm2c6?&^(hC}!)K#!wmsqai;Xtzbt zq~x&;j=dhd;>q2zu6XkqswE|C&Bv~7 zp(wp(`sT9W5$sd+jv5cW?CzI4QB&W3N+o9CIKLZ2U&du8S=pbzI}%)LK#%*Dyi(|H zBC!bX_94!lIG%43OWo)`YU}>$i}X*m&f?u-Ukl_#2oYPgGf64E5KNOyBE3E&N*?$)O8&PwRONot~(AK^|c zTxCp|F+kCs8yjhy@}N@UNlC1}jd}^xl%;zFrQeocJu1BTgd6a*6%8o>jqqbmuq_Sw z>&bfZ`Z)=0MZ6y`c=XZrtOsfVt?W5CUV4_;q z(#3dpe=J9<6Di_uFN!%0$(1e+v;0djIn)Rmx~o^RK6+?eFOBqKwysmCAGdH*e0z?| z{U-gk{=r?v$29i?NTqRTC+5*>akpQ*YAd8J>J=nECVjI|C^mOLJ^5$A)3AQ2T0U(f zdh$6-)YX79so+!jYkrAZqG4G3r86||R*W;F6NKU^iQp}a;}>)d(y=0|HQa1PwR*q`g-slz7wgErraDtfY;#%g8^GI;M23?R5E8&0C7pbLFEKKdJZ!@eSWl ze(rtDRJO0jGXl{Yb1u4V-yY7o`}3_gFW17$N1>EInK0JhCh?f27I8;E%QeX5$W<+< z_8Iu@v()`9nK7Axz}jl5LhxxjUYQ4e-~wrEMRWx@r0Y=j5Nr;fk0mtUM@pwMBp^S< zXJ%)w_jNfA1R)ajZK|ImOOtMrbFkY%l0<0LzF}!mlr-Y~hzq_oEADHCqbop88o~1v z#iSJ%HAoE)ZC;8y9=WM6Xx|9kDnQ8WE;D+z8Ic|?Ypc#j6s=(2A2c?Qo*(olXhx8@ zR=%g?y(ua`DGmZ^(r~5l@TDJ+z7~HRq(^)7n&b`P+^I1M6FWH{4C`)?fxO@tyT-L!a|6OZ!sYpot(Y>=fHw*!?

i{@9_0vX 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%0DPToNc0Hk>P7b(WtzGF9+M}o@* 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 Date: Sun, 31 May 2026 17:10:05 +0300 Subject: [PATCH 41/42] Avoid Bandit false positive in malware delimiters --- src/core/http/plugins/response/malware.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/core/http/plugins/response/malware.py b/src/core/http/plugins/response/malware.py index bafbc5eb..ff0fad77 100644 --- a/src/core/http/plugins/response/malware.py +++ b/src/core/http/plugins/response/malware.py @@ -174,7 +174,21 @@ class MalwareResponsePlugin(ResponsePluginProvider): SECURITY_DOCUMENTATION_MIN_MARKERS = 3 SECURITY_DOCUMENTATION_CONTEXT_WINDOW = 800 URL_ECHO_CONTEXT_WINDOW = 180 - URL_ECHO_TOKEN_DELIMITERS = ' \t\r\n\"\'<>`{}|^' + URL_ECHO_TOKEN_DELIMITERS = ''.join(( + ' ', + '\t', + '\r', + '\n', + '"', + "'", + '<', + '>', + '`', + '{', + '}', + '|', + '^', + )) PATH_ECHO_EXTENSIONS = ( '.php', '.phtml', From b883e3cf9048fcdc5207e7d6463e58497d55d204 Mon Sep 17 00:00:00 2001 From: John Doe <5216760+stanislav-web@users.noreply.github.com> Date: Sun, 31 May 2026 18:58:57 +0300 Subject: [PATCH 42/42] Fix Vulture warning in visible text parser --- src/lib/browser/browser.py | 69 +++++++++++++++++++++++++++++++++++--- tests/test_lib_browser.py | 32 ++++++++++++++++++ 2 files changed, 96 insertions(+), 5 deletions(-) diff --git a/src/lib/browser/browser.py b/src/lib/browser/browser.py index bb14cf4d..2a40e969 100644 --- a/src/lib/browser/browser.py +++ b/src/lib/browser/browser.py @@ -23,6 +23,7 @@ import time import uuid from urllib.parse import unquote, urlsplit, urlunsplit +from html.parser import HTMLParser from .session import SessionManager, SessionError from src.core import HttpRequestError, HttpsRequestError, ProxyRequestError, ResponseError from src.core import FileSystemError @@ -55,6 +56,59 @@ class _WafGuardStop(Exception): """Internal sentinel used to stop wordlist streaming after WAF guard triggers.""" +class _VisibleTextExtractor(HTMLParser): + """Extract visible text while ignoring script/style-like blocks.""" + + HIDDEN_TAGS = {'script', 'style', 'noscript', 'template'} + + def __init__(self): + """Initialize the bounded visible text collector.""" + + HTMLParser.__init__(self, convert_charrefs=True) + self._hidden_depth = 0 + self._chunks = [] + + def handle_starttag(self, tag, _attrs): + """Track hidden HTML blocks. + + :param str tag: normalized start tag name + :param list _attrs: parsed tag attributes, unused + :return: None + """ + + if str(tag or '').lower() in self.HIDDEN_TAGS: + self._hidden_depth += 1 + + def handle_endtag(self, tag): + """Leave hidden HTML blocks. + + :param str tag: normalized end tag name + :return: None + """ + + if str(tag or '').lower() in self.HIDDEN_TAGS and self._hidden_depth > 0: + self._hidden_depth -= 1 + + def handle_data(self, data): + """Collect visible text chunks only. + + :param str data: text node content + :return: None + """ + + if self._hidden_depth <= 0: + self._chunks.append(str(data or '')) + + def text(self): + """Return normalized visible text. + + :return: whitespace-normalized visible text + :rtype: str + """ + + return ' '.join(' '.join(self._chunks).split()) + + class Browser(Filter): """ Browser class """ @@ -2912,11 +2966,16 @@ def __visible_text_without_scripts(body): :rtype: str """ - value = re.sub(r']*>.*?', ' ', str(body or ''), flags=re.DOTALL | re.IGNORECASE) - value = re.sub(r']*>.*?', ' ', value, flags=re.DOTALL | re.IGNORECASE) - value = re.sub(r'<[^>]+>', ' ', value) - value = re.sub(r'\s+', ' ', value) - return value.strip() + parser = _VisibleTextExtractor() + try: + parser.feed(str(body or '')) + parser.close() + except Exception: + value = re.sub(r'<[^>]+>', ' ', str(body or '')) + value = re.sub(r'\s+', ' ', value) + return value.strip() + + return parser.text() @staticmethod def __is_soft404_suppressor_response(response_object, primary_bucket, response_code): diff --git a/tests/test_lib_browser.py b/tests/test_lib_browser.py index 9a4ac5f9..970ff8c4 100644 --- a/tests/test_lib_browser.py +++ b/tests/test_lib_browser.py @@ -2849,6 +2849,38 @@ def test_js_cookie_reload_challenge_helper_rejects_useful_pages(self): self.assertIsNone(actual) + def test_js_cookie_reload_challenge_helper_handles_multiline_script_end_tag(self): + """JS cookie challenge guard should ignore script bodies without regex HTML filtering.""" + + response = SimpleNamespace( + status=200, + headers={'Content-Type': 'text/html'}, + data=( + "

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 DHX*B?q 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