Repository Analysis

blacklanternsecurity/bbot

The recursive internet scanner for hackers. 🧡

13.9 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of blacklanternsecurity/bbot, a Python project with 10,151 GitHub stars. SynthScan v2.0 examined 129,540 lines of code across 581 source files, recording 1151 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 13.9 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

13.9
Adjusted Score
13.9
Raw Score
100%
Time Factor
2026-07-13
Last Push
10.2K
Stars
Python
Language
129.5K
Lines of Code
581
Files
1.2K
Pattern Hits
2026-07-14
Scan Date
0.28
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 1HIGH 162MEDIUM 84LOW 904

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 1151 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Docstring Block Structure130 hits · 528 pts
SeverityFileLineSnippetContext
HIGHbbot/core/modules.py348Preloads all BBOT modules. This function recursively iterates through each file in the module directories STRING
HIGHbbot/core/modules.py596 Preloads a BBOT module to gather its meta-information and dependencies. This function reads a BBOT modSTRING
HIGHbbot/core/modules.py866Loads a BBOT module by its name. Imports the module from its namespace, locates its class, and returns it. STRING
HIGHbbot/core/modules.py926Generates a table of module information. Constructs a table to display information such as module name, type, aSTRING
HIGHbbot/core/event/base.py2318 Creates and returns a new event object. This function serves as a factory for creating new event objects from STRING
HIGHbbot/core/event/base.py2413 Creates an event object from a JSON dictionary. This function deserializes a JSON dictionary to create a new eSTRING
HIGHbbot/core/helpers/misc.py33 Check if the given input represents a domain without subdomains. This function takes an input string `d` and rSTRING
HIGHbbot/core/helpers/misc.py68 Check if the given input represents a subdomain. This function takes an input string `d` and returns True if iSTRING
HIGHbbot/core/helpers/misc.py103 Check if the given input represents a PTR record domain. This function takes an input string `d` and returns TSTRING
HIGHbbot/core/helpers/misc.py126 Check if the given input represents a valid URL. This function takes an input string `u` and returns True if iSTRING
HIGHbbot/core/helpers/misc.py156 Check if the given input represents a URI and optionally return its scheme. This function takes an input strinSTRING
HIGHbbot/core/helpers/misc.py191 Parse a string containing a host and port into a tuple. This function takes an input string `d` and returns a STRING
HIGHbbot/core/helpers/misc.py262 Retrieve the parent domain of a given subdomain string. This function takes an input string `d` representing aSTRING
HIGHbbot/core/helpers/misc.py297 Generate a list of parent domains for a given domain string. This function takes an input string `d` and generSTRING
HIGHbbot/core/helpers/misc.py349 Retrieve the parent URL of a given URL. This function takes an input string `u` representing a URL and returnsSTRING
HIGHbbot/core/helpers/misc.py381 Generate a list of parent URLs for a given URL string. This function takes an input string `u` representing a STRING
HIGHbbot/core/helpers/misc.py411 Determine the better HTTP status code between two given codes. The 'better' status code is considered based onSTRING
HIGHbbot/core/helpers/misc.py455 Extracts the subdomain, domain, and suffix from a URL string. Args: data (str): The URL string to be pSTRING
HIGHbbot/core/helpers/misc.py478 Splits the hostname into its subdomain and registered domain components. Args: hostname (str): The fulSTRING
HIGHbbot/core/helpers/misc.py507 Returns an abbreviated representation of the hostname by removing the TLD (Top-Level Domain). Args: doSTRING
HIGHbbot/core/helpers/misc.py528 Generates all parent IP networks for a given IP address or network, optionally including the network itself. ASTRING
HIGHbbot/core/helpers/misc.py551 Checks if the given string represents a valid port number. Args: p (str or int): The port number to chSTRING
HIGHbbot/core/helpers/misc.py572 Determines if the given string is a valid DNS name. Args: d (str): The string to be checked. RetuSTRING
HIGHbbot/core/helpers/misc.py598 Checks if the given string or object represents a valid IP address. Args: d (str or ipaddress.IPvXAddrSTRING
HIGHbbot/core/helpers/misc.py634 Checks if the given object is an instance of an IPv4 or IPv6 type from the ipaddress module. Args: i (STRING
HIGHbbot/core/helpers/misc.py695 Convert a string to its corresponding IP address or network type. This function attempts to convert the input STRING
HIGHbbot/core/helpers/misc.py737 Computes the SHA-1 hash of the given data. Args: data (str or dict): The data to hash. If a dictionarySTRING
HIGHbbot/core/helpers/misc.py758 Decodes the input data to a UTF-8 string, silently ignoring errors. Args: data (str or bytes): The datSTRING
HIGHbbot/core/helpers/misc.py780 Encodes the input data to bytes using UTF-8 encoding, silently ignoring errors. Args: data (str or bytSTRING
HIGHbbot/core/helpers/misc.py809 Recursively decodes doubly or triply-encoded strings to their original form. Supports both URL-encoding and baSTRING
HIGHbbot/core/helpers/misc.py851 Generates a random string of specified length. Args: length (int, optional): The length of the random STRING
HIGHbbot/core/helpers/misc.py892 Extracts key-value pairs from a JSON object and returns them as a set of tuples. Used by the `paramminer_headers` mSTRING
HIGHbbot/core/helpers/misc.py936 Extracts tags and their text values from an XML object and returns them as a set of tuples. Args: xml_STRING
HIGHbbot/core/helpers/misc.py997Intelligently extracts words from given data. This function uses regular expressions and optionally wordninja to exSTRING
HIGHbbot/core/helpers/misc.py1054Finds the closest matching strings from a list of choices based on a given string. This function uses the difflib lSTRING
HIGHbbot/core/helpers/misc.py1138Reads a string or file and yields its content line-by-line. This function tries to open the given string `s` as a fSTRING
HIGHbbot/core/helpers/misc.py1201Chains together list elements, allowing for entries separated by commas. This function takes a list `l` and flattenSTRING
HIGHbbot/core/helpers/misc.py1260Lists files in a given directory that meet a specified filter condition. Args: directory (str): The directoSTRING
HIGHbbot/core/helpers/misc.py1314Reads a file line by line and yields each line without line breaks. Args: filename (str or Path): The path STRING
HIGHbbot/core/helpers/misc.py1335Generates numbers with variable padding and returns them as a set of strings. Args: n (int): The upper limiSTRING
HIGHbbot/core/helpers/misc.py1362Constructs a network location string from a given host and port. Args: host (str): The hostname or IP addreSTRING
HIGHbbot/core/helpers/misc.py1395Finds the full path of the first available executable from a list of executables. Args: *executables (str):STRING
HIGHbbot/core/helpers/misc.py1420Search a nested dictionary or list of dictionaries by a key and yield all matching values. Args: key (str):STRING
HIGHbbot/core/helpers/misc.py1445Recursively format string values in a dictionary or list using the provided keyword arguments. Args: d (UniSTRING
HIGHbbot/core/helpers/misc.py1470Recursively search a dictionary's values based on provided regex patterns. Args: d (Union[dict, list, str])STRING
HIGHbbot/core/helpers/misc.py1512 Grouper groups an iterable into chunks of a given size. Args: iterable (iterable): The iterable to be STRING
HIGHbbot/core/helpers/misc.py1533 Splits a list into a specified number of approximately equal parts. Args: alist (list): The list to beSTRING
HIGHbbot/core/helpers/misc.py1552 Creates a directory and optionally checks if it's writable. Args: path (str or Path): The directory toSTRING
HIGHbbot/core/helpers/misc.py1589 Generates a string representation of the current date and time, with optional microsecond precision. Args: STRING
HIGHbbot/core/helpers/misc.py1621 Extracts the file extension from a given string representing a URL or file path. Args: s (str): The stSTRING
HIGHbbot/core/helpers/misc.py1647 Renames a file by appending an iteration number as a backup. Recursively renames files up to a specified maximuSTRING
HIGHbbot/core/helpers/misc.py1682Get the latest modified time of any file or sub-directory in a given directory. This function takes a directory patSTRING
HIGHbbot/core/helpers/misc.py1710Get the file size of a given file. This function takes a file path as an argument and returns its size in bytes. IfSTRING
HIGHbbot/core/helpers/misc.py1781 Extract email addresses from a body of text This function takes in a string and yields all email addresses fouSTRING
HIGHbbot/core/helpers/misc.py1803 Attempts to find and extract the host portion of a string. Args: s (str): The string from which to extSTRING
HIGHbbot/core/helpers/misc.py1918Verify if the given sudo password is correct. This function checks whether the sudo password provided is valid for STRING
HIGHbbot/core/helpers/misc.py1947Generate a formatted table from the given rows and headers. This function uses the `tabulate` package to generate aSTRING
HIGHbbot/core/helpers/misc.py2001Convert a TimeDelta object into a human-readable string. This function takes a datetime.timedelta object and converSTRING
HIGHbbot/core/helpers/misc.py2037Convert a bytes size to a human-readable string. This function converts a numeric bytes value into a human-readableSTRING
HIGHbbot/core/helpers/misc.py2072Convert a human-readable file size string to its bytes equivalent. This function takes a human-readable file size sSTRING
70 more matches not shown…
Hyper-Verbose Identifiers277 hits · 289 pts
SeverityFileLineSnippetContext
LOWbbot/constants.py34def is_valid_scan_status_code(status):CODE
LOWbbot/core/config/models.py181def partition_sensitive_config(config, model, *, keep_sensitive: bool):CODE
LOWbbot/core/event/helpers.py13def _get_sorted_event_classes():CODE
LOWbbot/core/event/helpers.py105 def _sanitize_and_extract_host(self, data):CODE
LOWbbot/core/event/helpers.py158 def _sanitize_and_extract_host(data):CODE
LOWbbot/core/event/helpers.py167 def _sanitize_and_extract_host(data):CODE
LOWbbot/core/event/helpers.py183 def _sanitize_and_extract_host(data):CODE
LOWbbot/core/event/helpers.py193 def _sanitize_and_extract_host(data):CODE
LOWbbot/core/event/helpers.py209 def _sanitize_and_extract_host(data):CODE
LOWbbot/core/event/helpers.py223 def _sanitize_and_extract_host(data):CODE
LOWbbot/core/helpers/misc.py1893def can_sudo_without_password():CODE
LOWbbot/core/helpers/misc.py2681 async def _cancel_and_drain_remaining():CODE
LOWbbot/test/conftest.py53def _patch_python_module_loader():CODE
LOWbbot/test/conftest.py176 async def patched_request_batch_stream(self, urls, threads=10, **kwargs):CODE
LOWbbot/test/conftest.py224def bbot_httpserver_allinterfaces():CODE
LOWbbot/test/test_step_1/test_field_metadata.py13def test_field_records_sensitive_and_mandatory_in_json_schema_extra():CODE
LOWbbot/test/test_step_1/test_field_metadata.py31def test_global_config_marks_known_secrets_sensitive():CODE
LOWbbot/test/test_step_1/test_field_metadata.py40def test_module_preload_extracts_sensitive_and_mandatory_sets():CODE
LOWbbot/test/test_step_1/test_field_metadata.py59def test_modules_table_needs_api_key_derived_from_mandatory():CODE
LOWbbot/test/test_step_1/test_field_metadata.py72def test_no_secrets_config_redacts_module_and_global_secrets():CODE
LOWbbot/test/test_step_1/test_field_metadata.py105def test_secrets_only_config_extracts_sensitive_fields():CODE
LOWbbot/test/test_step_1/test_field_metadata.py131def test_auth_required_property_derives_from_config():CODE
LOWbbot/test/test_step_1/test_field_metadata.py148def test_credential_connection_fields_are_sensitive():CODE
LOWbbot/test/test_step_1/test_manager_scope_accuracy.py37async def test_manager_scope_accuracy_correct(bbot_scanner, bbot_httpserver, bbot_other_httpservers, bbot_httpserver_sslCODE
LOWbbot/test/test_step_1/test_manager_scope_accuracy.py803async def test_manager_scope_tagging(bbot_scanner):CODE
LOWbbot/test/test_step_1/test_manager_scope_accuracy.py830async def test_scope_accuracy_with_special_urls(bbot_scanner, bbot_httpserver):CODE
LOWbbot/test/test_step_1/test_manager_deduplication.py6async def test_manager_deduplication(bbot_scanner):CODE
LOWbbot/test/test_step_1/test_target.py406async def test_asn_targets_integration(bbot_scanner):CODE
LOWbbot/test/test_step_1/test_target.py444async def test_asn_targets_edge_cases(bbot_scanner):CODE
LOWbbot/test/test_step_1/test_target.py494async def test_asn_blacklist_functionality(bbot_scanner):CODE
LOWbbot/test/test_step_1/test_target.py559async def test_asn_event_json_serialization(bbot_scanner):CODE
LOWbbot/test/test_step_1/test_target.py588async def test_asn_resolution_failure_aborts_scan(bbot_scanner):CODE
LOWbbot/test/test_step_1/test_target.py608async def test_asn_resolution_failure_retries(bbot_scanner):CODE
LOWbbot/test/test_step_1/test_target.py706def test_blacklist_get_invalid_host():CODE
LOWbbot/test/test_step_1/test_target.py783def test_target_comments_url_fragment_not_stripped():CODE
LOWbbot/test/test_step_1/test_target.py796def test_target_comments_blacklist():CODE
LOWbbot/test/test_step_1/test_target.py812def test_target_comments_seeds():CODE
LOWbbot/test/test_step_1/test_target.py827def test_target_comments_from_file(tmp_path):CODE
LOWbbot/test/test_step_1/test_target.py852def test_strip_comments_helper():CODE
LOWbbot/test/test_step_1/test_validate_preset.py6def test_validate_preset_valid():CODE
LOWbbot/test/test_step_1/test_validate_preset.py11def test_validate_preset_typo_top_level():CODE
LOWbbot/test/test_step_1/test_validate_preset.py18def test_validate_preset_typo_in_config():CODE
LOWbbot/test/test_step_1/test_validate_preset.py26def test_validate_preset_wrong_type():CODE
LOWbbot/test/test_step_1/test_validate_preset.py34def test_validate_preset_unknown_module():CODE
LOWbbot/test/test_step_1/test_validate_preset.py40def test_validate_preset_unknown_module_option():CODE
LOWbbot/test/test_step_1/test_validate_preset.py49def test_validate_preset_wrong_type_on_module_option():CODE
LOWbbot/test/test_step_1/test_validate_preset.py58def test_validate_preset_unknown_module_in_config():CODE
LOWbbot/test/test_step_1/test_validate_preset.py65def test_validate_preset_multiple_errors():CODE
LOWbbot/test/test_step_1/test_validate_preset.py83def test_validate_preset_non_dict():CODE
LOWbbot/test/test_step_1/test_validate_preset.py89def test_validate_preset_config_modules_as_list():CODE
LOWbbot/test/test_step_1/test_validate_preset.py97def test_validate_preset_module_dirs_as_string():CODE
LOWbbot/test/test_step_1/test_validate_preset.py103def test_validate_preset_modules_as_string_no_cascade():CODE
LOWbbot/test/test_step_1/test_validate_preset.py112def test_validate_preset_non_string_module_entry_no_crash():CODE
LOWbbot/test/test_step_1/test_validate_preset.py132def test_validate_preset_top_level_typo_suggests_preset_field():CODE
LOWbbot/test/test_step_1/test_validate_preset.py147def test_validate_preset_file_missing_returns_error():CODE
LOWbbot/test/test_step_1/test_validate_preset.py156def test_from_dict_raises_on_typos():CODE
LOWbbot/test/test_step_1/test_validate_preset.py169def test_from_yaml_string_raises_on_top_level_typo():CODE
LOWbbot/test/test_step_1/test_validate_preset.py181def test_from_yaml_config_typo_deferred_to_validate():CODE
LOWbbot/test/test_step_1/test_validate_preset.py195def test_validate_preset_interactsh_server_accepts_valid():CODE
LOWbbot/test/test_step_1/test_validate_preset.py202def test_validate_preset_interactsh_server_rejects_invalid():CODE
217 more matches not shown…
Deep Nesting240 hits · 222 pts
SeverityFileLineSnippetContext
LOWbbot/cli.py39CODE
LOWbbot/cli.py346CODE
LOWbbot/core/modules.py197CODE
LOWbbot/core/modules.py347CODE
LOWbbot/core/modules.py457CODE
LOWbbot/core/modules.py535CODE
LOWbbot/core/modules.py595CODE
LOWbbot/core/modules.py865CODE
LOWbbot/core/modules.py1003CODE
LOWbbot/core/modules.py572CODE
LOWbbot/core/config/models.py181CODE
LOWbbot/core/config/logger.py80CODE
LOWbbot/core/event/helpers.py66CODE
LOWbbot/core/event/base.py2307CODE
LOWbbot/core/event/base.py460CODE
LOWbbot/core/event/base.py660CODE
LOWbbot/core/event/base.py1197CODE
LOWbbot/core/event/base.py1228CODE
LOWbbot/core/event/base.py1606CODE
LOWbbot/core/event/base.py1752CODE
LOWbbot/core/helpers/misc.py891CODE
LOWbbot/core/helpers/misc.py1192CODE
LOWbbot/core/helpers/misc.py1444CODE
LOWbbot/core/helpers/misc.py1469CODE
LOWbbot/core/helpers/misc.py2111CODE
LOWbbot/core/helpers/misc.py2313CODE
LOWbbot/core/helpers/misc.py2522CODE
LOWbbot/core/helpers/misc.py2616CODE
LOWbbot/core/helpers/misc.py2663CODE
LOWbbot/core/helpers/misc.py2854CODE
LOWbbot/core/helpers/misc.py2891CODE
LOWbbot/core/helpers/files.py12CODE
LOWbbot/core/helpers/files.py52CODE
LOWbbot/core/helpers/command.py14CODE
LOWbbot/core/helpers/command.py80CODE
LOWbbot/core/helpers/command.py234CODE
LOWbbot/core/helpers/validators.py78CODE
LOWbbot/core/helpers/yara_helper.py38CODE
LOWbbot/core/helpers/wordcloud.py89CODE
LOWbbot/core/helpers/wordcloud.py327CODE
LOWbbot/core/helpers/wordcloud.py368CODE
LOWbbot/core/helpers/wordcloud.py499CODE
LOWbbot/core/helpers/url.py105CODE
LOWbbot/core/helpers/helper.py329CODE
LOWbbot/core/helpers/diff.py218CODE
LOWbbot/core/helpers/diff.py256CODE
LOWbbot/core/helpers/diff.py350CODE
LOWbbot/core/helpers/interactsh.py289CODE
LOWbbot/core/helpers/ratelimiter.py38CODE
LOWbbot/core/helpers/web/web.py99CODE
LOWbbot/core/helpers/web/web.py346CODE
LOWbbot/core/helpers/web/web.py429CODE
LOWbbot/core/helpers/web/web.py518CODE
LOWbbot/core/helpers/web/envelopes.py115CODE
LOWbbot/core/helpers/depsinstaller/installer.py153CODE
LOWbbot/core/helpers/depsinstaller/installer.py354CODE
LOWbbot/core/helpers/dns/brute.py85CODE
LOWbbot/core/helpers/dns/dns.py181CODE
LOWbbot/core/helpers/dns/helpers.py19CODE
LOWbbot/test/conftest.py136CODE
180 more matches not shown…
Excessive Try-Catch Wrapping205 hits · 221 pts
SeverityFileLineSnippetContext
LOWbbot/cli.py389 except Exception as e:STRING
LOWbbot/cli.py397 except Exception as e:STRING
LOWbbot/cli.py443 except Exception as e:STRING
MEDIUMbbot/cli.py381def akeyboard_listen():CODE
LOWbbot/core/core.py163 except Exception:CODE
LOWbbot/core/modules.py112 except Exception as e:CODE
LOWbbot/core/modules.py423 except Exception:CODE
LOWbbot/core/modules.py563 except Exception as e:CODE
MEDIUMbbot/core/modules.py554def make_adapter(annotation):CODE
LOWbbot/core/config/files.py72 except Exception as e:CODE
LOWbbot/core/config/__init__.py6except Exception:CODE
LOWbbot/core/event/spill.py162 except Exception as e: # pragma: no cover — defensiveCODE
MEDIUMbbot/core/event/base.py366def host_metadata(self):CODE
MEDIUMbbot/core/event/base.py1829def http_status(self):CODE
LOWbbot/core/event/base.py279 except Exception as e:CODE
LOWbbot/core/event/base.py501 except Exception as e:CODE
LOWbbot/core/event/base.py1006 except Exception:CODE
LOWbbot/core/event/base.py1840 except Exception:CODE
LOWbbot/core/event/base.py2207 except Exception as e:CODE
LOWbbot/core/event/base.py2235 except Exception as e:CODE
LOWbbot/core/event/base.py2242 except Exception:CODE
LOWbbot/core/event/base.py2377 except Exception as e:CODE
LOWbbot/core/event/base.py2467 except Exception:CODE
LOWbbot/core/helpers/misc.py622 except Exception:CODE
LOWbbot/core/helpers/misc.py626 except Exception:CODE
LOWbbot/core/helpers/misc.py1579 except Exception as e:CODE
LOWbbot/core/helpers/misc.py1773 except Exception as e:CODE
LOWbbot/core/helpers/files.py45 except Exception as e:CODE
LOWbbot/core/helpers/files.py91 except Exception as e:CODE
LOWbbot/core/helpers/files.py139 except Exception as e:CODE
LOWbbot/core/helpers/files.py164 except Exception as e:CODE
LOWbbot/core/helpers/command.py225 except Exception as e:CODE
MEDIUMbbot/core/helpers/command.py220def _write_proc_line(proc, chunk):CODE
LOWbbot/core/helpers/ntlm.py71 except Exception:CODE
LOWbbot/core/helpers/ntlm.py79 except Exception as e:CODE
MEDIUMbbot/core/helpers/ntlm.py68def ntlmdecode(authenticate_header):CODE
LOWbbot/core/helpers/validators.py35 except Exception as e:CODE
LOWbbot/core/helpers/validators.py115 except Exception:CODE
LOWbbot/core/helpers/validators.py121 except Exception:CODE
MEDIUMbbot/core/helpers/validators.py32def validate_wrapper(*args, **kwargs):CODE
LOWbbot/core/helpers/asn.py77 except Exception as e:CODE
LOWbbot/core/helpers/asn.py99 except Exception as e:CODE
LOWbbot/core/helpers/asn.py111 except Exception:CODE
LOWbbot/core/helpers/wordcloud.py361 except Exception as e:CODE
LOWbbot/core/helpers/wordcloud.py394 except Exception as e:CODE
LOWbbot/core/helpers/url.py171 except Exception:CODE
LOWbbot/core/helpers/diff.py68 except Exception:CODE
LOWbbot/core/helpers/diff.py205 except Exception as e:CODE
LOWbbot/core/helpers/interactsh.py154 except Exception:CODE
LOWbbot/core/helpers/interactsh.py266 except Exception as e:CODE
LOWbbot/core/helpers/bloom.py73 except Exception:CODE
MEDIUMbbot/core/helpers/bloom.py70def __del__(self):CODE
LOWbbot/core/helpers/web/web.py595 except Exception as e:CODE
LOWbbot/core/helpers/web/web.py667 except Exception as e:CODE
MEDIUMbbot/core/helpers/depsinstaller/sudo_askpass.py28 print("Error: Encrypted password or encryption key not found in environment variables.", file=sys.stderr)CODE
LOWbbot/core/helpers/depsinstaller/sudo_askpass.py35 except Exception as e:CODE
MEDIUMbbot/core/helpers/depsinstaller/sudo_askpass.py36 print(f"Error decrypting sudo password: {str(e)}", file=sys.stderr)CODE
LOWbbot/test/conftest.py438 except Exception as e:CODE
MEDIUMbbot/test/conftest.py439 print(f"An error occurred: {str(e)}")CODE
LOWbbot/test/conftest.py482 except Exception:CODE
145 more matches not shown…
Unused Imports114 hits · 108 pts
SeverityFileLineSnippetContext
LOWbbot/cli.py8CODE
LOWbbot/core/config/merge.py9CODE
LOWbbot/core/config/models.py14CODE
LOWbbot/core/event/__init__.py1CODE
LOWbbot/core/event/__init__.py1CODE
LOWbbot/core/event/__init__.py1CODE
LOWbbot/core/event/__init__.py1CODE
LOWbbot/core/event/base.py24CODE
LOWbbot/core/helpers/misc.py18CODE
LOWbbot/core/helpers/misc.py20CODE
LOWbbot/core/helpers/misc.py20CODE
LOWbbot/core/helpers/misc.py21CODE
LOWbbot/core/helpers/misc.py23CODE
LOWbbot/core/helpers/misc.py24CODE
LOWbbot/core/helpers/misc.py27CODE
LOWbbot/core/helpers/misc.py27CODE
LOWbbot/core/helpers/misc.py27CODE
LOWbbot/core/helpers/__init__.py1CODE
LOWbbot/core/helpers/__init__.py2CODE
LOWbbot/core/helpers/__init__.py3CODE
LOWbbot/core/helpers/__init__.py4CODE
LOWbbot/core/helpers/helper.py76CODE
LOWbbot/core/helpers/helper.py79CODE
LOWbbot/core/helpers/helper.py79CODE
LOWbbot/core/helpers/helper.py79CODE
LOWbbot/core/helpers/helper.py79CODE
LOWbbot/core/helpers/helper.py80CODE
LOWbbot/core/helpers/helper.py80CODE
LOWbbot/core/helpers/helper.py80CODE
LOWbbot/core/helpers/helper.py80CODE
LOWbbot/core/helpers/helper.py81CODE
LOWbbot/core/helpers/helper.py81CODE
LOWbbot/core/helpers/helper.py81CODE
LOWbbot/core/helpers/helper.py81CODE
LOWbbot/core/helpers/web/__init__.py1CODE
LOWbbot/core/helpers/depsinstaller/__init__.py1CODE
LOWbbot/core/helpers/dns/dns.py13CODE
LOWbbot/core/helpers/dns/__init__.py1CODE
LOWbbot/test/bbot_fixtures.py1CODE
LOWbbot/test/bbot_fixtures.py2CODE
LOWbbot/test/bbot_fixtures.py4CODE
LOWbbot/test/bbot_fixtures.py5CODE
LOWbbot/test/bbot_fixtures.py13CODE
LOWbbot/test/mock_blasthttp.py33CODE
LOWbbot/test/mock_blasthttp.py33CODE
LOWbbot/test/mock_blasthttp.py33CODE
LOWbbot/test/test_step_1/test_command.py2CODE
LOWbbot/test/test_step_1/test_field_metadata.py10CODE
LOWbbot/test/test_step_1/test_db_models.py7CODE
LOWbbot/test/test_step_1/test_manager_scope_accuracy.py12CODE
LOWbbot/test/test_step_1/test_manager_deduplication.py1CODE
LOWbbot/test/test_step_1/test_target.py1CODE
LOWbbot/test/test_step_1/test_validate_preset.py1CODE
LOWbbot/test/test_step_1/test_depsinstaller.py1CODE
LOWbbot/test/test_step_1/test_python_api.py1CODE
LOWbbot/test/test_step_1/test_web.py5CODE
LOWbbot/test/test_step_1/test_scope.py1CODE
LOWbbot/test/test_step_1/test_presets.py4CODE
LOWbbot/test/test_step_1/test_dns.py1CODE
LOWbbot/test/test_step_1/test_gitdumper_safeguards.py10CODE
54 more matches not shown…
Cross-File Repetition20 hits · 100 pts
SeverityFileLineSnippetContext
HIGH…_step_2/module_tests/test_module_paramminer_headers.py0<html> <title>the title</title> <body> <p>hello null!</p>'; </body> </html>STRING
HIGH…tep_2/module_tests/test_module_paramminer_getparams.py0<html> <title>the title</title> <body> <p>hello null!</p>'; </body> </html>STRING
HIGH…st_step_2/module_tests/test_module_url_manipulation.py0<html> <title>the title</title> <body> <p>hello null!</p>'; </body> </html>STRING
HIGH…_step_2/module_tests/test_module_paramminer_cookies.py0<html> <title>the title</title> <body> <p>hello null!</p>'; </body> </html>STRING
HIGH…_step_2/module_tests/test_module_paramminer_headers.py0<html> <title>the title</title> <body> <p>hello aaaaaaaaaaaaaa!</p>'; </body> </html>STRING
HIGH…tep_2/module_tests/test_module_paramminer_getparams.py0<html> <title>the title</title> <body> <p>hello aaaaaaaaaaaaaa!</p>'; </body> </html>STRING
HIGH…st_step_2/module_tests/test_module_url_manipulation.py0<html> <title>the title</title> <body> <p>hello aaaaaaaaaaaaaa!</p>'; </body> </html>STRING
HIGH…_step_2/module_tests/test_module_paramminer_cookies.py0<html> <title>the title</title> <body> <p>hello aaaaaaaaaaaaaa!</p>'; </body> </html>STRING
HIGH…_step_2/module_tests/test_module_paramminer_headers.py0<html> <title>the title</title> <body> <p>hello administrator!</p>'; </body> </html>STRING
HIGH…tep_2/module_tests/test_module_paramminer_getparams.py0<html> <title>the title</title> <body> <p>hello administrator!</p>'; </body> </html>STRING
HIGH…_step_2/module_tests/test_module_paramminer_cookies.py0<html> <title>the title</title> <body> <p>hello administrator!</p>'; </body> </html>STRING
HIGH…t/test/test_step_2/module_tests/test_module_apkpure.py0<!doctype html> <html> <head> <title>"blacklanternsecurity" - android apps on google play</title> </head> <body> <a hrefSTRING
HIGHbbot/test/test_step_2/module_tests/test_module_jadx.py0<!doctype html> <html> <head> <title>"blacklanternsecurity" - android apps on google play</title> </head> <body> <a hrefSTRING
HIGH…st_step_2/module_tests/test_module_google_playstore.py0<!doctype html> <html> <head> <title>"blacklanternsecurity" - android apps on google play</title> </head> <body> <a hrefSTRING
HIGH…t/test/test_step_2/module_tests/test_module_apkpure.py0<!doctype html> <html> <head> <title>bbot</title> </head> <body> <meta name="appstore:developer_url" content="https://wwSTRING
HIGHbbot/test/test_step_2/module_tests/test_module_jadx.py0<!doctype html> <html> <head> <title>bbot</title> </head> <body> <meta name="appstore:developer_url" content="https://wwSTRING
HIGH…st_step_2/module_tests/test_module_google_playstore.py0<!doctype html> <html> <head> <title>bbot</title> </head> <body> <meta name="appstore:developer_url" content="https://wwSTRING
HIGHbbot/modules/paramminer_headers.py0inspired by https://github.com/portswigger/param-minerSTRING
HIGHbbot/modules/paramminer_cookies.py0inspired by https://github.com/portswigger/param-minerSTRING
HIGHbbot/modules/paramminer_getparams.py0inspired by https://github.com/portswigger/param-minerSTRING
Decorative Section Separators34 hits · 86 pts
SeverityFileLineSnippetContext
MEDIUMbbot/core/event/spill.py92 # ── Public API ────────────────────────────────────────────────────COMMENT
MEDIUMbbot/core/event/spill.py180 # ── Internal ──────────────────────────────────────────────────────COMMENT
MEDIUMbbot/core/helpers/dns/dns.py104 # ------------------------------------------------------------------COMMENT
MEDIUMbbot/core/helpers/dns/dns.py107 # ------------------------------------------------------------------COMMENT
MEDIUMbbot/core/helpers/dns/dns.py173 # ------------------------------------------------------------------COMMENT
MEDIUMbbot/core/helpers/dns/dns.py175 # ------------------------------------------------------------------COMMENT
MEDIUMbbot/core/helpers/dns/dns.py354 # ------------------------------------------------------------------COMMENT
MEDIUMbbot/core/helpers/dns/dns.py356 # ------------------------------------------------------------------COMMENT
MEDIUMbbot/core/helpers/dns/dns.py420 # ------------------------------------------------------------------COMMENT
MEDIUMbbot/core/helpers/dns/dns.py422 # ------------------------------------------------------------------COMMENT
MEDIUMbbot/test/mock_blasthttp.py55 # should_intercept, request, request_batch, ...) ──────────────COMMENT
MEDIUMbbot/test/mock_blasthttp.py156 # ── Batch-streaming entry point (per-call real_client) ──────────COMMENT
MEDIUMbbot/test/test_step_1/test_body_spill.py33# ── BodySpillStore unit tests ─────────────────────────────────────────COMMENT
MEDIUMbbot/test/test_step_1/test_body_spill.py240# ── _BaselineSnapshot unit tests ──────────────────────────────────────COMMENT
MEDIUMbbot/test/test_step_1/test_body_spill.py145# ── HTTP_RESPONSE event integration tests ────────────────────────────COMMENT
MEDIUMbbot/test/benchmarks/_eventloop_profiler.py31# ── Configuration ───────────────────────────────────────────────────────────COMMENT
MEDIUMbbot/test/benchmarks/_eventloop_profiler.py197 # ── Top coroutines by total time ────────────────────────COMMENT
MEDIUMbbot/test/benchmarks/_eventloop_profiler.py210 # ── Top coroutines by max single step ───────────────────COMMENT
MEDIUMbbot/test/benchmarks/_eventloop_profiler.py221 # ── Slow step log ───────────────────────────────────────COMMENT
MEDIUMbbot/test/benchmarks/_eventloop_profiler.py228 # ── Task count timeline ─────────────────────────────────COMMENT
MEDIUMbbot/test/benchmarks/_eventloop_profiler.py239 # ── Task breakdown at peak ──────────────────────────────COMMENT
MEDIUM…est/test_step_2/module_tests/test_module_cloudcheck.py66 # ── Parent-inheritance regression tests ────────────────────────COMMENT
MEDIUM…est/test_step_2/module_tests/test_module_cloudcheck.py126 # ── YARA prefilter short-circuit ───────────────────────────────COMMENT
MEDIUM…est/test_step_2/module_tests/test_module_cloudcheck.py144 # ── LRU cache on cloudcheck.lookup() ───────────────────────────COMMENT
MEDIUM…test/test_step_2/module_tests/test_module_lightfuzz.py4910# ---------------------------------------------------------------------------STRING
MEDIUM…test/test_step_2/module_tests/test_module_lightfuzz.py4912# ---------------------------------------------------------------------------STRING
MEDIUM…test/test_step_2/module_tests/test_module_lightfuzz.py5136# ---------------------------------------------------------------------------STRING
MEDIUM…test/test_step_2/module_tests/test_module_lightfuzz.py5138# ---------------------------------------------------------------------------STRING
MEDIUM…test/test_step_2/module_tests/test_module_lightfuzz.py5204# ---------------------------------------------------------------------------STRING
MEDIUM…test/test_step_2/module_tests/test_module_lightfuzz.py5206# ---------------------------------------------------------------------------STRING
MEDIUM…test/test_step_2/module_tests/test_module_lightfuzz.py5298# ---------------------------------------------------------------------------STRING
MEDIUM…test/test_step_2/module_tests/test_module_lightfuzz.py5300# ---------------------------------------------------------------------------STRING
MEDIUMbbot/modules/templates/gitlab.py90 # ------------------------------------------------------------------COMMENT
MEDIUMbbot/modules/templates/gitlab.py92 # ------------------------------------------------------------------COMMENT
Self-Referential Comments21 hits · 68 pts
SeverityFileLineSnippetContext
MEDIUMbbot/core/event/base.py796 # Create a shallow copy of the event firstCOMMENT
MEDIUMbbot/core/helpers/yara_helper.py22 # Create the complete YARA ruleCOMMENT
MEDIUMbbot/core/helpers/bloom.py23 # Create an anonymous mmap region, compatible with both Windows and UnixCOMMENT
MEDIUMbbot/core/helpers/web/envelopes.py29 # Create the classCOMMENT
MEDIUMbbot/test/test_step_1/test_target.py572 # Create an ASN event like the scanner does (bare int input)COMMENT
MEDIUM…ot/test/benchmarks/test_event_validation_benchmarks.py14 # Create a minimal scanner config to isolate event validation performanceCOMMENT
MEDIUMbbot/test/benchmarks/test_excavate_benchmarks.py124 # Create a mock HTTP_RESPONSE eventCOMMENT
MEDIUM…test/test_step_2/module_tests/test_module_websocket.py19# Define a coroutine for the serverCOMMENT
MEDIUM…st/test_step_2/module_tests/test_module_virtualhost.py160 # Create a dummy module that will emit the URL event during the scanCOMMENT
MEDIUM…st/test_step_2/module_tests/test_module_virtualhost.py767 # Create a dummy module that will emit the URL event during the scanCOMMENT
MEDIUM…test/test_step_2/module_tests/test_module_unarchive.py26 # Create a text file to compressCOMMENT
MEDIUMbbot/models/sql.py1# This file contains SQLModel (Pydantic + SQLAlchemy) models for BBOT events, scans, and targets.COMMENT
MEDIUMbbot/modules/hunt.py302 # Create a comma-separated string of categoriesCOMMENT
MEDIUMbbot/modules/lightfuzz/submodules/cmdi.py62 ) # Initialize the http_compare object and establish a baseline HTTP responseCODE
MEDIUMbbot/modules/output/postgres.py31 # Create the engine for the initial connection to the serverCOMMENT
MEDIUMbbot/modules/output/postgres.py39 # Create the database if it does not existCOMMENT
MEDIUMbbot/modules/output/nmap_xml.py86 # Create the root elementCOMMENT
MEDIUMbbot/modules/output/nmap_xml.py164 # Create a new document with the doctypeCOMMENT
MEDIUMbbot/modules/output/mysql.py30 # Create the engine for the initial connection to the serverCOMMENT
MEDIUMbbot/modules/output/mysql.py38 # Create the database if it does not existCOMMENT
MEDIUMbbot/modules/templates/sql.py91 # Create a session factory bound to the engineCOMMENT
Cross-Language Confusion12 hits · 50 pts
SeverityFileLineSnippetContext
HIGH…ot/test/test_step_2/module_tests/test_module_medusa.py9 stdout = "ACCOUNT FOUND: [snmp] Host: 127.0.0.1 User: (null) Password: public [ERROR]\n"CODE
HIGH…st/test_step_2/module_tests/test_module_docker_pull.py268 "created_by": 'RUN /bin/sh -c set -eux; \t\tsavedAptMark="$(apt-mark showmanual)"; \tapt-get updCODE
HIGH…st/test_step_2/module_tests/test_module_docker_pull.py302 "created_by": 'RUN /bin/sh -c set -eux; \t\tsavedAptMark="$(apt-mark showmanual)"; \tapt-get updCODE
HIGH…st/test_step_2/module_tests/test_module_docker_pull.py336 "created_by": "RUN /bin/sh -c apt-get update && apt-get install -y openssl gcc git make unzip cuCODE
HIGH…st/test_step_2/module_tests/test_module_docker_pull.py390 "v1Compatibility": '{"id":"e45a5af57b00862e5ef5782a9925979a02ba2b12dff832fd0991335f4a11e5c5","paCODE
HIGH…st/test_step_2/module_tests/test_module_docker_pull.py393 "v1Compatibility": '{"id":"e45a5af57b00862e5ef5782a9925979a02ba2b12dff832fd0991335f4a11e5c5","paCODE
HIGH…t/test/test_step_2/module_tests/test_module_ajaxpro.py9 null; r.error = {"Message":"Constructor on type 'AjaxPro.Services.ICartService' not found.","Type":"System.MissingMeCODE
HIGH…t/test/test_step_2/module_tests/test_module_ajaxpro.py54 <script src="ajax/AMBusinessFacades.AjaxUtils,AMBusinessFacades.ashx" type="text/javascript"></script><script type='CODE
HIGH…est/test_step_2/module_tests/test_module_trufflehog.py772 "created_by": 'RUN /bin/sh -c set -eux; \t\tsavedAptMark="$(apt-mark showmanual)"; \tapt-get updSTRING
HIGH…est/test_step_2/module_tests/test_module_trufflehog.py806 "created_by": 'RUN /bin/sh -c set -eux; \t\tsavedAptMark="$(apt-mark showmanual)"; \tapt-get updSTRING
HIGH…est/test_step_2/module_tests/test_module_trufflehog.py840 "created_by": "RUN /bin/sh -c apt-get update && apt-get install -y openssl gcc git make unzip cuSTRING
HIGHbbot/modules/lightfuzz/submodules/ssti.py14 collapse trick for engines that render `{{undefined}}` as ""),STRING
Over-Commented Block33 hits · 32 pts
SeverityFileLineSnippetContext
LOWdocs/scanning/configuration.md61COMMENT
LOWdocs/scanning/configuration.md81# Redact secrets (API keys, tokens, etc.) in the saved preset.ymlCOMMENT
LOWdocs/scanning/configuration.md101COMMENT
LOWdocs/scanning/configuration.md121 search_distance: 1COMMENT
LOWdocs/scanning/configuration.md161 # Suffix to append to user-agent (e.g. for tracking or identification)COMMENT
LOWdocs/scanning/configuration.md181 api_retries: 2COMMENT
LOWbbot/defaults.yml1### BASIC OPTIONS ###COMMENT
LOWbbot/defaults.yml21max_mem_percent: 90COMMENT
LOWbbot/defaults.yml61 # This is safe to changeCOMMENT
LOWbbot/defaults.yml101 user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/5COMMENT
LOWbbot/defaults.yml121 # which will retry API requests that don't return a successful status codeCOMMENT
LOWbbot/core/helpers/regexes.py21num_regex = re.compile(r"\d+")COMMENT
LOWbbot/test/benchmarks/__init__.py1# Benchmark tests for BBOT performance monitoringCOMMENT
LOW…est/benchmarks/test_intercept_throughput_benchmarks.py101 assert cloudcheck_idx >= 0, f"cloudcheck not in intercept chain: {[m.name for m in intercept_modules]}"COMMENT
LOW…test/test_step_2/module_tests/test_module_lightfuzz.py4461 ]COMMENT
LOW…test/test_step_2/module_tests/test_module_lightfuzz.py4561 "URL_UNVERIFIED for /secret-endpoint not emitted — cookie refresh failed; "COMMENT
LOW…test/test_step_2/module_tests/test_module_lightfuzz.py4641# in event metadata). When lightfuzz fuzzes a sibling field, the None comesCOMMENT
LOW…test/test_step_2/module_tests/test_module_unarchive.py201 assert extract_path.is_file(), "Failed to extract the test file"COMMENT
LOWbbot/models/pydantic.py41 return indexed_fieldsCOMMENT
LOWbbot/presets/subdomain-enum.yml21 # securitytrails:COMMENT
LOWbbot/modules/securitytxt.py1# securitytxt.pyCOMMENT
LOWbbot/modules/securitytxt.py21#COMMENT
LOWbbot/modules/medusa.py181COMMENT
LOWbbot/modules/builtwith.py1############################################################COMMENT
LOWbbot/modules/newsletters.py1# Created a new module called 'newsletters' that will scrape the websites (or recursive websites,COMMENT
LOWbbot/modules/dnstlsrpt.py1# dnstlsrpt.pyCOMMENT
LOWbbot/modules/dnscaa.py1# dnscaa.pyCOMMENT
LOWbbot/modules/legba.py161 # -C Combo wordlist delimited by ':'COMMENT
LOWbbot/modules/dnsbimi.py1# bimi.pyCOMMENT
LOWbbot/modules/dnsbimi.py21#COMMENT
LOWbbot/modules/internal/cloudcheck.py21 # LRU cache for cloudcheck.lookup() results. Many subdomains in a singleCOMMENT
LOW.github/workflows/codeql.yml1# For most projects, this workflow file will not need changing; you simply needCOMMENT
LOW.github/workflows/codeql.yml61 # This includes steps like installing compilers or runtimes (`actions/setup-node`COMMENT
Redundant / Tautological Comments19 hits · 28 pts
SeverityFileLineSnippetContext
LOWbbot/core/helpers/misc.py843 # Check if there's still URL-encoded or Unicode-escaped contentCOMMENT
LOW…t/test/test_step_2/module_tests/test_module_telerik.py173 # Check if the expected requests were madeCOMMENT
LOWbbot/scripts/benchmark_report.py57 # Check if benchmarks directory existsCOMMENT
LOWbbot/modules/azure_tenant.py289 # Check if Exchange Online is in the MX recordsCOMMENT
LOWbbot/modules/virtualhost.py739 # Check if this virtual host is externally accessibleCOMMENT
LOWbbot/modules/virtualhost.py882 # Check if HTTP codes are different first (hard failure)COMMENT
LOWbbot/modules/trajan.py210 # Check if it's a specific jobCOMMENT
LOWbbot/modules/reflected_parameters.py52 # Check if the probe parameter value is reflected AND the canary is notCOMMENT
LOWbbot/modules/iis_shortnames.py356 # Check if it's a ZIP fileCOMMENT
LOWbbot/modules/base.py865 # Check if module accepts seeds and event is a seed (only if event type is watched)COMMENT
LOWbbot/modules/lightfuzz/submodules/crypto.py268 # Check if the entropy of the data is greater than the threshold, indicating it is likely encryptedCOMMENT
LOWbbot/modules/lightfuzz/submodules/crypto.py800 # Check if cryptographic error strings are present in the response after performing the manipulation techniquesCOMMENT
LOWbbot/modules/lightfuzz/submodules/serial.py200 # Check if the value starts with any of the PHP serialized prefixesCOMMENT
LOWbbot/modules/lightfuzz/submodules/sqli.py168 # Check if the status code change is due to a WAF, not SQL injectionCOMMENT
LOWbbot/modules/internal/excavate.py398 # Check if the value is in the blacklist or starts with a blacklisted prefix.COMMENT
LOWbbot/modules/internal/excavate.py1355 # Check if data and decoded_data are identicalSTRING
LOWbbot/modules/internal/excavate.py1371 # Check if rule processing function existsSTRING
LOWbbot/modules/output/postgres.py35 # Check if the database existsCOMMENT
LOWbbot/modules/output/mysql.py34 # Check if the database existsCOMMENT
AI Slop Vocabulary11 hits · 20 pts
SeverityFileLineSnippetContext
LOWbbot/core/helpers/web/envelopes.py121 # if the value is empty, we just return the text envelopeCOMMENT
LOWbbot/core/helpers/web/envelopes.py204 # if there's only one value to set, we can just set it directlyCOMMENT
MEDIUMbbot/test/benchmarks/_memory_helpers.py81 # median over the last 25% of samples — robust to a singleCOMMENT
MEDIUMbbot/test/benchmarks/test_bloom_filter_benchmarks.py31 """Benchmark comprehensive bloom filter operations (add, check, mixed) for DNS brute-forcing"""STRING
MEDIUM…ot/test/benchmarks/test_event_validation_benchmarks.py283 """Benchmark full scan startup event validation with large batch (1000 targets) for comprehensive testing"""STRING
MEDIUM…/test/test_step_2/module_tests/test_module_excavate.py1793 # here because the wall-clock includes the rest of the scan harness.STRING
MEDIUMbbot/modules/azure_tenant.py49 # 4. Merge all data sources into comprehensive eventCOMMENT
MEDIUMbbot/modules/azure_tenant.py57 # 6. Emit comprehensive AZURE_TENANT eventCOMMENT
MEDIUMbbot/modules/azure_tenant.py355 """Merge data from all sources into single comprehensive event."""STRING
LOWbbot/modules/dnsbrute_mutations.py33 # here we don't brute-force, we just add the subdomain to our end-of-scanCOMMENT
LOWbbot/modules/telerik.py335 # Sometimes webapps will just return 500 for everything, so rule out the false positiveCOMMENT
AI Structural Patterns15 hits · 15 pts
SeverityFileLineSnippetContext
LOWbbot/core/event/base.py2307CODE
LOWbbot/core/event/base.py195CODE
LOWbbot/core/helpers/helper.py170CODE
LOWbbot/core/helpers/diff.py73CODE
LOWbbot/core/helpers/diff.py256CODE
LOWbbot/scripts/docs.py105CODE
LOWbbot/modules/fullhunt.py37CODE
LOWbbot/modules/rapiddns.py19CODE
LOWbbot/modules/securitytrails.py28CODE
LOWbbot/modules/hackertarget.py19CODE
LOWbbot/modules/subdomaincenter.py19CODE
LOWbbot/modules/leakix.py30CODE
LOWbbot/modules/reflected_parameters.py92CODE
LOWbbot/modules/output/asset_inventory.py78CODE
LOWbbot/scanner/preset/preset.py114CODE
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICALdocs/javascripts/vega-lite@5.js1!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vega")):"function"==typeof defineCODE
Modern Structural Boilerplate9 hits · 9 pts
SeverityFileLineSnippetContext
LOWbbot/core/config/merge.py94__all__ = ["deep_merge", "dotted_get", "dotted_set", "iter_dotted_paths"]CODE
LOWbbot/core/config/models.py469__all__ = [CODE
LOWbbot/core/event/__init__.py3__all__ = ["make_event", "update_event", "is_event", "event_from_json"]CODE
LOWbbot/core/helpers/depsinstaller/__init__.py3__all__ = ["DepsInstaller"]CODE
LOWbbot/core/helpers/dns/dns.py469__all__ = ["DNSHelper", "all_rdtypes", "extract_targets", "record_to_text"]CODE
LOW…/test_step_2/module_tests/test_module_bucket_amazon.py6__all__ = ["random_bucket_name_1", "random_bucket_name_2", "random_bucket_name_3", "Bucket_Amazon_Base"]CODE
LOWbbot/scanner/__init__.py18__all__ = [CODE
LOWbbot/scanner/preset/__init__.py16__all__ = [CODE
LOWbbot/scanner/preset/validate.py317__all__ = ["PresetValidationError", "prevalidate_preset", "validate_preset", "validate_preset_file"]CODE
Fake / Example Data6 hits · 7 pts
SeverityFileLineSnippetContext
LOW…ot/test/benchmarks/test_event_validation_benchmarks.py412 ("admin@example.com", "EMAIL_ADDRESS"),CODE
LOWbbot/test/benchmarks/test_excavate_benchmarks.py38 padding_pattern = "Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididuCODE
LOWbbot/test/benchmarks/test_excavate_benchmarks.py38 padding_pattern = "Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididuCODE
LOWbbot/wordlists/paramminer_cookies.txt351fake_userCODE
LOWbbot/modules/newsletters.py3# contains a 'placeholder'. The combination of these two HTML items usually signify the presenceCOMMENT
LOWbbot/modules/newsletters.py33 regex = re.compile(r"placeholder")CODE
Slop Phrases2 hits · 4 pts
SeverityFileLineSnippetContext
LOWbbot/scanner/preset/environ.py52# if we're running in a virtual environment, make sure to include its /bin in PATHCOMMENT
MEDIUM.github/workflows/codeql.yml54 # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize howCOMMENT
Overly Generic Function Names2 hits · 2 pts
SeverityFileLineSnippetContext
LOWbbot/test/test_step_1/test_helpers.py807 async def do_stuff(r):CODE
LOWbbot/modules/base.py994 async def run_task(self, coro, name, n=1):CODE