nosqli_error_based

package
v0.5.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 3, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ModuleID    = "nosqli-error-based"
	ModuleName  = "NoSQLi Error Based"
	ModuleShort = "Detects NoSQL injection via error messages and operator injection"
)

Variables

View Source
var (
	ModuleDesc = `` /* 692-byte string literal not displayed */

	ModuleConfirmation = "Confirmed when injected NoSQL operators trigger database error patterns in the response body"
	// Error-string matching is inherently heuristic — a driver-error pattern can
	// surface in non-exploitable contexts (a reflected message, an upstream
	// component's log line, an incidental token in a bundle) even after the
	// static-asset, corroboration, reproduce, and clean-control gates. Report
	// High/Tentative so the finding is treated as a lead to verify, not a
	// definitive injection.
	ModuleSeverity   = severity.High
	ModuleConfidence = severity.Tentative
	ModuleTags       = []string{"injection", "sqli", "moderate"}
)

Functions

This section is empty.

Types

type Module

type Module struct {
	modkit.BaseActiveModule
	// contains filtered or unexported fields
}

Module implements the NoSQLi Error Based active scanner.

func New

func New() *Module

New creates a new NoSQLi Error Based module.

func (*Module) CanProcess

func (m *Module) CanProcess(ctx *httpmsg.HttpRequestResponse) bool

CanProcess extends the default to skip static assets / code bundles, which are never a NoSQL query handler — a DB-error-shaped token (a driver class name, a lone "$expr") found inside one is incidental, not a leaked database error. The motivating false positive was a MongoDB pattern matched inside a minified pdf.js worker served as application/javascript. Both the captured content-type and the URL path are checked so an asset whose baseline lacked a content-type is still skipped by extension.

func (*Module) ScanPerInsertionPoint

func (m *Module) ScanPerInsertionPoint(
	ctx *httpmsg.HttpRequestResponse,
	ip httpmsg.InsertionPoint,
	httpClient *http.Requester,
	scanCtx *modkit.ScanContext,
) ([]*output.ResultEvent, error)

ScanPerInsertionPoint tests a single insertion point for NoSQL injection.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL