Skip to main content

Web Application Security Reference

Web application security reference organized by stack: frameworks, languages, servers, CMS, technologies, databases, vulnerabilities, and OWASP Top 10. Covers detection, enumeration, exploitation patterns, and known CVEs (with NVD/MITRE links). Commands are universal; English only.

CAUTION

Authorized use only. All techniques here are for OSCP labs, Hack The Box, and explicitly authorized penetration tests.
See ../../SECURITY.md.


Table of Contents​

#SectionDescription
-Decision TreeChoose the right path based on the exposed service
-Quick ReferenceCommon ports, tools, and one-liners
1ReconSubdomain enumeration, port scanning, web tech fingerprinting
2FrameworksSpring, Django, Rails, Laravel, Express, and their CVEs
3LanguagesPHP, Python, Java, .NET, Node.js, Ruby specific vulnerabilities
4ServersApache, Nginx, IIS, Tomcat configuration and CVEs
5CMSWordPress, Joomla, Drupal, and plugin vulnerabilities
6TechnologiesREST, GraphQL, WebSocket, JWT, OAuth, SAML
7DatabasesSQL injection, NoSQL injection, Redis, Elasticsearch
8VulnerabilitiesOWASP Top 10 deep dives (XSS, SSRF, IDOR, etc.)
9OWASP Top 102021 categories, mapping to files
-WorkflowHow to use this reference in a pentest

Decision Tree​

When you find a web service, follow this tree.

nmap shows 80 / 443 / 8080 / 8443 / 8000 / 3000 / 5000 / 9000 / etc.
|
+-- whatweb -a 3 http://target
+-- curl -sI http://target
+-- nmap -sV -p <port> --script http-title,http-headers,http-methods target
|
v
What do we see?
|
+-- "WordPress" --> 05 CMS/WordPress.md
+-- "Joomla" --> 05 CMS/Joomla.md
+-- "Drupal" --> 05 CMS/Drupal.md
+-- "Magento" --> 05 CMS/Magento.md
+-- "phpMyAdmin" --> 05 CMS/phpMyAdmin.md
+-- "Adminer" --> 05 CMS/Adminer.md
|
+-- "Django" --> 02 Frameworks/Django.md
+-- "Flask" --> 02 Frameworks/Flask.md
+-- "Rails" --> 02 Frameworks/Rails.md
+-- "Spring" --> 02 Frameworks/Spring-Boot.md
+-- "Laravel" --> 02 Frameworks/Laravel.md
+-- "Express" --> 02 Frameworks/Express.md
+-- "ASP.NET" --> 02 Frameworks/ASP.NET.md
+-- "Next.js" --> 02 Frameworks/Next.js.md
|
+-- "X-Powered-By: PHP" --> 03 Languages/PHP.md
+-- "X-Powered-By: Python" --> 03 Languages/Python.md
+-- "X-Powered-By: Express"--> 03 Languages/NodeJS.md
+-- "X-Powered-By: ASP.NET"--> 03 Languages/DotNet.md
+-- "X-Powered-By: Java" --> 03 Languages/Java.md
|
+-- "Server: Apache" --> 04 Servers/Apache.md
+-- "Server: nginx" --> 04 Servers/Nginx.md
+-- "Server: Microsoft-IIS" --> 04 Servers/IIS.md
+-- "Server: Apache-Coyote" --> 04 Servers/Tomcat.md
+-- "Server: Jetty" --> 04 Servers/Jetty.md
|
+-- "JWT" in cookies --> 06 Technologies/JWT.md
+-- "OAuth" / "authorize" --> 06 Technologies/OAuth.md
+-- "/graphql" endpoint --> 06 Technologies/GraphQL.md
+-- Database banner visible --> 07 Databases/README.md
+-- SSTI signature --> 08 Vulnerabilities/SSTI.md
|
+-- Nothing obvious --> 01 Recon/Fingerprinting.md
+ 01 Recon/VHosts-Subdomains.md

Quick Reference​

Common HTTP Ports​

PortCommon Use
80HTTP
443HTTPS
8000Django dev, Python http.server
8080Tomcat, Jenkins, generic HTTP alt
8443HTTPS alt (Tomcat, JBoss)
8888Jupyter, generic alt
3000Node.js (Express, Next.js)
5000Flask, .NET Kestrel
9000PHP-FPM, Portainer
9090Cockpit, Prometheus

Fingerprinting One-Liners​

# Headers + status
curl -sI http://target

# Full fingerprint (headers, tech, CMS, analytics)
whatweb -a 3 http://target

# Nmap service + HTTP scripts
nmap -sV -p 80,443,8080,8443 --script http-title,http-headers,http-methods,http-enum target

# Tech detect via favicon hash
curl -s http://target/favicon.ico | md5sum

# robots.txt + sitemap
curl -s http://target/robots.txt
curl -s http://target/sitemap.xml

Common Tools​

ToolPurpose
whatwebTech fingerprinting
niktoWeb server scanner
gobuster dirDirectory brute-force
feroxbusterRecursive content discovery
ffufFuzzing (dir, vhost, params)
wfuzzFuzzing (alternative)
sqlmapSQL injection
wpscanWordPress scanner
joomscanJoomla scanner
droopescanDrupal / SilverStripe scanner
nucleiTemplate-based scanner
burpsuiteManual proxy + scanner
jwt_toolJWT manipulation

