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]
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"]