bbot 2.3.1.5815rc0__tar.gz → 2.3.1.5820rc0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of bbot might be problematic. Click here for more details.
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/PKG-INFO +1 -1
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/__init__.py +1 -1
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/telerik.py +57 -32
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/trufflehog.py +1 -1
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/web/dotnet-audit.yml +1 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_telerik.py +57 -2
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/pyproject.toml +1 -1
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/LICENSE +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/README.md +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/cli.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/__init__.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/config/__init__.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/config/files.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/config/logger.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/core.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/engine.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/event/__init__.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/event/base.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/event/helpers.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/flags.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/__init__.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/async_helpers.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/bloom.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/cache.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/command.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/depsinstaller/__init__.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/depsinstaller/installer.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/depsinstaller/sudo_askpass.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/diff.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/dns/__init__.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/dns/brute.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/dns/dns.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/dns/engine.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/dns/helpers.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/dns/mock.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/files.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/helper.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/interactsh.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/libmagic.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/misc.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/names_generator.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/ntlm.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/process.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/ratelimiter.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/regex.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/regexes.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/url.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/validators.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/web/__init__.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/web/client.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/web/engine.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/web/ssl_context.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/web/web.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/helpers/wordcloud.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/modules.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/multiprocess.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/core/shared_deps.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/db/sql/models.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/defaults.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/errors.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/logger.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/__init__.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/ajaxpro.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/anubisdb.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/apkpure.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/azure_realm.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/azure_tenant.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/baddns.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/baddns_direct.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/baddns_zone.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/badsecrets.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/base.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/bevigil.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/binaryedge.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/bucket_amazon.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/bucket_azure.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/bucket_digitalocean.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/bucket_file_enum.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/bucket_firebase.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/bucket_google.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/bufferoverrun.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/builtwith.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/bypass403.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/c99.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/censys.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/certspotter.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/chaos.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/code_repository.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/credshed.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/crt.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/deadly/dastardly.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/deadly/ffuf.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/deadly/nuclei.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/deadly/vhost.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/dehashed.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/digitorus.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/dnsbimi.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/dnsbrute.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/dnsbrute_mutations.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/dnscaa.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/dnscommonsrv.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/dnsdumpster.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/dnstlsrpt.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/docker_pull.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/dockerhub.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/dotnetnuke.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/emailformat.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/extractous.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/ffuf_shortnames.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/filedownload.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/fingerprintx.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/fullhunt.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/generic_ssrf.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/git.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/git_clone.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/github_codesearch.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/github_org.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/github_workflows.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/gitlab.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/google_playstore.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/gowitness.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/hackertarget.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/host_header.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/httpx.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/hunt.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/hunterio.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/iis_shortnames.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/internal/__init__.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/internal/aggregate.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/internal/base.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/internal/cloudcheck.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/internal/dnsresolve.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/internal/excavate.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/internal/speculate.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/internal/unarchive.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/internetdb.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/ip2location.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/ipneighbor.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/ipstack.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/jadx.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/leakix.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/myssl.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/newsletters.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/ntlm.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/oauth.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/otx.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/__init__.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/asset_inventory.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/base.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/csv.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/discord.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/emails.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/http.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/json.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/mysql.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/neo4j.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/nmap_xml.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/postgres.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/python.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/slack.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/splunk.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/sqlite.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/stdout.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/subdomains.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/teams.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/txt.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/web_parameters.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/web_report.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/output/websocket.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/paramminer_cookies.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/paramminer_getparams.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/paramminer_headers.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/passivetotal.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/pgp.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/portfilter.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/portscan.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/postman.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/postman_download.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/rapiddns.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/report/affiliates.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/report/asn.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/report/base.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/robots.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/securitytrails.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/securitytxt.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/shodan_dns.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/sitedossier.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/skymem.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/smuggler.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/social.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/sslcert.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/subdomaincenter.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/subdomainradar.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/templates/bucket.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/templates/github.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/templates/postman.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/templates/shodan.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/templates/sql.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/templates/subdomain_enum.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/templates/webhook.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/trickest.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/url_manipulation.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/urlscan.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/viewdns.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/virustotal.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/wafw00f.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/wappalyzer.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/wayback.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/wpscan.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/modules/zoomeye.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/baddns-intense.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/cloud-enum.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/code-enum.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/email-enum.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/fast.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/kitchen-sink.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/nuclei/nuclei-budget.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/nuclei/nuclei-intense.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/nuclei/nuclei-technology.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/nuclei/nuclei.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/spider-intense.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/spider.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/subdomain-enum.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/web/dirbust-heavy.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/web/dirbust-light.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/web/iis-shortnames.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/web/paramminer.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/web-basic.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/web-screenshots.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/presets/web-thorough.yml +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/scanner/__init__.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/scanner/dispatcher.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/scanner/manager.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/scanner/preset/__init__.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/scanner/preset/args.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/scanner/preset/conditions.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/scanner/preset/environ.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/scanner/preset/path.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/scanner/preset/preset.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/scanner/scanner.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/scanner/stats.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/scanner/target.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/scripts/docs.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/__init__.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/bbot_fixtures.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/conftest.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/coverage.cfg +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/fastapi_test.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/owasp_mastg.apk +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/run_tests.sh +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test.conf +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_output.ndjson +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/__init__.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test__module__tests.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_bbot_fastapi.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_bloom_filter.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_cli.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_command.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_config.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_depsinstaller.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_dns.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_docs.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_engine.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_events.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_files.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_helpers.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_manager_deduplication.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_manager_scope_accuracy.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_modules_basic.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_presets.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_python_api.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_regexes.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_scan.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_scope.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_target.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_1/test_web.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/__init__.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/__init__.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/base.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_affiliates.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_aggregate.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_ajaxpro.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_anubisdb.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_apkpure.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_asn.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_asset_inventory.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_azure_realm.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_azure_tenant.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_baddns.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_baddns_direct.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_baddns_zone.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_badsecrets.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_bevigil.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_binaryedge.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_amazon.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_azure.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_digitalocean.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_file_enum.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_firebase.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_google.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_bufferoverrun.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_builtwith.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_bypass403.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_c99.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_censys.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_certspotter.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_chaos.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_cloudcheck.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_code_repository.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_credshed.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_crt.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_csv.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_dastardly.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_dehashed.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_digitorus.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_discord.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_dnsbimi.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_dnsbrute.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_dnsbrute_mutations.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_dnscaa.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_dnscommonsrv.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_dnsdumpster.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_dnsresolve.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_dnstlsrpt.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_docker_pull.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_dockerhub.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_dotnetnuke.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_emailformat.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_emails.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_excavate.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_extractous.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_ffuf.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_ffuf_shortnames.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_filedownload.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_fingerprintx.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_fullhunt.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_generic_ssrf.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_git.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_git_clone.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_github_codesearch.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_github_org.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_github_workflows.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_gitlab.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_google_playstore.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_gowitness.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_hackertarget.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_host_header.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_http.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_httpx.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_hunt.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_hunterio.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_iis_shortnames.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_internetdb.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_ip2location.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_ipneighbor.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_ipstack.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_jadx.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_json.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_leakix.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_mysql.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_myssl.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_neo4j.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_newsletters.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_nmap_xml.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_ntlm.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_nuclei.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_oauth.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_otx.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_paramminer_cookies.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_paramminer_getparams.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_paramminer_headers.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_passivetotal.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_pgp.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_portfilter.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_portscan.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_postgres.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_postman.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_postman_download.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_python.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_rapiddns.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_robots.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_securitytrails.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_securitytxt.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_shodan_dns.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_sitedossier.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_skymem.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_slack.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_smuggler.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_social.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_speculate.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_splunk.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_sqlite.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_sslcert.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_stdout.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_subdomaincenter.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_subdomainradar.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_subdomains.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_teams.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_trickest.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_trufflehog.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_txt.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_unarchive.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_url_manipulation.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_urlscan.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_vhost.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_viewdns.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_virustotal.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_wafw00f.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_wappalyzer.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_wayback.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_web_parameters.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_web_report.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_websocket.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_wpscan.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_zoomeye.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/template_tests/__init__.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/template_tests/test_template_subdomain_enum.py +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/testsslcert.pem +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/testsslkey.pem +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/wordlists/devops_mutations.txt +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/wordlists/ms_on_prem_subdomains.txt +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/wordlists/nameservers.txt +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/wordlists/paramminer_headers.txt +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/wordlists/paramminer_parameters.txt +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/wordlists/raft-small-extensions-lowercase_CLEANED.txt +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/wordlists/top_open_ports_nmap.txt +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/wordlists/valid_url_schemes.txt +0 -0
- {bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/wordlists/wordninja_dns.txt.gz +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: bbot
|
|
3
|
-
Version: 2.3.1.
|
|
3
|
+
Version: 2.3.1.5820rc0
|
|
4
4
|
Summary: OSINT automation for hackers.
|
|
5
5
|
License: GPL-3.0
|
|
6
6
|
Keywords: python,cli,automation,osint,threat-intel,intelligence,neo4j,scanner,python-library,hacking,recursion,pentesting,recon,command-line-tool,bugbounty,subdomains,security-tools,subdomain-scanner,osint-framework,attack-surface,subdomain-enumeration,osint-tool
|
|
@@ -5,6 +5,21 @@ from bbot.modules.base import BaseModule
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class telerik(BaseModule):
|
|
8
|
+
"""
|
|
9
|
+
Test for endpoints associated with Telerik.Web.UI.dll
|
|
10
|
+
|
|
11
|
+
Telerik.Web.UI.WebResource.axd (CVE-2017-11317)
|
|
12
|
+
Telerik.Web.UI.DialogHandler.aspx (CVE-2017-9248)
|
|
13
|
+
Telerik.Web.UI.SpellCheckHandler.axd (associated with CVE-2017-9248)
|
|
14
|
+
ChartImage.axd (CVE-2019-19790)
|
|
15
|
+
|
|
16
|
+
For the Telerik Report Server vulnerability (CVE-2024-4358) Use the Nuclei Template: (https://github.com/projectdiscovery/nuclei-templates/blob/main/http/cves/2024/CVE-2024-4358.yaml)
|
|
17
|
+
|
|
18
|
+
With exploit_RAU_crypto enabled, the module will attempt to exploit CVE-2017-11317. THIS WILL UPLOAD A (benign) FILE IF SUCCESSFUL.
|
|
19
|
+
|
|
20
|
+
Will dedupe to host by default (running against first received URL). With include_subdirs enabled, will run against every directory.
|
|
21
|
+
"""
|
|
22
|
+
|
|
8
23
|
watched_events = ["URL", "HTTP_RESPONSE"]
|
|
9
24
|
produced_events = ["VULNERABILITY", "FINDING"]
|
|
10
25
|
flags = ["active", "aggressive", "web-thorough"]
|
|
@@ -139,8 +154,11 @@ class telerik(BaseModule):
|
|
|
139
154
|
|
|
140
155
|
RAUConfirmed = []
|
|
141
156
|
|
|
142
|
-
options = {"exploit_RAU_crypto": False}
|
|
143
|
-
options_desc = {
|
|
157
|
+
options = {"exploit_RAU_crypto": False, "include_subdirs": False}
|
|
158
|
+
options_desc = {
|
|
159
|
+
"exploit_RAU_crypto": "Attempt to confirm any RAU AXD detections are vulnerable",
|
|
160
|
+
"include_subdirs": "Include subdirectories in the scan (off by default)", # will create many finding events if used in conjunction with web spider or ffuf
|
|
161
|
+
}
|
|
144
162
|
|
|
145
163
|
in_scope_only = True
|
|
146
164
|
|
|
@@ -162,19 +180,33 @@ class telerik(BaseModule):
|
|
|
162
180
|
|
|
163
181
|
_module_threads = 5
|
|
164
182
|
|
|
183
|
+
@staticmethod
|
|
184
|
+
def normalize_url(url):
|
|
185
|
+
return str(url.rstrip("/") + "/").lower()
|
|
186
|
+
|
|
165
187
|
def _incoming_dedup_hash(self, event):
|
|
166
188
|
if event.type == "URL":
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
189
|
+
if self.config.get("include_subdirs") is True:
|
|
190
|
+
return hash(f"{event.type}{self.normalize_url(event.data)}")
|
|
191
|
+
else:
|
|
192
|
+
return hash(f"{event.type}{event.netloc}")
|
|
193
|
+
else: # HTTP_RESPONSE
|
|
194
|
+
return hash(f"{event.type}{event.data['url']}")
|
|
170
195
|
|
|
171
196
|
async def handle_event(self, event):
|
|
172
197
|
if event.type == "URL":
|
|
198
|
+
if self.config.get("include_subdirs"):
|
|
199
|
+
base_url = self.normalize_url(event.data) # Use the entire URL including subdirectories
|
|
200
|
+
|
|
201
|
+
else:
|
|
202
|
+
base_url = f"{event.parsed_url.scheme}://{event.parsed_url.netloc}/" # path will be omitted
|
|
203
|
+
|
|
204
|
+
# Check for RAU AXD Handler
|
|
173
205
|
webresource = "Telerik.Web.UI.WebResource.axd?type=rau"
|
|
174
|
-
result, _ = await self.test_detector(
|
|
206
|
+
result, _ = await self.test_detector(base_url, webresource)
|
|
175
207
|
if result:
|
|
176
208
|
if "RadAsyncUpload handler is registered successfully" in result.text:
|
|
177
|
-
self.
|
|
209
|
+
self.verbose("Detected Telerik instance (Telerik.Web.UI.WebResource.axd?type=rau)")
|
|
178
210
|
|
|
179
211
|
probe_data = {
|
|
180
212
|
"rauPostData": (
|
|
@@ -211,15 +243,14 @@ class telerik(BaseModule):
|
|
|
211
243
|
|
|
212
244
|
description = f"Telerik RAU AXD Handler detected. Verbose Errors Enabled: [{str(verbose_errors)}] Version Guess: [{version}]"
|
|
213
245
|
await self.emit_event(
|
|
214
|
-
{"host": str(event.host), "url": f"{
|
|
246
|
+
{"host": str(event.host), "url": f"{base_url}{webresource}", "description": description},
|
|
215
247
|
"FINDING",
|
|
216
248
|
event,
|
|
217
|
-
context=f"{{module}} scanned {
|
|
249
|
+
context=f"{{module}} scanned {base_url} and identified {{event.type}}: Telerik RAU AXD Handler",
|
|
218
250
|
)
|
|
219
251
|
if self.config.get("exploit_RAU_crypto") is True:
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
self.RAUConfirmed.append(hostname)
|
|
252
|
+
if base_url not in self.RAUConfirmed:
|
|
253
|
+
self.RAUConfirmed.append(base_url)
|
|
223
254
|
root_tool_path = self.scan.helpers.tools_dir / "telerik"
|
|
224
255
|
self.debug(root_tool_path)
|
|
225
256
|
|
|
@@ -242,17 +273,17 @@ class telerik(BaseModule):
|
|
|
242
273
|
"severity": "CRITICAL",
|
|
243
274
|
"description": description,
|
|
244
275
|
"host": str(event.host),
|
|
245
|
-
"url": f"{
|
|
276
|
+
"url": f"{base_url}{webresource}",
|
|
246
277
|
},
|
|
247
278
|
"VULNERABILITY",
|
|
248
279
|
event,
|
|
249
|
-
context=f"{{module}} scanned {
|
|
280
|
+
context=f"{{module}} scanned {base_url} and identified critical {{event.type}}: {description}",
|
|
250
281
|
)
|
|
251
282
|
break
|
|
252
283
|
|
|
253
284
|
urls = {}
|
|
254
285
|
for dh in self.DialogHandlerUrls:
|
|
255
|
-
url = self.create_url(
|
|
286
|
+
url = self.create_url(base_url, f"{dh}?dp=1")
|
|
256
287
|
urls[url] = dh
|
|
257
288
|
|
|
258
289
|
gen = self.helpers.request_batch(list(urls))
|
|
@@ -265,14 +296,14 @@ class telerik(BaseModule):
|
|
|
265
296
|
# tolerate some random errors
|
|
266
297
|
if fail_count < 2:
|
|
267
298
|
continue
|
|
268
|
-
self.debug(f"Cancelling run against {
|
|
299
|
+
self.debug(f"Cancelling run against {base_url} due to failed request")
|
|
269
300
|
await gen.aclose()
|
|
270
301
|
else:
|
|
271
302
|
if "Cannot deserialize dialog parameters" in response.text:
|
|
272
303
|
self.debug(f"Detected Telerik UI instance ({dh})")
|
|
273
304
|
description = "Telerik DialogHandler detected"
|
|
274
305
|
await self.emit_event(
|
|
275
|
-
{"host": str(event.host), "url": f"{
|
|
306
|
+
{"host": str(event.host), "url": f"{base_url}{dh}", "description": description},
|
|
276
307
|
"FINDING",
|
|
277
308
|
event,
|
|
278
309
|
)
|
|
@@ -280,12 +311,12 @@ class telerik(BaseModule):
|
|
|
280
311
|
await gen.aclose()
|
|
281
312
|
|
|
282
313
|
spellcheckhandler = "Telerik.Web.UI.SpellCheckHandler.axd"
|
|
283
|
-
result, _ = await self.test_detector(
|
|
314
|
+
result, _ = await self.test_detector(base_url, spellcheckhandler)
|
|
284
315
|
status_code = getattr(result, "status_code", 0)
|
|
285
316
|
# The standard behavior for the spellcheck handler without parameters is a 500
|
|
286
317
|
if status_code == 500:
|
|
287
318
|
# Sometimes webapps will just return 500 for everything, so rule out the false positive
|
|
288
|
-
validate_result, _ = await self.test_detector(
|
|
319
|
+
validate_result, _ = await self.test_detector(base_url, self.helpers.rand_string())
|
|
289
320
|
self.debug(validate_result)
|
|
290
321
|
validate_status_code = getattr(validate_result, "status_code", 0)
|
|
291
322
|
if validate_status_code not in (0, 500):
|
|
@@ -294,31 +325,31 @@ class telerik(BaseModule):
|
|
|
294
325
|
await self.emit_event(
|
|
295
326
|
{
|
|
296
327
|
"host": str(event.host),
|
|
297
|
-
"url": f"{
|
|
328
|
+
"url": f"{base_url}{spellcheckhandler}",
|
|
298
329
|
"description": description,
|
|
299
330
|
},
|
|
300
331
|
"FINDING",
|
|
301
332
|
event,
|
|
302
|
-
context=f"{{module}} scanned {
|
|
333
|
+
context=f"{{module}} scanned {base_url} and identified {{event.type}}: Telerik SpellCheckHandler",
|
|
303
334
|
)
|
|
304
335
|
|
|
305
336
|
chartimagehandler = "ChartImage.axd?ImageName=bqYXJAqm315eEd6b%2bY4%2bGqZpe7a1kY0e89gfXli%2bjFw%3d"
|
|
306
|
-
result, _ = await self.test_detector(
|
|
337
|
+
result, _ = await self.test_detector(base_url, chartimagehandler)
|
|
307
338
|
status_code = getattr(result, "status_code", 0)
|
|
308
339
|
if status_code == 200:
|
|
309
340
|
chartimagehandler_error = "ChartImage.axd?ImageName="
|
|
310
|
-
result_error, _ = await self.test_detector(
|
|
341
|
+
result_error, _ = await self.test_detector(base_url, chartimagehandler_error)
|
|
311
342
|
error_status_code = getattr(result_error, "status_code", 0)
|
|
312
343
|
if error_status_code not in (0, 200):
|
|
313
344
|
await self.emit_event(
|
|
314
345
|
{
|
|
315
346
|
"host": str(event.host),
|
|
316
|
-
"url": f"{
|
|
347
|
+
"url": f"{base_url}{chartimagehandler}",
|
|
317
348
|
"description": "Telerik ChartImage AXD Handler Detected",
|
|
318
349
|
},
|
|
319
350
|
"FINDING",
|
|
320
351
|
event,
|
|
321
|
-
context=f"{{module}} scanned {
|
|
352
|
+
context=f"{{module}} scanned {base_url} and identified {{event.type}}: Telerik ChartImage AXD Handler",
|
|
322
353
|
)
|
|
323
354
|
|
|
324
355
|
elif event.type == "HTTP_RESPONSE":
|
|
@@ -348,14 +379,8 @@ class telerik(BaseModule):
|
|
|
348
379
|
context="{module} searched HTTP_RESPONSE and identified {event.type}: Telerik AsyncUpload",
|
|
349
380
|
)
|
|
350
381
|
|
|
351
|
-
# Check for RAD Controls in URL
|
|
352
|
-
|
|
353
382
|
def create_url(self, baseurl, detector):
|
|
354
|
-
|
|
355
|
-
url = f"{baseurl}/{detector}"
|
|
356
|
-
else:
|
|
357
|
-
url = f"{baseurl}{detector}"
|
|
358
|
-
return url
|
|
383
|
+
return f"{baseurl}{detector}"
|
|
359
384
|
|
|
360
385
|
async def test_detector(self, baseurl, detector):
|
|
361
386
|
result = None
|
{bbot-2.3.1.5815rc0 → bbot-2.3.1.5820rc0}/bbot/test/test_step_2/module_tests/test_module_telerik.py
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import re
|
|
2
|
-
from .base import ModuleTestBase
|
|
2
|
+
from .base import ModuleTestBase, tempwordlist
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
class TestTelerik(ModuleTestBase):
|
|
@@ -28,7 +28,7 @@ class TestTelerik(ModuleTestBase):
|
|
|
28
28
|
}
|
|
29
29
|
module_test.set_expect_requests(expect_args=expect_args, respond_args=respond_args)
|
|
30
30
|
|
|
31
|
-
# Simulate
|
|
31
|
+
# Simulate SpellCheckHandler detection
|
|
32
32
|
expect_args = {"method": "GET", "uri": "/Telerik.Web.UI.SpellCheckHandler.axd"}
|
|
33
33
|
respond_args = {"status": 500}
|
|
34
34
|
module_test.set_expect_requests(expect_args=expect_args, respond_args=respond_args)
|
|
@@ -114,3 +114,58 @@ class TestTelerik(ModuleTestBase):
|
|
|
114
114
|
assert telerik_dialoghandler_detection, "Telerik dialoghandler detection failed"
|
|
115
115
|
assert telerik_chartimage_detection, "Telerik chartimage detection failed"
|
|
116
116
|
assert telerik_http_response_parameters_detection, "Telerik SerializedParameters detection failed"
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
class TestTelerikDialogHandler_includesubdirs(TestTelerik):
|
|
120
|
+
targets = ["http://127.0.0.1:8888/", "http://127.0.0.1:8888/temp/"]
|
|
121
|
+
config_overrides = {
|
|
122
|
+
"modules": {
|
|
123
|
+
"telerik": {
|
|
124
|
+
"include_subdirs": True,
|
|
125
|
+
},
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
modules_overrides = ["httpx", "telerik"]
|
|
129
|
+
|
|
130
|
+
async def setup_before_prep(self, module_test):
|
|
131
|
+
# Simulate NO SpellCheckHandler detection (not testing for that with this test)
|
|
132
|
+
expect_args = {"method": "GET", "uri": "/Telerik.Web.UI.SpellCheckHandler.axd"}
|
|
133
|
+
respond_args = {"status": 404}
|
|
134
|
+
module_test.set_expect_requests(expect_args=expect_args, respond_args=respond_args)
|
|
135
|
+
|
|
136
|
+
# Simulate DialogHandler detection
|
|
137
|
+
expect_args = {"method": "GET", "uri": "/App_Master/Telerik.Web.UI.DialogHandler.aspx"}
|
|
138
|
+
respond_args = {
|
|
139
|
+
"response_data": '<input type="hidden" name="dialogParametersHolder" id="dialogParametersHolder" /><div style=\'color:red\'>Cannot deserialize dialog parameters. Please refresh the editor page.</div><div>Error Message:Invalid length for a Base-64 char array or string.</div></form></body></html>'
|
|
140
|
+
}
|
|
141
|
+
module_test.set_expect_requests(expect_args=expect_args, respond_args=respond_args)
|
|
142
|
+
|
|
143
|
+
# Simulate DialogHandler detection (in /temp)
|
|
144
|
+
expect_args = {"method": "GET", "uri": "/temp/App_Master/Telerik.Web.UI.DialogHandler.aspx"}
|
|
145
|
+
respond_args = {
|
|
146
|
+
"response_data": '<input type="hidden" name="dialogParametersHolder" id="dialogParametersHolder" /><div style=\'color:red\'>Cannot deserialize dialog parameters. Please refresh the editor page.</div><div>Error Message:Invalid length for a Base-64 char array or string.</div></form></body></html>'
|
|
147
|
+
}
|
|
148
|
+
module_test.set_expect_requests(expect_args=expect_args, respond_args=respond_args)
|
|
149
|
+
|
|
150
|
+
# Simulate /temp directory detection
|
|
151
|
+
expect_args = {"method": "GET", "uri": "/temp/"}
|
|
152
|
+
respond_args = {"response_data": "Temporary directory found"}
|
|
153
|
+
module_test.set_expect_requests(expect_args=expect_args, respond_args=respond_args)
|
|
154
|
+
|
|
155
|
+
# Fallback
|
|
156
|
+
expect_args = {"method": "GET", "uri": "/"}
|
|
157
|
+
respond_args = {"response_data": "alive"}
|
|
158
|
+
module_test.set_expect_requests(expect_args=expect_args, respond_args=respond_args)
|
|
159
|
+
|
|
160
|
+
async def setup_after_prep(self, module_test):
|
|
161
|
+
module_test.scan.modules["telerik"].telerikVersions = ["2014.2.724", "2014.3.1024", "2015.1.204"]
|
|
162
|
+
module_test.scan.modules["telerik"].DialogHandlerUrls = [
|
|
163
|
+
"App_Master/Telerik.Web.UI.DialogHandler.aspx",
|
|
164
|
+
]
|
|
165
|
+
|
|
166
|
+
def check(self, module_test, events):
|
|
167
|
+
# Check if the expected requests were made
|
|
168
|
+
finding_count = sum(
|
|
169
|
+
1 for e in events if e.type == "FINDING" and "Telerik DialogHandler detected" in e.data["description"]
|
|
170
|
+
)
|
|
171
|
+
assert finding_count == 2, "Expected 2 FINDING events (root and /temp), got {finding_count}"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|