Web fingerprinting
Identify web server type/version, framework, and application entry points via banner grabbing, HTTP header analysis (Server, X-Powered-By, X-Generator), cookie names (CAKEPHP, laravel_session, wp-settings), HTML meta generators, robots.txt, source map files (.map), JS hardcoded secrets, and Google dorking (site:, inurl:, filetype:, intitle:) with tools Nikto, WhatWeb, Wappalyzer, Nmap, Shodan, Burp Suite, OWASP ZAP, Waybackurls.From its SKILL.md
npx -y skills add ShulkwiSEC/bb-huge --skill web-fingerprintingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 21 stars21 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.7 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
Web Fingerprinting and Information Gathering
What Is Broken and Why
Web applications leak technology stack details through HTTP response headers, HTML comments, cookie names, error messages, and static file paths. Search engines and archives may index sensitive configuration files, credentials, and internal network diagrams. Collectively this intelligence narrows an attacker's target surface dramatically before any active exploitation begins, enabling precise selection of known CVEs for the identified stack.
Key Signals
Server:header reveals product and version (e.g.,Apache/2.4.41,nginx/1.17.3)X-Powered-By:orX-Generator:headers expose backend language/framework- Framework-specific cookies:
CAKEPHP,laravel_session,wp-settings,fe_typo_user - HTML
<meta name="generator">tags (WordPress, Joomla, Drupal) - Accessible paths:
/wp-admin/,/wp-content/,/wp-includes/ - HTML comments embedding SQL queries, credentials, or internal IPs
- JS files with hardcoded API keys, DB connection strings, AWS credentials
.mapsource map files exposing full source trees and internal file pathsrobots.txtDisallow entries revealing hidden paths- Error responses leaking stack traces, framework names, file paths
__VIEWSTATEin forms = ASP.NET;<!-- ZK= ZK framework;.cfm= ColdFusion
Methodology
- Passive recon: Run Google dorks against the target domain using
site:,inurl:,filetype:,intitle:,intext:operators. Check Internet Archive Wayback Machine and Shodan. - Banner grabbing: Send raw HTTP/HTTPS requests and record
Server:,X-Powered-By:,ETag, header ordering, and error page footers. - Malformed request probing: Send invalid HTTP version strings to trigger version-revealing error pages.
- Cookie analysis: Capture
Set-Cookieheaders across all application sections; match names against known framework signatures. - HTML/JS source review: Spider the application, download all
.jsfiles, search for credentials patterns, internal hostnames, API endpoints. - Source map detection: Append
.mapto discovered JS filenames; if 200 OK, parsesourcesarray for internal paths. - Entry point mapping: Use intercepting proxy to record all GET/POST parameters, hidden fields, custom headers, and WebSocket frames.
- Dirbusting: Request framework-specific paths identified in step 4; compare HTTP response codes to confirm technology.
Payloads & Tools
# Banner grabbing over HTTP
curl -I http://TARGET/
# Banner grabbing over HTTPS
openssl s_client -connect TARGET:443 -quiet | head -20
# Malformed request to trigger error page
printf 'GET / SANTA CLAUS/1.1\r\nHost: TARGET\r\n\r\n' | nc TARGET 80
# Nikto scan
nikto -h http://TARGET/
# WhatWeb fingerprint
whatweb -a 3 http://TARGET/
# Nmap service/version detection
nmap -sV -p 80,443,8080,8443 TARGET
# Find source maps
curl -s http://TARGET/static/app.js.map | python3 -m json.tool | grep sources
# Google dork examples (replace TARGET with actual domain)
# site:TARGET filetype:env
# site:TARGET inurl:admin
# site:TARGET intitle:"index of"
# site:TARGET filetype:sql
# Check robots.txt
curl -s http://TARGET/robots.txt
# Retrieve archived URLs
waybackurls TARGET | grep -E '\.(php|asp|aspx|jsp|config|bak|sql|env)'
Bypass Techniques
- Servers with header-suppression (
mod_security,mod_headers ServerTokens Prod) still leak via header ordering,ETagformat, and error page HTML structure. - WAFs hiding
Server:headers may still reveal technology in cookies orX-AspNet-Version. - Source maps may be accessible even when JS is minified/obfuscated.
- Wayback Machine and Common Crawl may preserve old versions of pages that no longer exist live.
Exploitation Scenarios
Scenario 1 — Version to CVE
Setup: Target running Apache/2.4.41 revealed via Server: header.
Trigger: Cross-reference with CVE database; identify known RCE for that minor version.
Impact: Targeted exploitation without broad scanning.
Scenario 2 — Hardcoded AWS Key
Setup: JS source map exposes src/config/aws.js with accessKeyId and secretAcccessKey.
Trigger: Extract keys, configure AWS CLI with stolen credentials.
Impact: Full cloud account takeover, data exfiltration, infrastructure control.
Scenario 3 — Hidden Admin Panel
Setup: robots.txt lists Disallow: /admin-legacy/. Framework cookies confirm WordPress.
Trigger: Navigate to /admin-legacy/; attempt default or leaked credentials.
Impact: Unauthenticated or low-effort admin access.
False Positives
- Generic
Server: Apachewithout version may indicate a well-hardened install, not a vulnerable one. X-Powered-Bycan be spoofed to mislead fingerprinting; corroborate with multiple signals.- Source map
sourcespaths may be Docker container paths with no direct filesystem relevance. robots.txtDisallow entries may point to already-deleted or protected paths.
Fix Patterns
- Set
ServerTokens ProdandServerSignature Offin Apache;server_tokens offin Nginx. - Remove
X-Powered-BywithHeader unset X-Powered-Byor framework-level config. - Strip or randomize
ETagformat to avoid version inference. - Never ship
.mapfiles to production; configure build pipeline to exclude them. - Audit all JS bundles for secrets before deployment; use environment variables at runtime.
- Set framework-neutral cookie names.
- Implement
Cache-Control: no-storeon error pages to prevent caching of stack traces.
Related Skills
Fingerprinting is the entry point that directs all further testing. Once the stack is identified, move to [[auth-bypass]] if an admin panel is exposed, or [[sql-injection]] if the framework version has a known SQLi vulnerability. If a CMS login is found, [[default-credentials]] is the immediate next step. Source maps and hardcoded secrets discovered here can feed directly into [[business-logic-flaws]] by revealing undocumented API endpoints.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.