shadow1ng/fscan · error

webscan_err_poc_not_found

Error message

webscan_err_poc_not_found

What it means

Sentinel lookup-miss error (ErrPocNotFound): after filtering the loaded POCs by pocInfo.PocName, no POC matched the requested name. It means the user asked for a POC that is not among the loaded YAML POC definitions (misspelled name or POC not bundled), and the scan is skipped.

Solutions

  1. Check the POC name spelling and available POC list (-pocname help or equivalent)
  2. Load additional POC files via the POC path option
  3. Treat as a skip, not a failure: log and continue other targets
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at webscan/web_scan.go:38 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of shadow1ng/fscan@95cc12e753 (2026-09-06). Data as JSON: /api/errors/544c5cf1b7eaaf65. Report an issue: GitHub.

Appendix: source

Thrown at webscan/web_scan.go:38

	"github.com/shadow1ng/fscan/common/i18n"
	"github.com/shadow1ng/fscan/webscan/lib"
)

// 常量定义
const (
	protocolHTTP     = "http://"
	protocolHTTPS    = "https://"
	yamlExt          = ".yaml"
	ymlExt           = ".yml"
	defaultTimeout   = 30 * time.Second
	concurrencyLimit = 10 // 并发加载POC的限制
)

// 错误定义
var (
	ErrInvalidURL    = errors.New(i18n.GetText("webscan_err_invalid_url"))
	ErrEmptyTarget   = errors.New(i18n.GetText("webscan_err_empty_target"))
	ErrPocNotFound   = errors.New(i18n.GetText("webscan_err_poc_not_found"))
	ErrPocLoadFailed = errors.New(i18n.GetText("webscan_err_poc_load_failed"))
)

//go:embed pocs
var pocsFS embed.FS

// pocStore 按 PocPath 缓存已加载的 POC 集合,支持多 session 使用不同 POC 路径
type pocStore struct {
	mu    sync.Mutex
	cache map[string][]*lib.Poc // key: pocPath(空字符串表示内嵌 POC)
}

var globalPocStore = &pocStore{cache: make(map[string][]*lib.Poc)}

// WebScan 执行Web漏洞扫描
func WebScan(ctx context.Context, info *common.HostInfo, cfg *common.Config, session *common.ScanSession) {
	// 初始化POC配置(用于CEL回调函数)
	lib.InitPOCConfig(cfg.DNSLog)

View on GitHub (pinned to 95cc12e753)