wpsecscan 2.4.0__tar.gz → 2.5.0__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.
- {wpsecscan-2.4.0/wpsecscan.egg-info → wpsecscan-2.5.0}/PKG-INFO +38 -11
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/README.md +35 -10
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/pyproject.toml +4 -2
- wpsecscan-2.5.0/wpsecscan/__init__.py +1 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/__main__.py +1600 -11
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/ai_triage.py +84 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/__init__.py +13 -4
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/authenticated.py +416 -30
- wpsecscan-2.5.0/wpsecscan/checks/companion_advanced.py +575 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wp_fork_detection.py +1 -4
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/completion.py +23 -1
- wpsecscan-2.5.0/wpsecscan/creds_vault.py +233 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/data/dashboard.html.j2 +3 -0
- wpsecscan-2.5.0/wpsecscan/data/datadog-dashboard.json +66 -0
- wpsecscan-2.5.0/wpsecscan/data/newrelic-dashboard.json +57 -0
- wpsecscan-2.5.0/wpsecscan/data/openapi-scan-report.json +115 -0
- wpsecscan-2.5.0/wpsecscan/gh_check_run.py +89 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/gui.py +179 -1
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/gui_windows.py +132 -0
- wpsecscan-2.5.0/wpsecscan/importers/__init__.py +1 -0
- wpsecscan-2.5.0/wpsecscan/importers/burp_zap.py +141 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/integrations/webhooks_chat.py +56 -16
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/issue_push.py +131 -0
- wpsecscan-2.5.0/wpsecscan/mobile_api.py +287 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/playbook.py +31 -10
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/policy.py +74 -0
- wpsecscan-2.5.0/wpsecscan/reference_diff.py +156 -0
- wpsecscan-2.5.0/wpsecscan/reporters/auditor_pdf.py +255 -0
- wpsecscan-2.5.0/wpsecscan/reporters/board_one_pager.py +155 -0
- wpsecscan-2.5.0/wpsecscan/reporters/compliance_attestation.py +181 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/dashboard.py +24 -1
- wpsecscan-2.5.0/wpsecscan/reporters/diff_agency.py +163 -0
- wpsecscan-2.5.0/wpsecscan/reporters/user_template.py +52 -0
- wpsecscan-2.5.0/wpsecscan/risk.py +163 -0
- wpsecscan-2.5.0/wpsecscan/scan_zip.py +160 -0
- wpsecscan-2.5.0/wpsecscan/scheduler.py +183 -0
- wpsecscan-2.5.0/wpsecscan/siem.py +212 -0
- wpsecscan-2.5.0/wpsecscan/sla.py +131 -0
- wpsecscan-2.5.0/wpsecscan/slack_app.py +123 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0/wpsecscan.egg-info}/PKG-INFO +38 -11
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan.egg-info/SOURCES.txt +19 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan.egg-info/requires.txt +2 -0
- wpsecscan-2.4.0/wpsecscan/__init__.py +0 -1
- wpsecscan-2.4.0/wpsecscan/checks/companion_advanced.py +0 -277
- wpsecscan-2.4.0/wpsecscan/risk.py +0 -88
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/LICENSE +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/NOTICE +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/setup.cfg +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_audit_fixes.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_audit_round_r.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_cache.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_checks.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_confidence_eta_tags.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_default_creds.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_global_sigs_regression.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_login_throttle.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_login_throttle_deep.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_new_check_inventory.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_new_checks.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_new_checks_aggressive.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_new_checks_quality.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_notify.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_password_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_payloads.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_phase5.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_playbook.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_prove.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_risk_score.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_round_54.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_round_55.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_round_56_activity.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_round_57.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_round_58.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_round_59.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_round_60.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_round_61.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_round_62.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_round_63.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_round_64.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_round_65.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_round_q.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/tests/test_ssh_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/activity.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/ai_assist.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/ai_safety.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/ai_triage_ui.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/analytics.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/api_server.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/attack_checkpoint.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/attack_scripts.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/auth/__init__.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/auth/approval_workflow.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/auth/audit_log.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/auth/rbac.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/auth/sso_oidc.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/auth/sso_saml.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/auto_pr.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/auto_update.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/baseline.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/branding.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/bug_report.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/burp_import.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/cache.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/check_health.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/_template.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/a11y_deep.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/a11y_lite.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/a11y_wcag_aaa.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/abuseipdb_lookup.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/admin_ajax_brute_surface.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/ai_chatbot_endpoint_leak.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/ai_prompt_injection_passive.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/ajax_surface.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/app_passwords.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/auth_modernisation.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/backup_exposure.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/backup_file_fuzz.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/brand_monitor.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/cache_headers.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/cache_poisoning.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/cache_poisoning_v2.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/cdn_edge_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/cloud_metadata_ssrf.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/cloudflare_origin_leak.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/compliance_frameworks.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/composer_lock_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/cookie_consent.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/cookies.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/core_checksums.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/core_cves.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/core_tampering.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/core_version.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/cors.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/crlf_location_injection.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/crypto_agility.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/crypto_payment_callback_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/cryptominer_js_injection.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/csp.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/csp_report_endpoint.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/csrf_entropy.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/csrf_nonce.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/csv_export_csp.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/ct_log_recent_certs.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/db_admin_login_probe.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/db_trigger_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/debug_leaks.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/debug_log_pii_sniff.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/default_creds.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/dev_params.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/directory_listing.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/dns_deep.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/dns_rebinding.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/dns_security.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/dns_templates.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/dom_xss_headless.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/email_obfuscation_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/email_security_deep.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/env_file_enum.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/error_pages.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/exposed_files.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/favicon_fingerprint.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/file_upload.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/forced_browse.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/gdpr_dsr.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/git_dir_deep_scan.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/github_leak_search.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/graphql_dos.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/graphql_field_authz_deep.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/gtm_inventory.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/gutenberg_blocks.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/header_smuggling_case.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/headless_templates.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/headless_wp_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/heartbeat_abuse.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/heartbeat_frontend.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/helm_compose_leak.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/hibp.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/honeypot_admin.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/host_header_validation.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/host_recon.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/hosting_platform_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/hostname_collision.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/hpp.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/hsts_preload_eligibility.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/http2_settings.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/http2_smuggling.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/http3_fingerprint.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/http_methods.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/js_framework_deep.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/js_libraries.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/js_supply_chain.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/jwt_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/login.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/login_redirect_http_hop.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/login_throttle.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/login_throttle_deep.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/login_timing.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/magecart_skimmer_patterns.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/mfa_priv_account_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/misc_injection_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/mixed_content.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/mobile_app_endpoints.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/multisite.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/nft_mint_pubapi.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/nonce_freshness.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/nosql_injection.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/oauth_oidc.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/oauth_redirect.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/oauth_redirect_misconfig.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/object_cache_dropin.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/open_redirect.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/open_registration.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/openapi_scanner.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/origin_ip_discovery.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/osint_enrich.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/package_lock_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/page_builder_cve.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/path_bypass.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/path_traversal.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/payment_commerce_deep.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/payment_gateway_test_keys.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/perf_budget.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/permissions_policy.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/php_eol.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/phpinfo_dangerous_directives.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/plugin_archive_fuzz.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/plugin_cemetery.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/plugin_cves.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/plugin_hash_fingerprint.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/plugin_route_fuzz.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/plugin_specific_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/plugin_typosquat_detection.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/plugins.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/postmeta_stored_xss_scan.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/premium_license_leak.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/privacy_inventory.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/prototype_pollution.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/race_condition.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/redirect_chain.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/referenced_buckets.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/rest_api.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/rest_app_passwords_enum.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/rest_fields_dos.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/rest_link_header.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/rest_namespace_leak.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/rest_permission_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/robots_sitemap.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/rum_beacons.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/s3_bucket_discovery.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/saml_xsw.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/secret_leak.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/security_txt.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/sendmail_injection.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/server_stack_reveal.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/server_timing.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/service_exposure.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/session_fixation.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/sitemap_cve_probe.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/smuggling_probe.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/solidity_abi_leak.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/source_maps.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/spider_crawl.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/sqli.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/sri_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/sri_pwa_misc.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/ssrf.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/ssti.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/subdomains.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/tailwind_css_comment_leak.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/theme_cves.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/themes.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/timthumb.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/tls_deep.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/tls_headers.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/tls_modern.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/tls_reneg_dos.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/upload_bypass_deep.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/upload_path_predictable.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/uploads_year_listing.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/users.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/users_deep.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/users_me_capability_leak.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/vendor_backdoor_patterns.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/waf.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/waf_brand_deep.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/waf_bypass_probe.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/waf_lockout_guard.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/waf_ruleset.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wallet_seed_phrase_leak.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/web3_wallet_connector_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/webdav.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/webhook_signing_secrets.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/webhook_url_fingerprint.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/webhooks.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/websocket_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/websocket_fuzz.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/well_known.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/woocommerce_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/woocommerce_deep.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/woocommerce_order_idor.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/woocommerce_storefront.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wp_builder_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wp_cli_inject.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wp_commerce_alt_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wp_cron_cpu.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wp_cron_disabled.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wp_cron_dos.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wp_debug_display_via_rest.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wp_engine_misconfig.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wp_form_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wp_membership_lms_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wp_multisite_deep.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wp_plugin_ecosystem_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wp_query_sqli.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wp_rest_methods.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wp_salts_age.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wpconfig_hardening_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wpcron_suspicious_jobs.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/wpgraphql.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/xmlrpc_amplification.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/xmlrpc_deep.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/xmlrpc_method_brute.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/xss_dom_sinks.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/xss_reflected.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/xxe_upload.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/yaml_templates.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/yaml_workflows.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/checks/yarn_pnpm_lock_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/confidence.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/config.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/console_live.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/continuous_monitor.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/crash_submit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/daemon/__init__.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/daemon/_legacy.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/daemon/webhook_v2.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/data/check_tags.json +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/data/common_paths.txt +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/data/compliance_extra.json +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/data/compliance_map.json +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/data/compliance_v2.json +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/data/exploit_playbook.json +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/data/exploit_signatures.json +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/data/known_paths.txt +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/data/marketplace.json +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/data/payloads.json +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/data/plugin_cves.json +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/data/plugin_file_hashes.json +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/data/quick_fixes.json +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/data/references.json +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/data/remediation_videos.json +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/data/report.html.j2 +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/data/report.schema.json +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/data/security_tutorial.json +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/db.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/demo.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/diff.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/education.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/enterprise/__init__.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/enterprise/billing_stub.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/enterprise/multi_tenant.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/enterprise/quota.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/eta.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/fun/__init__.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/fun/bingo_card.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/gui_payloads.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/har_replay.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/hardware_keys.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/heatmap.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/history.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/http.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/i18n.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/incremental/__init__.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/incremental/_legacy.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/incremental/diff_scan.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/incremental/smart_skip.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/integrations/__init__.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/integrations/cisa_kev.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/integrations/epss.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/integrations/github_issues.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/integrations/osint.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/integrations/sucuri_sitecheck.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/integrations/threat_intel.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/integrations/ticketing.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/integrations/tor_proxy.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/integrations/virustotal.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/interactsh.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/js_plugin.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/licensing.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/log.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/marketplace.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/mobile_app_discovery.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/models.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/monitors.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/notify.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/observability.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/password_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/payloads.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/perf/__init__.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/perf/_legacy.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/perf/connection_pool.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/perf/parallel_sites.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/pr_inspector.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/prove.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/py.typed +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/recommend.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/region_egress.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/remediation_videos.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/report_query.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/__init__.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/attestation.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/badge_svg.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/bounty_format.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/burp_export.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/comparison_two_sites.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/console.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/csv_out.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/diff_viewer.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/docx_report.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/eli5_toggle.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/exec_pdf.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/executive_pack.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/html.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/issue_export.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/json_out.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/markdown.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/org_dashboard.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/pdf_custom_branding.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/public_page.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/sarif.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/snapshot_compare.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/translated_summary.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/trend_over_time.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/reporters/xlsx_out.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/risk_weights.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/sbom.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/scanner.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/sites.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/spider.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/ssh_audit.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/tags.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/template_engine.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/template_signature.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/threat_intel_v2.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/tray.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/turbo_engine.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/ua_rotation.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/ux_extras.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/waf_rules.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/watchers.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan/workflow.py +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan.egg-info/dependency_links.txt +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan.egg-info/entry_points.txt +0 -0
- {wpsecscan-2.4.0 → wpsecscan-2.5.0}/wpsecscan.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wpsecscan
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.5.0
|
|
4
4
|
Summary: Defensive WordPress security scanner. 200+ checks, 8-source nightly CVE aggregator, AI-assisted remediation (BYO key), 15 compliance frameworks (OWASP/PCI/NIST/ISO/HIPAA/SOC2/HITRUST/CMMC), Sigstore-signed releases with SLSA L3 provenance, 10 threat-intel feeds (KEV/EPSS/Exploit-DB/ATT&CK/STIX/MISP/OTX/GreyNoise), continuous monitors, consent-gated exploit verification, multi-tenant RBAC/SSO/audit-log enterprise mode, 12 report formats. Authorized testing only.
|
|
5
5
|
Author-email: Bryan <bryaninbangkok@gmail.com>
|
|
6
6
|
License: GNU AFFERO GENERAL PUBLIC LICENSE
|
|
@@ -705,6 +705,7 @@ Requires-Dist: bcrypt>=4.0; extra == "ops"
|
|
|
705
705
|
Provides-Extra: ui
|
|
706
706
|
Requires-Dist: Pillow>=10; extra == "ui"
|
|
707
707
|
Requires-Dist: pystray>=0.19; extra == "ui"
|
|
708
|
+
Requires-Dist: keyring>=24; extra == "ui"
|
|
708
709
|
Provides-Extra: all
|
|
709
710
|
Requires-Dist: reportlab>=4.0; extra == "all"
|
|
710
711
|
Requires-Dist: playwright>=1.40; extra == "all"
|
|
@@ -713,6 +714,7 @@ Requires-Dist: redis>=5.0; extra == "all"
|
|
|
713
714
|
Requires-Dist: bcrypt>=4.0; extra == "all"
|
|
714
715
|
Requires-Dist: Pillow>=10; extra == "all"
|
|
715
716
|
Requires-Dist: pystray>=0.19; extra == "all"
|
|
717
|
+
Requires-Dist: keyring>=24; extra == "all"
|
|
716
718
|
Provides-Extra: test
|
|
717
719
|
Requires-Dist: pytest>=7.4; extra == "test"
|
|
718
720
|
Dynamic: license-file
|
|
@@ -725,9 +727,10 @@ Dynamic: license-file
|
|
|
725
727
|
[](https://github.com/bryanflowers/wpsecscan/releases/latest)
|
|
726
728
|
[](https://github.com/bryanflowers/wpsecscan/releases)
|
|
727
729
|
[](https://www.python.org/)
|
|
728
|
-
[](FEATURES.md)
|
|
729
731
|
[](docs/data-sources.md)
|
|
730
|
-
[](tests/)
|
|
733
|
+
[](https://pypi.org/project/wpsecscan/)
|
|
731
734
|
[](docs/verify-release.md)
|
|
732
735
|
[](docs/verify-release.md)
|
|
733
736
|
[](FEATURES.md)
|
|
@@ -744,7 +747,7 @@ Dynamic: license-file
|
|
|
744
747
|
|
|
745
748
|
**The most thoroughly-sourced WordPress vulnerability scanner — open source, AGPLv3, runs locally.**
|
|
746
749
|
|
|
747
|
-
|
|
750
|
+
226 checks across 18 categories. **8-source nightly CVE aggregator**
|
|
748
751
|
(NVD + GHSA + Mitre + OSV + Wordfence + WPVulnerability + CIRCL +
|
|
749
752
|
Patchstack). **SLSA L3 + Sigstore-signed releases**. **10-provider
|
|
750
753
|
threat-intel federation** (CISA KEV, EPSS, Exploit-DB, Metasploit,
|
|
@@ -802,7 +805,31 @@ Ships as two standalone Windows binaries — no Python required on the machine y
|
|
|
802
805
|
|
|
803
806
|
## Quick install
|
|
804
807
|
|
|
805
|
-
### Option A —
|
|
808
|
+
### Option A — `pip install wpsecscan` (any platform)
|
|
809
|
+
|
|
810
|
+
The simplest path on Linux, macOS, or Windows-with-Python:
|
|
811
|
+
|
|
812
|
+
```bash
|
|
813
|
+
pip install wpsecscan
|
|
814
|
+
wpsecscan --version
|
|
815
|
+
wpsecscan https://example.com --json-only
|
|
816
|
+
```
|
|
817
|
+
|
|
818
|
+
PyPI: <https://pypi.org/project/wpsecscan/>
|
|
819
|
+
|
|
820
|
+
For the optional GUI minimize-to-tray feature, install with the
|
|
821
|
+
`[ui]` extra (pulls in Pillow + pystray):
|
|
822
|
+
|
|
823
|
+
```bash
|
|
824
|
+
pip install "wpsecscan[ui]"
|
|
825
|
+
```
|
|
826
|
+
|
|
827
|
+
Other optional extras: `[pdf]` (reportlab for true PDF exec reports),
|
|
828
|
+
`[browser]` (playwright for headless DOM-XSS), `[yaml]` (pyyaml for
|
|
829
|
+
daemon config), `[ops]` (redis + bcrypt for enterprise mode), or
|
|
830
|
+
`[all]` to install everything.
|
|
831
|
+
|
|
832
|
+
### Option B — pre-built Windows binaries
|
|
806
833
|
|
|
807
834
|
1. Open `dist\` in this folder.
|
|
808
835
|
2. Copy `wpsecscan.exe` and `wpsecscan-gui.exe` somewhere on your PATH
|
|
@@ -812,7 +839,7 @@ Ships as two standalone Windows binaries — no Python required on the machine y
|
|
|
812
839
|
The first time you run them, Windows SmartScreen may warn that the publisher is unknown
|
|
813
840
|
(the binaries aren't code-signed). Click **More info → Run anyway**.
|
|
814
841
|
|
|
815
|
-
### Option
|
|
842
|
+
### Option C — build from source
|
|
816
843
|
|
|
817
844
|
Requires Python 3.10+ and PyInstaller. Open PowerShell in the project root:
|
|
818
845
|
|
|
@@ -830,12 +857,12 @@ dist\wpsecscan-gui.exe # GUI (~17 MB)
|
|
|
830
857
|
|
|
831
858
|
Both are single-file executables — copy them anywhere and they run on their own.
|
|
832
859
|
|
|
833
|
-
### Option
|
|
860
|
+
### Option D — run from source directly (development)
|
|
834
861
|
|
|
835
862
|
```powershell
|
|
836
863
|
python -m venv .venv
|
|
837
864
|
.\.venv\Scripts\Activate.ps1
|
|
838
|
-
pip install
|
|
865
|
+
pip install .
|
|
839
866
|
python run.py https://example.com # CLI
|
|
840
867
|
python run_gui.py # GUI
|
|
841
868
|
pytest # 598 tests
|
|
@@ -883,7 +910,7 @@ wpsecscan.exe https://your-wp-site.com --wpscan-token <KEY>
|
|
|
883
910
|
|
|
884
911
|
---
|
|
885
912
|
|
|
886
|
-
## What it checks (
|
|
913
|
+
## What it checks (226 checks)
|
|
887
914
|
|
|
888
915
|
Passive checks always run; aggressive checks need `--aggressive`.
|
|
889
916
|
|
|
@@ -1166,12 +1193,12 @@ to see errors).
|
|
|
1166
1193
|
|
|
1167
1194
|
| Category | Count |
|
|
1168
1195
|
|---------------------------|-------|
|
|
1169
|
-
| Checks | **
|
|
1196
|
+
| Checks | **226** |
|
|
1170
1197
|
| Payloads | **224** |
|
|
1171
1198
|
| Exploit signatures | **307** |
|
|
1172
1199
|
| Plugin CVE database | ~7,000 (Wordfence) + 7 other sources via the nightly aggregator |
|
|
1173
1200
|
| Exploit-playbook entries | **25** |
|
|
1174
|
-
| Tests | **
|
|
1201
|
+
| Tests | **667** |
|
|
1175
1202
|
|
|
1176
1203
|
---
|
|
1177
1204
|
|
|
@@ -6,9 +6,10 @@
|
|
|
6
6
|
[](https://github.com/bryanflowers/wpsecscan/releases/latest)
|
|
7
7
|
[](https://github.com/bryanflowers/wpsecscan/releases)
|
|
8
8
|
[](https://www.python.org/)
|
|
9
|
-
[](FEATURES.md)
|
|
10
10
|
[](docs/data-sources.md)
|
|
11
|
-
[](tests/)
|
|
12
|
+
[](https://pypi.org/project/wpsecscan/)
|
|
12
13
|
[](docs/verify-release.md)
|
|
13
14
|
[](docs/verify-release.md)
|
|
14
15
|
[](FEATURES.md)
|
|
@@ -25,7 +26,7 @@
|
|
|
25
26
|
|
|
26
27
|
**The most thoroughly-sourced WordPress vulnerability scanner — open source, AGPLv3, runs locally.**
|
|
27
28
|
|
|
28
|
-
|
|
29
|
+
226 checks across 18 categories. **8-source nightly CVE aggregator**
|
|
29
30
|
(NVD + GHSA + Mitre + OSV + Wordfence + WPVulnerability + CIRCL +
|
|
30
31
|
Patchstack). **SLSA L3 + Sigstore-signed releases**. **10-provider
|
|
31
32
|
threat-intel federation** (CISA KEV, EPSS, Exploit-DB, Metasploit,
|
|
@@ -83,7 +84,31 @@ Ships as two standalone Windows binaries — no Python required on the machine y
|
|
|
83
84
|
|
|
84
85
|
## Quick install
|
|
85
86
|
|
|
86
|
-
### Option A —
|
|
87
|
+
### Option A — `pip install wpsecscan` (any platform)
|
|
88
|
+
|
|
89
|
+
The simplest path on Linux, macOS, or Windows-with-Python:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
pip install wpsecscan
|
|
93
|
+
wpsecscan --version
|
|
94
|
+
wpsecscan https://example.com --json-only
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
PyPI: <https://pypi.org/project/wpsecscan/>
|
|
98
|
+
|
|
99
|
+
For the optional GUI minimize-to-tray feature, install with the
|
|
100
|
+
`[ui]` extra (pulls in Pillow + pystray):
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
pip install "wpsecscan[ui]"
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Other optional extras: `[pdf]` (reportlab for true PDF exec reports),
|
|
107
|
+
`[browser]` (playwright for headless DOM-XSS), `[yaml]` (pyyaml for
|
|
108
|
+
daemon config), `[ops]` (redis + bcrypt for enterprise mode), or
|
|
109
|
+
`[all]` to install everything.
|
|
110
|
+
|
|
111
|
+
### Option B — pre-built Windows binaries
|
|
87
112
|
|
|
88
113
|
1. Open `dist\` in this folder.
|
|
89
114
|
2. Copy `wpsecscan.exe` and `wpsecscan-gui.exe` somewhere on your PATH
|
|
@@ -93,7 +118,7 @@ Ships as two standalone Windows binaries — no Python required on the machine y
|
|
|
93
118
|
The first time you run them, Windows SmartScreen may warn that the publisher is unknown
|
|
94
119
|
(the binaries aren't code-signed). Click **More info → Run anyway**.
|
|
95
120
|
|
|
96
|
-
### Option
|
|
121
|
+
### Option C — build from source
|
|
97
122
|
|
|
98
123
|
Requires Python 3.10+ and PyInstaller. Open PowerShell in the project root:
|
|
99
124
|
|
|
@@ -111,12 +136,12 @@ dist\wpsecscan-gui.exe # GUI (~17 MB)
|
|
|
111
136
|
|
|
112
137
|
Both are single-file executables — copy them anywhere and they run on their own.
|
|
113
138
|
|
|
114
|
-
### Option
|
|
139
|
+
### Option D — run from source directly (development)
|
|
115
140
|
|
|
116
141
|
```powershell
|
|
117
142
|
python -m venv .venv
|
|
118
143
|
.\.venv\Scripts\Activate.ps1
|
|
119
|
-
pip install
|
|
144
|
+
pip install .
|
|
120
145
|
python run.py https://example.com # CLI
|
|
121
146
|
python run_gui.py # GUI
|
|
122
147
|
pytest # 598 tests
|
|
@@ -164,7 +189,7 @@ wpsecscan.exe https://your-wp-site.com --wpscan-token <KEY>
|
|
|
164
189
|
|
|
165
190
|
---
|
|
166
191
|
|
|
167
|
-
## What it checks (
|
|
192
|
+
## What it checks (226 checks)
|
|
168
193
|
|
|
169
194
|
Passive checks always run; aggressive checks need `--aggressive`.
|
|
170
195
|
|
|
@@ -447,12 +472,12 @@ to see errors).
|
|
|
447
472
|
|
|
448
473
|
| Category | Count |
|
|
449
474
|
|---------------------------|-------|
|
|
450
|
-
| Checks | **
|
|
475
|
+
| Checks | **226** |
|
|
451
476
|
| Payloads | **224** |
|
|
452
477
|
| Exploit signatures | **307** |
|
|
453
478
|
| Plugin CVE database | ~7,000 (Wordfence) + 7 other sources via the nightly aggregator |
|
|
454
479
|
| Exploit-playbook entries | **25** |
|
|
455
|
-
| Tests | **
|
|
480
|
+
| Tests | **667** |
|
|
456
481
|
|
|
457
482
|
---
|
|
458
483
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "wpsecscan"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.5.0"
|
|
8
8
|
description = "Defensive WordPress security scanner. 200+ checks, 8-source nightly CVE aggregator, AI-assisted remediation (BYO key), 15 compliance frameworks (OWASP/PCI/NIST/ISO/HIPAA/SOC2/HITRUST/CMMC), Sigstore-signed releases with SLSA L3 provenance, 10 threat-intel feeds (KEV/EPSS/Exploit-DB/ATT&CK/STIX/MISP/OTX/GreyNoise), continuous monitors, consent-gated exploit verification, multi-tenant RBAC/SSO/audit-log enterprise mode, 12 report formats. Authorized testing only."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -48,7 +48,8 @@ yaml = ["pyyaml>=6.0"]
|
|
|
48
48
|
# Distributed CVE-DB cache + RBAC bcrypt hashing
|
|
49
49
|
ops = ["redis>=5.0", "bcrypt>=4.0"]
|
|
50
50
|
# Optional Pillow for GUI image rendering + pystray for minimize-to-tray (#56)
|
|
51
|
-
|
|
51
|
+
# + keyring for OS-keychain credential storage (#42)
|
|
52
|
+
ui = ["Pillow>=10", "pystray>=0.19", "keyring>=24"]
|
|
52
53
|
# Everything optional in one install
|
|
53
54
|
all = [
|
|
54
55
|
"reportlab>=4.0",
|
|
@@ -58,6 +59,7 @@ all = [
|
|
|
58
59
|
"bcrypt>=4.0",
|
|
59
60
|
"Pillow>=10",
|
|
60
61
|
"pystray>=0.19",
|
|
62
|
+
"keyring>=24",
|
|
61
63
|
]
|
|
62
64
|
# Test deps (also installed by CI)
|
|
63
65
|
test = ["pytest>=7.4"]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.5.0"
|