Modules Reference

August 14, 2026 · View on GitHub

Deep Eye modules are packages under modules/. Most attack modules share one interface; pipeline helpers differ slightly.

Standard interface

class ModuleName:
    def __init__(self, http_client, config: dict):
        ...

    def scan(self, url: str, context: dict | None = None) -> list[dict]:
        # vulnerability result dicts
        ...

Result dict: type, severity, url, parameter, payload, evidence, remediation (+ optional fields).

Enable attack modules via vulnerability_scanner.enabled_checks in config (not every package is on by default).


Web application

PackageCheck keyDescription
api_securityapi_security, graphql_vulnerabilitiesOWASP API Top 10 + GraphQL basics
graphql_deepgraphql_deepBatching, aliases, depth budget probes
authenticationauthenticationSession / auth testing
business_logicbusiness_logicWorkflow / logic abuse
file_uploadfile_uploadUpload bypasses
websocketwebsocketWS upgrade probes
cors_cspcors_cspCORS reflection, CSP gaps, Trusted Types
idoridorIDOR/BOLA ID/UUID/b64 swap + role-header delta
stored_xssstored_xssSecond-order XSS inject + re-fetch
email_injectionemail_injectionHeader/CRLF on mail-like forms
cache_deceptioncache_deceptionPath normalization cache tricks
supply_chain_jssupply_chain_jsThird-party JS, SRI, outdated libs
api_bola_deepapi_bola_deepAPI BOLA/IDOR + mass-assignment probes
websocket_deepwebsocket_deepCSWSH / origin / handshake injection
sse_injectionsse_injectionSSE endpoint discovery + event reflection
cloud_misconfigcloud_misconfigBucket listing + metadata SSRF hints
php_webshellphp_webshellPHP LFI wrappers + webshell path probes

Injection & protocol

PackageCheck keyDescription
nosql_injectionnosql_injectionNoSQL injection
http_smugglinghttp_smugglingClassic smuggling
h2_smuggleh2_smuggleh2c upgrade + CL/TE ambiguity
host_header_deephost_header_deepHost/XFH poisoning, reset-path severity boost
hpp_pollutionhpp_pollutionHTTP parameter pollution differential
open_redirect_deepopen_redirect_deepAdvanced open redirect / scheme confusion
crlf_header_inject_deepcrlf_header_inject_deepCRLF response splitting / Set-Cookie
ssti_enginesssti_enginesMulti-engine SSTI (Jinja/Twig/SpEL/FreeMarker…)
http_method_overridehttp_method_overrideVerb tampering via override headers
log4shelllog4shellJNDI / Log4j
prototype_pollutionprototype_pollutionJS prototype pollution
mass_assignmentmass_assignmentMass assignment
ssrf_cloudssrf_cloudCloud metadata + bypass corpus (plus core SSRF)
jwt_deepjwt_deepalg=none, kid tricks
oauth_testingoauth_testingOAuth issues
saml_attackssaml_attacksSAML attacks
race_conditionrace_conditionConcurrent races

Discovery & infra

PackageCheck / configDescription
reconnaissancescanner.enable_reconDNS, WHOIS, OSINT, tech
directory_bruteforcedirectory_bruteforcePath brute
port_scannerport_scannerTCP ports
subdomain_takeoversubdomain_takeoverDangling DNS
cache_poisoningcache_poisoningCache poison headers
waf_fingerprintwaf_fingerprintWAF ID + payload profile
openapi_ingestopenapi.*OpenAPI/Swagger → URL seed
secrets_scannersecrets + secret_scanningLeaked secrets in responses
secret_scanning(content scanner)Pattern pack used with secret_scanning check

Mobile / Frida

PackageCheck keyDescription
frida_mobilefrida_mobileOffline Frida hook scripts + AI payload advice
android_staticandroid_staticAPK zip heuristics (debuggable, secrets)
ios_plistios_plistInfo.plist ATS + URL schemes
mobile_ssl_pinningmobile_ssl_pinningPinning indicators in artifacts
mobile_ai_chainmobile_ai_chainOrdered mobile attack chain + payloads

Enable with mobile.enabled + checks above in enabled_checks.

Auth & automation

PackageConfig keyDescription
auth_sessionauth_sessionMulti-role cookie/header store
login_replaylogin_replayJSON macro login (incl. optional Playwright step)
captcha_detectioncaptchaDetect captcha; skip protected pages
challenge_solverchallenge_solverCF/Akamai solve via Playwright
intercepting_proxyintercepting_proxymitmweb subprocess
browser_automationadvanced.enable_javascript_renderingPlaywright smart tests
payload_obfuscationpayload configWAF encoding helpers

AI & intelligence

PackageConfig keyDescription
ai_triageai_triage / bug_bountyFP scoring + bounty MD
ai_plannerai_plannerCheck order + budget after recon
evidence_summaryevidence_summaryPer-finding LLM bullets
fp_replayfp_replayRe-probe triage FPs
cve_intelligencerag, experimentalCVE DB, matcher, RAG index
template_enginetemplatesNuclei-style YAML execution
ml_detectionml_detection / anomaly_detectorAnomaly detector

Collaboration & reporting helpers

PackageConfigDescription
collaborationcollaborationTeam session helper (library-style)
reporting—Interactive report helper (demo path)

How modules are wired

PathModules
VulnerabilityScanner imports + scan()Classic set (api, auth, nosql, …)
VulnerabilityScanner._feature_testerscors_csp, jwt_deep, graphql_deep, idor, stored_xss, email_injection, cache_deception, h2_smuggle, supply_chain_js, waf_fingerprint, ssrf_cloud, host_header_deep, hpp_pollution, open_redirect_deep, crlf_header_inject_deep, ssti_engines, http_method_override, api_bola_deep, websocket_deep, sse_injection, cloud_misconfig, php_webshell, frida_mobile, android_static, ios_plist, mobile_ssl_pinning, mobile_ai_chain
ScannerEngine._init_extra_module_testersdirectory_bruteforce, port_scanner, saml_attacks, subdomain_takeover, cache_poisoning
ScannerEngine lifecyclerecon, browser, secrets, templates, challenge, login, captcha, proxy, OAST, OpenAPI, planner, dedupe, FP replay, evidence, RAG, compliance, triage

Adding a module

  1. Create modules/<name>/__init__.py + tester
  2. Implement (http_client, config) + scan(url, context=None)
  3. Append to _feature_testers or _init_extra_module_testers
  4. Add check name under enabled_checks in config/config.example.yaml
  5. Add a small test under tests/ when practical

Do not invent nonstandard result keys that break export/diff.