01 Recon​

Fingerprinting, vhosts, subdomains, port-to-service mapping.

FilePurpose
Fingerprinting.mdIdentify the stack without a browser
VHosts-Subdomains.mdVirtual host and subdomain enumeration
Ports-Services.mdCommon HTTP ports and what they mean

02 Frameworks​

Framework-specific detection, enumeration, exploitation.

FileLanguage
Django.mdPython
Flask.mdPython
Rails.mdRuby
Spring-Boot.mdJava
Laravel.mdPHP
Express.mdNode.js
ASP.NET.md.NET
Next.js.mdNode.js

03 Languages​

Language-specific vulnerabilities and quirks.

FileFocus
PHP.mdLFI, RFI, deserialization, type juggling
Python.mdSSTI, pickle, deserialization
NodeJS.mdPrototype pollution, SSTI, deserialization
Java.mdDeserialization, EL injection, JNDI
DotNet.mdViewState, deserialization
Ruby.mdERB SSTI, Marshal
Go.mdtemplate injection

04 Servers​

Web servers and application servers.

FileNotes
Apache.md.htaccess, mod_cgi, path traversal
Nginx.mdalias traversal, off-by-slash
IIS.mdshortname, WebDAV, ASPX
Tomcat.mdmanager, WAR deploy, CVEs
Jetty.mdCVE-2021-28164, webapps

05 CMS​

Content management systems and admin panels.

FileCommon CVEs
WordPress.mdplugins, themes, xmlrpc, wp-json
Joomla.mdextensions, com_* components
Drupal.mdDrupalgeddon 1/2/3
Magento.mdSQLi, deserialization
PrestaShop.mdSQLi, file upload
phpMyAdmin.mdLFI, SQLi, auth bypass
Adminer.mdSSRF, file read

06 Technologies​

Protocols, auth, and cross-cutting technologies.

FileFocus
JWT.mdalg=none, kid injection, JWK, weak secret
OAuth.mdredirect_uri, state, PKCE
GraphQL.mdintrospection, batching, IDOR
REST.mdmass assignment, IDOR, verb tampering
WebSocket.mdCSWSH, injection
SSTI.mdJinja2, Twig, Freemarker, ERB
Deserialization.mdPHP, Java, Python, .NET, Ruby

07 Databases​

Database engines, detection, and per-DB exploitation.

FileEngine
README.mdDetection, enumeration, common misconfigurations
MySQL.mdMySQL / MariaDB
PostgreSQL.mdPostgreSQL
MSSQL.mdMicrosoft SQL Server
MongoDB.mdMongoDB
Redis.mdRedis
SQLite.mdSQLite
Oracle.mdOracle DB

08 Vulnerabilities​

Vulnerability classes with exploitation recipes.

FileNotes
SQLi.mdUnion, blind, time-based, error-based
XSS.mdReflected, stored, DOM, CSP bypass
SSRF.mdCloud metadata, gopher, file://
LFI-RFI.mdWrappers, log poisoning
XXE.mdFile read, SSRF, blind OOB
IDOR.mdHorizontal / vertical escalation
File-Upload.mdBypass, polyglot, magic bytes
Command-Injection.mdBlind, OOB, WAF bypass
SSTI.mdServer-side template injection
Deserialization.mdMulti-language
CSRF.mdToken bypass, SameSite
Open-Redirect.mdPhishing, OAuth chain

09 OWASP Top 10​

Maps the OWASP Top 10:2021 categories to the files above. Includes four dedicated two-track files (A01, A04, A06, A09 - each with Pentest and AppSec sections) and a comparison with the 2025 revision.

FileNotes
README.mdCoverage map: 2021 categories -> existing files
2021-vs-2025.mdWhat changed between revisions
A01-Broken-Access-Control.mdA01: Broken Access Control (pentest + AppSec)
A04-Insecure-Design.mdA04: Insecure Design (pentest + AppSec)
A06-Vulnerable-Components.mdA06: Vulnerable Components (pentest + AppSec + supply chain)
A09-Logging-Failures.mdA09: Logging and Monitoring Failures (pentest + AppSec)

Workflow​

Standard web-testing workflow. Adjust per target profile (lab vs production - see ../METHODOLOGY.md).

  1. Fingerprint - whatweb, curl -I, nmap HTTP scripts.
  2. Enumerate - directories (feroxbuster), files, vhosts (ffuf).
  3. Identify stack - framework, language, server, CMS, DB.
  4. Look up CVEs - NVD / MITRE for the exact version.
  5. Test known vulns - SQLi, XSS, SSRF, LFI, upload, etc.
  6. Chain - combine findings into a foothold / privesc.
  7. Document - screenshots for OSCP, expected output in walkthroughs.

OSCP Notes​

IMPORTANT

For OSCP, every proof step (foothold, privilege escalation) needs a screenshot with command, output, and timestamp. See ../methodology/OSCP-Reporting.md.


  • ../CHEATSHEET.md - general pentest commands.
  • ../METHODOLOGY.md - engagement workflow.
  • ../methodology/OSCP-Reporting.md - exam reporting.
  • ../WRITEUPS/ - HTB walkthroughs using these techniques.

Last updated: 2026-10-10. Part of MethodMan. English only by design.