web-fingerprint

Web Server Fingerprinting Playbook

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "web-fingerprint" with this command: npx skills add ivanvza/dspy-skills/ivanvza-dspy-skills-web-fingerprint

Web Server Fingerprinting Playbook

Systematically discover and identify web servers and their technologies. You must complete all steps in sequence.

When to Use This Skill

Activate this skill when the user needs to:

  • Find web servers on a target or network

  • Identify what web technologies are running

  • Fingerprint a website or web application

  • Discover CMS, frameworks, or server software

Available Scripts

Script Purpose

fetch_page.py

Fetch a web page and extract fingerprinting info

Script usage:

python scripts/fetch_page.py <url> python scripts/fetch_page.py 192.168.1.1 --port 8080 python scripts/fetch_page.py 192.168.1.1 --https python scripts/fetch_page.py example.com --json

Step 1: Port Discovery

Goal: Find open web server ports on the target.

Run this scan:

nmap -Pn -p 80,443,8080,8443,8000,8888,3000,5000 <target>

Parse output: Look for ports showing open state. Common web ports:

  • 80 (HTTP)

  • 443 (HTTPS)

  • 8080, 8000, 8888 (Alt HTTP)

  • 8443 (Alt HTTPS)

  • 3000, 5000 (Dev servers)

Next: For EACH open port found, proceed to Step 2.

Step 2: Service Detection

Goal: Identify what web server software is running.

Run this scan:

nmap -Pn -sV -p <open_ports> <target>

Example: If Step 1 found ports 80 and 443 open:

nmap -Pn -sV -p 80,443 192.168.1.1

Parse output: Note the SERVICE and VERSION columns. Look for:

  • Apache, nginx, IIS, lighttpd

  • Version numbers

  • Any additional info

Next: Proceed to Step 3 for each web port.

Step 3: Web Page Fingerprinting

Goal: Fetch the page and identify technologies.

Run the fetch_page.py script for each web port:

For HTTP (port 80):

python scripts/fetch_page.py <target>

For HTTPS (port 443):

python scripts/fetch_page.py <target> --https

For alternate ports:

python scripts/fetch_page.py <target> --port 8080 python scripts/fetch_page.py <target> --port 8443 --https

The script returns:

  • HTTP status code

  • Page title

  • Server headers

  • Detected technologies (CMS, frameworks, libraries)

  • Page content preview

Next: Proceed to Step 4 to compile findings.

Step 4: Compile Report

Goal: Summarize all findings in a structured report.

Report format:

Web Fingerprint Report

Target: <target>

Scan Date: <date>

Open Web Ports

  • Port 80: HTTP (open)
  • Port 443: HTTPS (open)

Server Software

  • Port 80: Apache/2.4.41 (Ubuntu)
  • Port 443: Apache/2.4.41 (Ubuntu)

Web Technologies Detected

  • CMS: WordPress 6.0
  • Framework: PHP
  • Libraries: jQuery 3.6
  • CDN: Cloudflare

Page Information

  • Title: "Welcome to Example Site"
  • Generator: WordPress 6.0

Headers of Interest

  • Server: Apache/2.4.41 (Ubuntu)
  • X-Powered-By: PHP/8.1

Observations

  • WordPress admin panel at /wp-admin
  • Login page detected
  • Self-signed SSL certificate

Quick Reference

Task Command

Find web ports nmap -Pn -p 80,443,8080,8443 <target>

Service versions nmap -Pn -sV -p <ports> <target>

Fetch HTTP page python scripts/fetch_page.py <target>

Fetch HTTPS page python scripts/fetch_page.py <target> --https

Fetch alt port python scripts/fetch_page.py <target> -p 8080

Example Workflow

User asks: "What web servers are running on 192.168.1.1?"

Step 1: Scan for web ports

nmap -Pn -p 80,443,8080,8443,8000,8888,3000,5000 192.168.1.1

Output shows: 80/tcp open, 443/tcp open

Step 2: Get service versions

nmap -Pn -sV -p 80,443 192.168.1.1

Output shows: Apache httpd 2.4.41

Step 3: Fingerprint each port

python scripts/fetch_page.py 192.168.1.1 python scripts/fetch_page.py 192.168.1.1 --https

Output shows: WordPress detected, jQuery, PHP

Step 4: Report findings to user

Constraints

  • Always complete all 4 steps

  • Scan each open web port individually in Step 3

  • Some servers may not respond to fingerprinting

  • Self-signed certificates are handled automatically

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

web-scraper

No summary provided by upstream source.

Repository SourceNeeds Review
General

file-utils

No summary provided by upstream source.

Repository SourceNeeds Review
General

network-recon

No summary provided by upstream source.

Repository SourceNeeds Review
General

json-tools

No summary provided by upstream source.

Repository SourceNeeds Review