Documentation
¶
Overview ¶
Package iisgate provides an active, cached confirmation that a host genuinely runs IIS/ASP.NET before the heavier IIS modules probe it. Passive header or tech-registry signals (Server: Microsoft-IIS, X-AspNet-Version, ASP.NET cookies) can be spoofed by an unrelated proxy, so the IIS modules combine those with the behavioral check here: only a real ASP.NET pipeline strips a cookieless (S(token)) segment from the path and still resolves the request.
Index ¶
- func ConfirmIISBehavior(host string, ctx *httpmsg.HttpRequestResponse, client *http.Requester) bool
- func IsIIS(ctx *httpmsg.HttpRequestResponse, scanCtx *modkit.ScanContext, host string, ...) bool
- func LooksLikeIIS(ctx *httpmsg.HttpRequestResponse, scanCtx *modkit.ScanContext, host string) bool
- func ResetCache()
- func RespLooksIIS(resp *httpmsg.HttpResponse) bool
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConfirmIISBehavior ¶
ConfirmIISBehavior actively verifies that host exhibits ASP.NET/IIS cookieless path normalization and caches the verdict per host (so it runs at most once per host across all IIS modules). It anchors on the site root, then confirms that wrapping it in a (S(token)) cookieless segment resolves to the SAME resource (the token was stripped) while a random path does NOT (ruling out a catch-all that echoes one page for everything). A spoofed Server header cannot fake this, so a positive result means the target really is running ASP.NET.
func IsIIS ¶
func IsIIS(ctx *httpmsg.HttpRequestResponse, scanCtx *modkit.ScanContext, host string, client *http.Requester) bool
IsIIS is the full gate for the heavier IIS modules: passive detection (LooksLikeIIS) AND active behavioral confirmation (ConfirmIISBehavior, cached per host). A spoofed Server header alone therefore never passes.
func LooksLikeIIS ¶
func LooksLikeIIS(ctx *httpmsg.HttpRequestResponse, scanCtx *modkit.ScanContext, host string) bool
LooksLikeIIS is the passive gate: this record's headers, or the shared per-host tech registry (populated by the passive aspnet_fingerprint module), indicate IIS/ASP.NET.
func RespLooksIIS ¶
func RespLooksIIS(resp *httpmsg.HttpResponse) bool
RespLooksIIS reports whether a response's headers advertise IIS/ASP.NET.
Types ¶
This section is empty.