id = "pocsuite3" name = "Pocsuite3" homepage = "https://pocsuite.org/" description = "Pocsuite3 is an open-sourced remote vulnerability testing and proof-of-concept development framework." executables = ["pocsuite", "poc-console"] [dotfiles] # The official CLI documentation says API tokens entered for integrated # search/DNS services are saved in $HOME/.pocsuiterc. This is a credential-only # file, so there is no ordinary content path to sync. # https://pocsuite.org/guide/parameter-pocsuite.html paths = [] secret = ["~/.pocsuiterc"] [commands] format = 1 label = "Run a PoC against targets" description = "Run a PoC script in verify, attack or shell mode against a URL or file of targets. Search-engine dork options, API tokens and request tuning are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "usage" kind = "help" url = "https://raw.githubusercontent.com/knownsec/pocsuite3/HEAD/docs/USAGE.md" revision = "2026-10-27" evidence = """ usage: pocsuite [options] --version Show program's version number and exit -v {0,1,2,3,4,5,6} Verbosity level: 0-6 (default 1) -u URL [URL ...], --url URL [URL ...] -f URL_FILE, --file URL_FILE -p PORTS, --ports PORTS -r POC [POC ...] Load PoC file from local or remote from seebug website -k POC_KEYWORD Filter PoC by keyword, e.g. ecshop --verify Run poc with verify mode --attack Run poc with attack mode --shell Run poc with shell mode --proxy PROXY Use a proxy to connect to the target URL (protocol://host:port) --timeout TIMEOUT Seconds to wait before timeout connection (default 10) -o OUTPUT_PATH, --output OUTPUT_PATH --threads THREADS Max number of concurrent network requests (default 150) """ [[commands.field]] id = "url" label = "Target URL" type = "url" option = ["--url", "-u"] sources = ["usage"] [[commands.field]] id = "file" label = "Targets file" description = "One target per line." type = "path" option = ["--file", "-f"] path = { kind = "file", role = "input" } sources = ["usage"] [[commands.field]] id = "poc" label = "PoC script" type = "path" option = ["-r"] path = { kind = "file", role = "input" } sources = ["usage"] [[commands.field]] id = "verify" label = "Verify mode" type = "boolean" option = ["--verify"] sources = ["usage"] [[commands.field]] id = "attack" label = "Attack mode" type = "boolean" option = ["--attack"] effect = "exec" sources = ["usage"] [[commands.field]] id = "shell" label = "Shell mode" type = "boolean" option = ["--shell"] effect = "exec" sources = ["usage"] [[commands.field]] id = "proxy" label = "Proxy" type = "string" option = ["--proxy"] sources = ["usage"] [[commands.field]] id = "timeout" label = "Timeout (seconds)" type = "integer" option = ["--timeout"] sources = ["usage"] [[commands.field]] id = "threads" label = "Threads" type = "integer" option = ["--threads"] sources = ["usage"] [[commands.field]] id = "output" label = "Output file" type = "path" option = ["--output", "-o"] path = { kind = "file", role = "output", must_exist = false } effect = "overwrite" sources = ["usage"] [[commands.task]] id = "verify" label = "Verify a PoC" set = { verify = [true] } lock = ["verify"] fields = ["url", "poc", "verify", "output", "timeout", "threads"] required = ["url", "poc"] [[commands.group]] id = "basic" label = "Basic" fields = ["url", "file", "poc", "verify", "attack", "shell", "output"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["proxy", "timeout", "threads"]