bingo-ai 6.2.332__tar.gz → 6.2.334__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.
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/PKG-INFO +1 -1
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/__init__.py +1 -1
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/function_schema.py +6 -6
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/ui/terminal.py +104 -82
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/pyproject.toml +1 -1
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/.gitignore +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/AGENTS.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/CLAUDE.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/README.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/batch/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/batch/runner.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/blackboard/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/blackboard/store.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/chain/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/chain/tracker.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/cli.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/config.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/action_runtime_helpers.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/amplifier.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/anti_hallucination.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/apt/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/apt/c2_channel.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/apt/lateral_movement.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/apt/phishing.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/apt/supply_chain.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/authorization.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/code_guard.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/execution_anchor.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/execution_runtime.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/exploits/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/exploits/glibc_tunables.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/exploits/mediatek_wappd.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/exploits/mitel_micollab.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/exploits/webp_cve2023_4863.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/file_watcher.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/intelligence.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/ip_block_detector.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/local_state.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/memory.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/multi_agent.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/parallel_runner.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/phantom_guard.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/proxy_hunter.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/proxy_rotator.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/recon/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/recon/active.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/recon/asset_db.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/recon/passive.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/rollback.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/session_parser.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/target_memory.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/vuln_agents.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/zero_hal_v5.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/core/zeroday.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/hitl/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/hitl/gate.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/hooks/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/hooks/pre_tool_hook.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/i18n.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/knowledge/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/knowledge/base/Auth/auth-bypass.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/knowledge/base/IDOR/idor-techniques.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/knowledge/base/JWT/jwt-attacks.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/knowledge/base/LFI/lfi-payloads.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/knowledge/base/RCE/rce-techniques.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/knowledge/base/SQLi/sqli-payloads.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/knowledge/base/SSRF/ssrf-payloads.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/knowledge/base/Untitled +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/knowledge/base/Upload/file-upload-bypass.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/knowledge/base/WAF/waf-bypass.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/knowledge/base/XSS/xss-payloads.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/knowledge/base/XXE/xxe-payloads.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/knowledge/cve_sync.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/knowledge/loader.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/lang/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/lang/strings.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/models/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/models/base.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/models/deepseek_prompt.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/models/prompt_cache.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/models/registry.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/models/system_prompt.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/orchestrator/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/orchestrator/engine.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/proxy/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/proxy/manager.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/redteam/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/redteam/agent.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/redteam/agents.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/redteam/phases/01_recon.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/redteam/phases/02_scan.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/redteam/phases/03_exploit.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/redteam/phases/04_webshell.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/redteam/phases/05_idor.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/redteam/phases/09_report.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/redteam/phases/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/redteam/pipeline.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/redteam/session.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/redteam/verification.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/roles/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/roles/builtin/api.yaml +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/roles/builtin/cloud.yaml +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/roles/builtin/ctf.yaml +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/roles/builtin/pentest.yaml +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/roles/builtin/web.yaml +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/roles/manager.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/SKILLS_INDEX.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/api_security/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/auth_attack/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/engine.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/401-403-bypass-techniques/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/active-directory-acl-abuse/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/active-directory-certificate-services/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/active-directory-kerberos-attacks/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/ai-ml-security/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/android-pentesting-tricks/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/anti-debugging-techniques/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/api-auth-and-jwt-abuse/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/api-authorization-and-bola/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/api-recon-and-docs/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/api-sec/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/arbitrary-write-to-rce/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/auth-sec/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/authbypass-authentication-flaws/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/binary-protection-bypass/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/browser-exploitation-v8/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/business-logic-vuln/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/business-logic-vulnerabilities/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/classical-cipher-analysis/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/clickjacking/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/cmdi-command-injection/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/code-obfuscation-deobfuscation/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/container-escape-techniques/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/cors-cross-origin-misconfiguration/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/crlf-injection/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/csp-bypass-advanced/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/csrf-cross-site-request-forgery/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/csv-formula-injection/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/dangling-markup-injection/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/defi-attack-patterns/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/dependency-confusion/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/deserialization-insecure/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/dns-rebinding-attacks/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/email-header-injection/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/expression-language-injection/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/file-access-vuln/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/format-string-exploitation/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/ghost-bits-cast-attack/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/gnuboard5-attack/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/graphql-and-hidden-parameters/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/hack/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/hash-attack-techniques/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/heap-exploitation/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/http-host-header-attacks/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/http-parameter-pollution/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/http2-specific-attacks/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/idor-broken-object-authorization/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/injection-checking/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/insecure-source-code-management/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/ios-pentesting-tricks/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/jndi-injection/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/jwt-oauth-token-attacks/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/kernel-exploitation/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/kubernetes-pentesting/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/lattice-crypto-attacks/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/linux-lateral-movement/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/linux-privilege-escalation/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/linux-security-bypass/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/llm-prompt-injection/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/macos-process-injection/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/macos-security-bypass/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/memory-forensics-volatility/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/mobile-ssl-pinning-bypass/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/network-protocol-attacks/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/nosql-injection/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/ntlm-relay-coercion/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/oauth-oidc-misconfiguration/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/open-redirect/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/path-traversal-lfi/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/prototype-pollution/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/prototype-pollution-advanced/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/race-condition/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/recon-and-methodology/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/recon-for-sec/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/request-smuggling/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/reverse-shell-techniques/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/rsa-attack-techniques/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/saml-sso-assertion-attacks/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/sandbox-escape-techniques/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/smart-contract-vulnerabilities/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/sqli-sql-injection/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/ssrf-server-side-request-forgery/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/ssti-server-side-template-injection/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/stack-overflow-and-rop/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/steganography-techniques/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/subdomain-takeover/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/symbolic-execution-tools/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/symmetric-cipher-attacks/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/traffic-analysis-pcap/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/tunneling-and-pivoting/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/type-juggling/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/unauthorized-access-common-services/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/upload-insecure-files/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/vm-and-bytecode-reverse/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/waf-bypass-techniques/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/web-cache-deception/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/websocket-security/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/windows-av-evasion/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/windows-lateral-movement/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/windows-privilege-escalation/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/xslt-injection/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/xss-cross-site-scripting/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/xxe-xml-external-entity/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/evasion-shellcode.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/host-brute.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/info-dir-brute.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/info-fingerprint.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/info-osint.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/info-port-scan.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/info-subdomain.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/post-ad.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/post-credentials.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/post-linux-privesc.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/post-win-privesc.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/tools-fuzz.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/tools-hydra.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/tools-impacket.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/tools-msf.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/tools-nmap.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/tools-sqlmap.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-auth-logic.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-cache-poison.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-captcha.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-cors.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-crlf.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-deser.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-dir-traversal.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-graphql.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-host-header.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-http-smuggling.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-lfi-path.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-race-condition.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-rce.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-sqli.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-ssrf.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-ssti.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-upload.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-waf-bypass.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-xss.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/SecSkills-main/references/web-xxe.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/advsec-plus/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/advsec-plus/references/api-security.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/advsec-plus/references/cloud-security.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/advsec-plus/references/evasion-advanced.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/advsec-plus/references/mobile-security.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/advsec-plus/references/supply-chain-devsec.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/advsec-plus/references/web-advanced.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/api-unauth-fuzz/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/pentest-boundary/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/pentest-boundary/references/authorization-checklist.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/pentest-boundary/references/emergency-response.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/pentest-boundary/references/rate-control-detail.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/skill-evolver/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/skill-evolver/references/domain-gaps.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/skill-evolver/references/evolution-log.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/skill-evolver/references/false-positives.db.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/local_skills/skill-evolver/references/techniques.db.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/skills_data.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/skills_data10.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/skills_data11.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/skills_data12.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/skills_data13.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/skills_data14.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/skills_data15.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/skills_data16.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/skills_data2.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/skills_data3.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/skills_data4.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/skills_data5.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/skills_data6.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/skills_data7.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/skills_data8.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/skills_data9.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/sqli/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/waf_bypass/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/web_vuln/SKILL.md +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/acpv.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/admin_panel_auto.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/advanced_sqli.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/agent_tools.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/ai_code_sec_surface.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/apache_druid_ssrf.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/api_discovery.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/api_dynamic_capture.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/api_fuzzer.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/api_version_enum.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/apk_secret_scanner.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/apk_toolkit.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/aruba_xxe.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/auth_bypass.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/auth_tools.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/bizlogic_fuzzer.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/burp_engine.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/cache_poison.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/cloud_bucket_scanner.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/cloud_token_recon.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/cloudflare_acme_bypass.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/copy_fail_lpe.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/cspt_waf_bypass.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/csrf_scanner.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/cswsh_rce.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/ctf_lab_engine.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/db_dumper.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/db_privesc.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/deserialize_tester.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/dom_xss_scanner.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/dompurify_pp_bypass.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/dotnet_analyzer.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/downloader.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/exe_analyzer.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/executor.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/findings_exporter.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/ghostcat_scanner.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/gnuboard.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/graphql_advanced.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/graphql_tester.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/hash_crack.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/hash_lookup.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/html_autofill_steal.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/http_probe.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/idor_scanner.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/ingress_nightmare_rce.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/installer.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/ivanti_sentry.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/js_analyzer.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/js_secret_finder.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/korean_cms.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/login_executor.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/mobile_recon.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/mssql2025.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/nextjs_cache_sxss.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/nuclei_runner.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/oauth_attacker.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/oauth_chain.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/panos_auth_bypass.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/param_discovery.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/path_dict.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/pentest_precision.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/playwright_engine.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/playwright_recon.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/post_exploit.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/race_condition.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/react2shell_waf_bypass.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/recon_engine.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/recon_tools.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/redis_dark_replica.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/registry.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/report_builder.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/ruby_libafl_fuzz.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/secknowledge_loader.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/session_manager.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/shell_dropper.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/smuggling_exploiter.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/smuggling_scanner.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/sqli.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/sqli_advanced.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/sqli_auto.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/ssl_deep_scanner.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/ssrf_advanced.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/ssrf_scanner.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/ssti_scanner.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/subdomain_takeover.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/twofa_bypass.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/upload_bypass.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/upload_exploiter.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/waf_bypass.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/waf_sqli_payloads.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/web_cache_deception.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/web_tools.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/webhook_reporter.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/webshell_upload.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/xss_exploiter.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools/xxe_scanner.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools_ext/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools_ext/autoexploit_modules.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools_ext/builtin/advanced_scanners.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools_ext/builtin/advanced_vuln_scanner.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools_ext/builtin/ffuf.yaml +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools_ext/builtin/mission_orchestrator.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools_ext/builtin/nmap.yaml +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools_ext/builtin/nuclei.yaml +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools_ext/builtin/payload_db.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools_ext/builtin/security_audit.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools_ext/builtin/subfinder.yaml +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools_ext/builtin/vuln_scanner_plus.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools_ext/loader.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools_ext/pentest_tools.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/tools_ext/vshell_tools.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/ui/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/vulns/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/vulns/manager.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/install.sh +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/scripts/bingo-memory-autostart.sh +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/scripts/bingo-memory-sync.sh +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/scripts/git-hooks/post-commit +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/tests/__init__.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/tests/test_execution_runtime.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/tests/test_hint_tty_sane.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/tests/test_local_state.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/tests/test_model_stream_transport.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/tests/test_mvvs_false_positive.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/tests/test_task_graph_frontier.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/tests/test_terminal_completion_regressions.py +0 -0
- {bingo_ai-6.2.332 → bingo_ai-6.2.334}/tests/test_vshell_tools.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bingo-ai
|
|
3
|
-
Version: 6.2.
|
|
3
|
+
Version: 6.2.334
|
|
4
4
|
Summary: AI-powered red team terminal — Zero-Hallucination · WAF bypass · XSS·Upload·SSRF·OAuth·GraphQL·Smuggling exploit chains · CVE/Exploit KB (trickest+exploitarium) · role-based testing · vuln manager · attack chain · HITL · LLM Orchestrator · multi-model · multi-language
|
|
5
5
|
Author-email: bingook <bingook@users.noreply.github.com>
|
|
6
6
|
License: MIT
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""Bingo — Hacker-style AI Terminal"""
|
|
2
|
-
__version__ = "6.2.
|
|
2
|
+
__version__ = "6.2.334"
|
|
@@ -60,9 +60,9 @@ PYTHON_EXEC = {
|
|
|
60
60
|
HTTP_REQUEST = {
|
|
61
61
|
"name": "http_request",
|
|
62
62
|
"description": (
|
|
63
|
-
"Send
|
|
64
|
-
"
|
|
65
|
-
"
|
|
63
|
+
"Send an HTTP request to the TARGET and return full response with headers. "
|
|
64
|
+
"Provide only the path — the target domain is automatically prepended by the executor. "
|
|
65
|
+
"Use when you need precise control over method, headers, body."
|
|
66
66
|
),
|
|
67
67
|
"parameters": {
|
|
68
68
|
"type": "object",
|
|
@@ -72,9 +72,9 @@ HTTP_REQUEST = {
|
|
|
72
72
|
"enum": ["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"],
|
|
73
73
|
"description": "HTTP method",
|
|
74
74
|
},
|
|
75
|
-
"
|
|
75
|
+
"path": {
|
|
76
76
|
"type": "string",
|
|
77
|
-
"description": "
|
|
77
|
+
"description": "Request path on the target (e.g. /api/login, /admin/)",
|
|
78
78
|
},
|
|
79
79
|
"headers": {
|
|
80
80
|
"type": "object",
|
|
@@ -96,7 +96,7 @@ HTTP_REQUEST = {
|
|
|
96
96
|
"default": 30,
|
|
97
97
|
},
|
|
98
98
|
},
|
|
99
|
-
"required": ["method", "
|
|
99
|
+
"required": ["method", "path"],
|
|
100
100
|
},
|
|
101
101
|
}
|
|
102
102
|
|
|
@@ -4113,13 +4113,8 @@ class BingoTerminal:
|
|
|
4113
4113
|
import platform as _plt
|
|
4114
4114
|
if _plt.system() == "Darwin" and "grep" in cmd and "-P" in cmd:
|
|
4115
4115
|
cmd = re.sub(r'(\s-\w*)P\b', lambda m: m.group(1) + 'E', cmd)
|
|
4116
|
-
#
|
|
4117
|
-
|
|
4118
|
-
if drift_blocked:
|
|
4119
|
-
output = drift_blocked
|
|
4120
|
-
self.console.print(f"[{THEME['dim']}] 🚫 Target drift blocked in bash_exec[/]")
|
|
4121
|
-
results.append({"id": tc.id, "name": name, "output": output})
|
|
4122
|
-
continue
|
|
4116
|
+
# v6.2.333: drift 차단이 아닌 자동 교정 — URL 도메인을 타겟으로 치환
|
|
4117
|
+
cmd = self._rewrite_urls_to_target(cmd)
|
|
4123
4118
|
# VPN DNS bypass: rewrite curl/wget/dig commands to use external DNS
|
|
4124
4119
|
if _vpn_spoof:
|
|
4125
4120
|
cmd = self._rewrite_dns_commands(cmd)
|
|
@@ -4164,13 +4159,8 @@ class BingoTerminal:
|
|
|
4164
4159
|
if not code:
|
|
4165
4160
|
output = "[ERROR] No code provided"
|
|
4166
4161
|
else:
|
|
4167
|
-
#
|
|
4168
|
-
|
|
4169
|
-
if drift_blocked:
|
|
4170
|
-
output = drift_blocked
|
|
4171
|
-
self.console.print(f"[{THEME['dim']}] 🚫 Target drift blocked in python_exec[/]")
|
|
4172
|
-
results.append({"id": tc.id, "name": name, "output": output})
|
|
4173
|
-
continue
|
|
4162
|
+
# v6.2.333: drift 차단 → 자동 교정 (URL 도메인을 타겟으로 치환)
|
|
4163
|
+
code = self._rewrite_urls_to_target(code)
|
|
4174
4164
|
# VPN DNS leak guard: block hardcoded 198.18.x.x IPs in python code
|
|
4175
4165
|
if _vpn_spoof:
|
|
4176
4166
|
# Remove line comments before checking
|
|
@@ -4210,79 +4200,45 @@ class BingoTerminal:
|
|
|
4210
4200
|
output += "\n\n[WARNING] VPN virtual IP detected in output — DNS leak detected"
|
|
4211
4201
|
elif name == "http_request":
|
|
4212
4202
|
import httpx as _httpx
|
|
4203
|
+
import re
|
|
4204
|
+
from urllib.parse import urlparse, urlunparse
|
|
4213
4205
|
method = args.get("method", "GET")
|
|
4214
|
-
|
|
4206
|
+
# v6.2.333: executor-owned URL — model provides path only, executor binds target
|
|
4207
|
+
path = args.get("path", "")
|
|
4208
|
+
_legacy_url = args.get("url", "")
|
|
4209
|
+
if not path and _legacy_url:
|
|
4210
|
+
_lp = urlparse(_legacy_url)
|
|
4211
|
+
path = _lp.path + (f"?{_lp.query}" if _lp.query else "")
|
|
4212
|
+
if not path:
|
|
4213
|
+
path = "/"
|
|
4214
|
+
if not path.startswith("/"):
|
|
4215
|
+
path = "/" + path
|
|
4215
4216
|
headers = args.get("headers") or {}
|
|
4216
4217
|
body = args.get("body")
|
|
4217
4218
|
follow = args.get("follow_redirects", False)
|
|
4218
|
-
# POST requests to WAF-protected endpoints often hang — use shorter timeout
|
|
4219
4219
|
default_timeout = 10 if method in ("POST", "PUT", "PATCH") else 30
|
|
4220
4220
|
timeout = args.get("timeout", default_timeout)
|
|
4221
|
-
|
|
4222
|
-
|
|
4221
|
+
target_raw = getattr(self, "_current_target", "")
|
|
4222
|
+
if not target_raw:
|
|
4223
|
+
output = "[ERROR] No target set — use /target first"
|
|
4223
4224
|
else:
|
|
4224
|
-
|
|
4225
|
-
|
|
4226
|
-
|
|
4227
|
-
|
|
4225
|
+
_tp = urlparse(target_raw if target_raw.startswith("http") else f"https://{target_raw}")
|
|
4226
|
+
_target_host = _tp.hostname or ""
|
|
4227
|
+
_target_scheme = _tp.scheme or "https"
|
|
4228
|
+
url = f"{_target_scheme}://{_target_host}{path}"
|
|
4228
4229
|
parsed = urlparse(url)
|
|
4229
|
-
request_host = parsed.hostname or ""
|
|
4230
|
-
target_url = getattr(self, "_current_target", "")
|
|
4231
|
-
if target_url:
|
|
4232
|
-
target_parsed = urlparse(target_url if target_url.startswith("http") else f"http://{target_url}")
|
|
4233
|
-
target_host = target_parsed.hostname or ""
|
|
4234
|
-
req_ext = tldextract.extract(request_host)
|
|
4235
|
-
tgt_ext = tldextract.extract(target_host)
|
|
4236
|
-
req_domain = f"{req_ext.domain}.{req_ext.suffix}" if req_ext.domain and req_ext.suffix else request_host
|
|
4237
|
-
tgt_domain = f"{tgt_ext.domain}.{tgt_ext.suffix}" if tgt_ext.domain and tgt_ext.suffix else target_host
|
|
4238
|
-
_resolved_ip = getattr(self, "_target_resolved_ip", None)
|
|
4239
|
-
_is_target_ip = (request_host == _resolved_ip) if _resolved_ip else False
|
|
4240
|
-
_is_cf_domain = bool(_resolved_ip and self._is_cf_ip(_resolved_ip))
|
|
4241
|
-
if req_domain != tgt_domain and request_host != target_host:
|
|
4242
|
-
_session_allowed_http = getattr(self, "_session_allowed_domains", set())
|
|
4243
|
-
if req_domain in _session_allowed_http or request_host in _session_allowed_http:
|
|
4244
|
-
# v6.2.332: CDN 도메인 — 정적 자산만 허용, API/로그인 차단
|
|
4245
|
-
_req_path = parsed.path.lower()
|
|
4246
|
-
_req_method = (method or "GET").upper()
|
|
4247
|
-
_cdn_api = bool(re.search(r'/api/|/login|/admin|/auth|/user/|/account|/register|/logout|/signin|/signup|/pass|/member', _req_path))
|
|
4248
|
-
_cdn_mut = _req_method in ("POST", "PUT", "DELETE", "PATCH")
|
|
4249
|
-
if _cdn_api or _cdn_mut:
|
|
4250
|
-
output = (
|
|
4251
|
-
f"[ERROR] CDN/연관 도메인 API 접근 차단: {request_host}\n"
|
|
4252
|
-
f"타겟: {target_url}\n"
|
|
4253
|
-
f"CDN 도메인({request_host})은 정적 자산(CSS/JS/img) 조회만 허용됩니다.\n"
|
|
4254
|
-
f"API/로그인 테스트는 실제 타겟({target_host})에 직접 수행하세요."
|
|
4255
|
-
)
|
|
4256
|
-
self.console.print(f"[{THEME['dim']}] 🚫 CDN 도메인 API 차단: {request_host}[/]")
|
|
4257
|
-
results.append({"id": tc.id, "name": name, "output": output})
|
|
4258
|
-
continue
|
|
4259
|
-
elif _is_target_ip and self._check_ip_direct_accessible(request_host):
|
|
4260
|
-
pass # resolved IP + accessible
|
|
4261
|
-
elif _is_cf_domain and self._check_ip_direct_accessible(request_host, domain=target_host):
|
|
4262
|
-
pass # CF domain: origin IP verified via Host header
|
|
4263
|
-
else:
|
|
4264
|
-
_reason = "IP direct access blocked (domain-binding)" if _is_target_ip else "Target drift blocked"
|
|
4265
|
-
output = f"[ERROR] {_reason}: {url}\nSession target: {target_url}\nAttempted: {request_host} ({req_domain})\nAllowed: {target_host} ({tgt_domain})"
|
|
4266
|
-
self.console.print(f"[{THEME['dim']}] 🚫 {_reason}: {request_host}[/]")
|
|
4267
|
-
results.append({"id": tc.id, "name": name, "output": output})
|
|
4268
|
-
continue
|
|
4269
4230
|
self.console.print(
|
|
4270
4231
|
f"[{THEME['dim']}] ⚙ http_request: {method} {url[:100]}[/]"
|
|
4271
4232
|
)
|
|
4272
|
-
# VPN DNS bypass: resolve via external DNS
|
|
4233
|
+
# VPN DNS bypass: resolve via external DNS
|
|
4273
4234
|
if _vpn_spoof:
|
|
4274
|
-
|
|
4275
|
-
|
|
4276
|
-
|
|
4277
|
-
|
|
4278
|
-
|
|
4279
|
-
|
|
4280
|
-
|
|
4281
|
-
if parsed.port:
|
|
4282
|
-
netloc = f"{real_ip}:{parsed.port}"
|
|
4283
|
-
url = urlunparse((parsed.scheme, netloc, parsed.path, parsed.params, parsed.query, parsed.fragment))
|
|
4284
|
-
# Preserve original Host header for virtual hosting
|
|
4285
|
-
headers["Host"] = original_host
|
|
4235
|
+
real_ip = self._resolve_via_external_dns(_target_host)
|
|
4236
|
+
if real_ip:
|
|
4237
|
+
netloc = real_ip
|
|
4238
|
+
if parsed.port:
|
|
4239
|
+
netloc = f"{real_ip}:{parsed.port}"
|
|
4240
|
+
url = urlunparse((parsed.scheme, netloc, parsed.path, parsed.params, parsed.query, parsed.fragment))
|
|
4241
|
+
headers["Host"] = _target_host
|
|
4286
4242
|
with _httpx.Client(
|
|
4287
4243
|
verify=False, timeout=timeout,
|
|
4288
4244
|
follow_redirects=follow,
|
|
@@ -4290,16 +4246,13 @@ class BingoTerminal:
|
|
|
4290
4246
|
resp = client.request(method, url, headers=headers, content=body)
|
|
4291
4247
|
resp_headers = "\n".join(f"{k}: {v}" for k, v in resp.headers.items())
|
|
4292
4248
|
output = f"HTTP/{resp.http_version} {resp.status_code}\n{resp_headers}\n\n{resp.text[:6000]}"
|
|
4293
|
-
# Check for 198.18.x.x contamination in response
|
|
4294
4249
|
if _vpn_spoof and ("198.18." in output or "198.19." in output):
|
|
4295
|
-
output += "\n\n[WARNING] VPN virtual IP detected in response —
|
|
4296
|
-
#
|
|
4250
|
+
output += "\n\n[WARNING] VPN virtual IP detected in response — DNS leak"
|
|
4251
|
+
# 응답에서 발견된 연관 도메인 등록 (CDN 정적자산 용도)
|
|
4297
4252
|
try:
|
|
4298
4253
|
import tldextract as _tld2
|
|
4299
|
-
|
|
4300
|
-
|
|
4301
|
-
_tgt_ext2 = _tld2.extract(_tgt_host2)
|
|
4302
|
-
_tgt_regd2 = f"{_tgt_ext2.domain}.{_tgt_ext2.suffix}" if _tgt_ext2.domain and _tgt_ext2.suffix else _tgt_host2
|
|
4254
|
+
_tgt_ext2 = _tld2.extract(_target_host)
|
|
4255
|
+
_tgt_regd2 = f"{_tgt_ext2.domain}.{_tgt_ext2.suffix}" if _tgt_ext2.domain and _tgt_ext2.suffix else _target_host
|
|
4303
4256
|
for _dm2 in re.findall(r'https?://([a-zA-Z0-9][-a-zA-Z0-9.]*\.[a-zA-Z]{2,})', resp.text[:6000]):
|
|
4304
4257
|
_ext2 = _tld2.extract(_dm2)
|
|
4305
4258
|
_regd2 = f"{_ext2.domain}.{_ext2.suffix}" if _ext2.domain and _ext2.suffix else _dm2
|
|
@@ -4389,6 +4342,75 @@ class BingoTerminal:
|
|
|
4389
4342
|
self._ip_accessibility_cache = cache
|
|
4390
4343
|
return result
|
|
4391
4344
|
|
|
4345
|
+
def _rewrite_urls_to_target(self, text: str) -> str:
|
|
4346
|
+
"""Rewrite non-target URLs to canonical target domain (structural anti-hallucination).
|
|
4347
|
+
|
|
4348
|
+
Instead of BLOCKING drift URLs, REWRITE them so the model's intent (path/method)
|
|
4349
|
+
is preserved but always directed at the actual target. This makes it structurally
|
|
4350
|
+
impossible for drift-domain data to be misattributed as target findings.
|
|
4351
|
+
"""
|
|
4352
|
+
if not hasattr(self, "_current_target") or not self._current_target:
|
|
4353
|
+
return text
|
|
4354
|
+
import re
|
|
4355
|
+
from urllib.parse import urlparse
|
|
4356
|
+
import tldextract
|
|
4357
|
+
|
|
4358
|
+
target_parsed = urlparse(self._current_target if self._current_target.startswith("http") else f"https://{self._current_target}")
|
|
4359
|
+
target_host = target_parsed.hostname or ""
|
|
4360
|
+
target_scheme = target_parsed.scheme or "https"
|
|
4361
|
+
tgt_ext = tldextract.extract(target_host)
|
|
4362
|
+
tgt_domain = f"{tgt_ext.domain}.{tgt_ext.suffix}" if tgt_ext.domain and tgt_ext.suffix else target_host
|
|
4363
|
+
|
|
4364
|
+
_OSINT_ALLOWED = {
|
|
4365
|
+
"google.com", "google.co.kr", "bing.com", "shodan.io",
|
|
4366
|
+
"censys.io", "crt.sh", "archive.org", "web.archive.org",
|
|
4367
|
+
"virustotal.com", "urlscan.io", "securitytrails.com",
|
|
4368
|
+
"exploit-db.com", "github.com", "pastebin.com",
|
|
4369
|
+
"dnsdb.info", "bgp.he.net", "whois.domaintools.com",
|
|
4370
|
+
}
|
|
4371
|
+
_session_allowed = getattr(self, "_session_allowed_domains", set())
|
|
4372
|
+
_STATIC_RE = re.compile(r'\.(css|js|png|jpg|jpeg|gif|svg|woff2?|ttf|eot|ico|webp|map)(\?|$|[\s\'"])')
|
|
4373
|
+
_rewritten = []
|
|
4374
|
+
|
|
4375
|
+
url_pattern = r'(https?://)([a-zA-Z0-9][-a-zA-Z0-9.]*[a-zA-Z0-9])(/[^\s\'"<>]*)?'
|
|
4376
|
+
|
|
4377
|
+
def _rewrite(m):
|
|
4378
|
+
scheme = m.group(1)
|
|
4379
|
+
host = m.group(2)
|
|
4380
|
+
path = m.group(3) or ""
|
|
4381
|
+
|
|
4382
|
+
# IP address → rewrite to target domain (웹 공격에 IP 사용 금지)
|
|
4383
|
+
if re.match(r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$', host):
|
|
4384
|
+
_rewritten.append(host)
|
|
4385
|
+
return f"{target_scheme}://{target_host}{path}"
|
|
4386
|
+
|
|
4387
|
+
req_ext = tldextract.extract(host)
|
|
4388
|
+
req_domain = f"{req_ext.domain}.{req_ext.suffix}" if req_ext.domain and req_ext.suffix else host
|
|
4389
|
+
|
|
4390
|
+
# Target domain → keep
|
|
4391
|
+
if req_domain == tgt_domain or host == target_host:
|
|
4392
|
+
return m.group(0)
|
|
4393
|
+
|
|
4394
|
+
# OSINT tools → keep
|
|
4395
|
+
if req_domain in _OSINT_ALLOWED:
|
|
4396
|
+
return m.group(0)
|
|
4397
|
+
|
|
4398
|
+
# CDN/session-allowed + static file extension → keep
|
|
4399
|
+
if req_domain in _session_allowed or host in _session_allowed:
|
|
4400
|
+
if _STATIC_RE.search(path):
|
|
4401
|
+
return m.group(0)
|
|
4402
|
+
|
|
4403
|
+
# Everything else → rewrite domain to target
|
|
4404
|
+
_rewritten.append(host)
|
|
4405
|
+
return f"{target_scheme}://{target_host}{path}"
|
|
4406
|
+
|
|
4407
|
+
result = re.sub(url_pattern, _rewrite, text)
|
|
4408
|
+
if _rewritten:
|
|
4409
|
+
unique = set(_rewritten)
|
|
4410
|
+
for h in unique:
|
|
4411
|
+
self.console.print(f"[{THEME['dim']}] 🔄 URL 교정: {h} → {target_host}[/]")
|
|
4412
|
+
return result
|
|
4413
|
+
|
|
4392
4414
|
def _check_target_drift_in_text(self, text: str) -> str | None:
|
|
4393
4415
|
"""Check if text contains URLs pointing to different domains than session target."""
|
|
4394
4416
|
if not hasattr(self, "_current_target") or not self._current_target:
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "bingo-ai"
|
|
7
|
-
version = "6.2.
|
|
7
|
+
version = "6.2.334"
|
|
8
8
|
description = "AI-powered red team terminal — Zero-Hallucination · WAF bypass · XSS·Upload·SSRF·OAuth·GraphQL·Smuggling exploit chains · CVE/Exploit KB (trickest+exploitarium) · role-based testing · vuln manager · attack chain · HITL · LLM Orchestrator · multi-model · multi-language"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12"
|
|
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
|
{bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/401-403-bypass-techniques/SKILL.md
RENAMED
|
File without changes
|
{bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/active-directory-acl-abuse/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/android-pentesting-tricks/SKILL.md
RENAMED
|
File without changes
|
{bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/anti-debugging-techniques/SKILL.md
RENAMED
|
File without changes
|
{bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/api-auth-and-jwt-abuse/SKILL.md
RENAMED
|
File without changes
|
{bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/api-authorization-and-bola/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bingo_ai-6.2.332 → bingo_ai-6.2.334}/bingo/skills/hack-skills/arbitrary-write-to-rce/SKILL.md
RENAMED
|
File without changes
|