httpxpro

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jun 20, 2026 License: MIT Imports: 18 Imported by: 0

Documentation

Overview

Package httpxpro extends the core webprobe module with advanced httpx features:

  • Favicon hash fingerprinting (MurmurHash3 — used by Shodan/Censys queries)
  • CDN/WAF provider detection via response headers
  • TLS certificate metadata extraction (expiry, issuer, SANs, cipher)
  • Content security analysis (CSP, HSTS, X-Frame-Options grading)
  • Response hash (SHA256) for change detection
  • Jarm hash placeholder — computed from TLS ClientHello patterns
  • Technology stack detection (mirrors httpx Wappalyzer integration)

Reference: projectdiscovery/httpx (MIT) — feature set and field names; no source code copied. License: MIT (blackhorn-modules).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Module

type Module struct {

	// Threads is the concurrency degree (default: 50).
	Threads int
	// FetchFavicon enables favicon download and MurmurHash3 computation.
	FetchFavicon bool
	// ExtractTLS extracts certificate metadata via TLS handshake.
	ExtractTLS bool
	// FollowRedirects enables redirect following (default: true, max 3).
	FollowRedirects bool
	// MaxRedirects caps redirect chain length.
	MaxRedirects int
	// Headers are extra HTTP headers on every request.
	Headers map[string]string
	// contains filtered or unexported fields
}

Module is the extended httpx prober.

func New

func New() *Module

New returns a Module with sensible defaults.

func NewWithClient

func NewWithClient(c *http.Client) *Module

NewWithClient creates a Module using the provided HTTP client.

func (*Module) Name

func (m *Module) Name() string

Name implements module.Module.

func (*Module) Run

func (m *Module) Run(ctx context.Context, input module.Input) ([]module.Finding, error)

Run implements module.Module. Input.Target: URL to probe (required). Input.URLs: additional URLs. Input.Options:

  • "threads": concurrency (default: 50)
  • "favicon": "true"/"false" — fetch favicon hash
  • "tls": "true"/"false" — extract TLS metadata

type Result

type Result struct {
	URL            string   `json:"url"`
	StatusCode     int      `json:"status_code"`
	Title          string   `json:"title"`
	ContentLength  int      `json:"content_length"`
	ContentType    string   `json:"content_type"`
	ResponseTime   int64    `json:"response_time_ms"`
	Technologies   []string `json:"technologies,omitempty"`
	FaviconHash    int32    `json:"favicon_hash,omitempty"`
	FaviconHashHex string   `json:"favicon_hash_hex,omitempty"`
	BodyHash       string   `json:"body_hash,omitempty"`
	// TLS fields
	TLSVersion string   `json:"tls_version,omitempty"`
	TLSCipher  string   `json:"tls_cipher,omitempty"`
	TLSIssuer  string   `json:"tls_issuer,omitempty"`
	TLSExpiry  string   `json:"tls_expiry,omitempty"`
	TLSSANs    []string `json:"tls_sans,omitempty"`
	// Security headers
	HasHSTS     bool `json:"hsts"`
	HasCSP      bool `json:"csp"`
	HasXFrame   bool `json:"x_frame_options"`
	HasXContent bool `json:"x_content_type_options"`
	// CDN / WAF
	CDNProvider string `json:"cdn,omitempty"`
	WAFProvider string `json:"waf,omitempty"`
	// Error
	Error string `json:"error,omitempty"`
}

Result is a rich HTTP probe result.

Jump to

Keyboard shortcuts

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