Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/projectdiscovery/nuclei/llms.txt

Use this file to discover all available pages before exploring further.

WHOIS protocol templates allow you to query domain registration information, detect expiring domains, and gather ownership details.

Basic WHOIS query

id: basic-whois

info:
  name: Basic WHOIS Query
  author: pdteam
  severity: info

whois:
  - query: "{{Host}}"
    
    extractors:
      - type: kval
        kval:
          - "expiration date"
          - "registrar"

WHOIS components

Query

query
string
required
Domain name to query. Usually {{Host}} for dynamic inputs.
whois:
  - query: "{{Host}}"
Or specific domain:
whois:
  - query: "example.com"

Server

server
string
Optional WHOIS server to query. If omitted, automatic server discovery is used.
whois:
  - query: "{{Host}}"
    server: "whois.verisign-grs.com"

Example: Domain expiration check

id: domain-expiring

info:
  name: Domain Expiration Check
  author: pdteam
  severity: info
  description: Extracts domain expiration information

whois:
  - query: "{{Host}}"
    
    matchers:
      - type: word
        words:
          - "Registry Expiry Date"
          - "Expiration Date"
        condition: or
    
    extractors:
      - type: kval
        kval:
          - "expiration date"
          - "registry expiry date"

Example: Registrar detection

id: domain-registrar

info:
  name: Domain Registrar Detection
  author: pdteam
  severity: info

whois:
  - query: "{{Host}}"
    
    extractors:
      - type: kval
        name: registrar_info
        kval:
          - "registrar"
          - "registrar url"
          - "registrar abuse contact email"

Example: Domain status check

id: domain-status

info:
  name: Domain Status Check
  author: pdteam
  severity: info
  description: Checks domain status flags

whois:
  - query: "{{Host}}"
    
    matchers:
      - type: word
        words:
          - "clientTransferProhibited"
          - "clientDeleteProhibited"
        condition: or
    
    extractors:
      - type: regex
        name: domain_status
        regex:
          - "Domain Status:\\s*(.+)"
        group: 1

WHOIS extractors

Key-value extractor

Extract specific WHOIS fields:
extractors:
  - type: kval
    kval:
      - "expiration date"
      - "creation date"
      - "registrar"
      - "name server"

Regex extractor

Extract using patterns:
extractors:
  - type: regex
    name: nameservers
    regex:
      - "Name Server:\\s*(.+)"
    group: 1

Complete example

id: whois-comprehensive

info:
  name: Comprehensive WHOIS Information
  author: pdteam
  severity: info
  description: Extracts detailed domain registration information

whois:
  - query: "{{Host}}"
    
    extractors:
      - type: kval
        name: registration_info
        kval:
          - "creation date"
          - "expiration date"
          - "updated date"
      
      - type: kval
        name: registrar_info
        kval:
          - "registrar"
          - "registrar url"
      
      - type: regex
        name: nameservers
        regex:
          - "(?i)name server:\\s*(.+)"
        group: 1
      
      - type: kval
        name: status
        kval:
          - "domain status"

Next steps

JavaScript protocol

Custom protocol implementations

Code protocol

Execute code snippets

Build docs developers (and LLMs) love