๐ฏ Exam at a Glance
| Attribute | Detail |
|---|---|
| Certification | GWAPT โ GIAC Web Application Penetration Tester |
| Issuer | GIAC (Global Information Assurance Certification) |
| Training | SANS SEC542 โ Web App Penetration Testing & Ethical Hacking |
| Questions | 82 |
| Duration | 3 hours |
| Passing Score | 71% |
| Format | CyberLive โ live lab environment + traditional questions |
| Proctoring | ProctorU (remote) or Pearson VUE (onsite) |
| Validity | 4 years (renewable via CPEs) |
| DoD 8140 | Approved |
๐ GWAPT Exam Objectives
| # | Objective | This Page |
|---|---|---|
| โ 1 | Web Application Overview | โ Covered |
| 2 | Reconnaissance and Mapping | โ |
| 3 | Web Application Configuration Testing | โ |
| 4 | Web Application Authentication Attacks | โ |
| 5 | Web Application Session Management | โ |
| 6 | Web Application SQL Injection Attacks | โ |
| 7 | Cross-Site Request Forgery, XSS & Client Injection Attacks | โ |
| โ 8 | Web Application Testing Tools | โ Covered |
๐ก Why This Page
"Before you can attack, you need to understand what you're attacking and how to wield your tools โ Objectives 1 and 8 are the foundation of every other GWAPT topic."
- Objective 1 covers the HTTP/HTTPS protocol, web app architecture, JavaScript, AJAX, SOP, CORS, and cookie security โ the baseline every subsequent objective builds on.
- Objective 8 covers Burp Suite, OWASP ZAP, fuzzing tools, browser DevTools, Nikto, Gobuster, FFuF, and the OWASP Testing Guide methodology.
- Together, these two objectives teach you both the target and the tools โ critical before studying injections, session management, or auth attacks.
Core Properties
- Stateless protocol: each request is independent โ sessions maintained via cookies/tokens
- Request structure: Method + URI + HTTP version โ headers (Host, User-Agent, Accept, Cookie, Authorization, Content-Type) โ body (for POST/PUT)
- Response structure: Status line โ headers (Set-Cookie, Content-Type, Location, X-Frame-Options, CSP) โ body
HTTP Methods
- GET โ retrieve resource; idempotent; no body
- POST โ submit data; not idempotent; has body
- PUT โ replace entire resource at URI
- PATCH โ partial update of a resource
- DELETE โ remove resource
- HEAD โ headers only, no body (same as GET but no response body)
- OPTIONS โ used in CORS preflight to query allowed methods
- TRACE โ echoes request back to sender; often disabled; enables Cross-Site Tracing (XST)
HTTP Status Codes
- 1xx Informational โ 100 Continue, 101 Switching Protocols
- 2xx Success โ 200 OK, 201 Created, 204 No Content
- 3xx Redirect โ 301 Permanent, 302 Temporary, 304 Not Modified
- 4xx Client Error โ 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 405 Method Not Allowed, 429 Rate Limited
- 5xx Server Error โ 500 Internal, 502 Bad Gateway, 503 Service Unavailable
TLS Handshake (simplified)
- ClientHello โ client sends supported cipher suites & TLS versions
- ServerHello + Certificate โ server selects cipher, sends cert
- Key Exchange โ client verifies cert, derives session keys
- Finished โ both sides confirm; encrypted tunnel established
Certificate & Trust
- Chain of trust: certificate signed by intermediate CA signed by root CA
- Validation checks: expiry, CN/SAN matching, CRL/OCSP revocation
- HSTS: HTTP Strict Transport Security โ forces HTTPS on all future visits; prevents SSL stripping attacks
- Certificate pinning: app pins expected cert/public key โ defeats MitM even with valid CA-signed cert; critical for Burp proxy setup (must add Burp CA)
TLS Versions
- SSLv2/SSLv3 โ broken, deprecated
- TLS 1.0/1.1 โ deprecated (vulnerable to POODLE, BEAST)
- TLS 1.2 โ acceptable; widely deployed
- TLS 1.3 โ current best; mandatory forward secrecy
Weak Cipher Suites (know for exam)
- RC4 โ broken (biased keystream)
- DES/3DES โ SWEET32 attack
- Export ciphers โ FREAK attack
- Anonymous DH โ no authentication; MitM trivial
Tool: testssl.sh automates TLS configuration assessment โ checks versions, ciphers, certificate validity, HSTS, HPKP.
Tiers & Patterns
- Three-tier: Presentation (browser) โ Logic (app server) โ Data (database)
- MVC: Model (data/business logic) ยท View (UI rendering) ยท Controller (request handling)
- Client-side: browser executes HTML/CSS/JavaScript; DOM = in-memory tree of the page
- Server-side: processes requests, queries DB, returns responses
API Styles
- REST: stateless, resource-based URLs (
/api/users/123), standard HTTP verbs, JSON responses - SOAP: XML-based, WSDL service description, heavy legacy enterprise
- GraphQL: single endpoint, client specifies data shape โ security risks: introspection leaks schema, deep queries cause DoS, batching attacks
- Microservices: many services via APIs โ expanded attack surface per service
- JavaScript: executes in browser context โ DOM manipulation, event handling, async requests
- AJAX: XMLHttpRequest and
fetch()API โ update page without full reload - JSON:
{"key": "value"}โ JavaScript's native data format for API responses - Same-Origin Policy (SOP): browser restricts JS from reading responses from different origins. Origin = scheme + domain + port (all three must match)
- CORS: server explicitly allows cross-origin reads via
Access-Control-Allow-Originheader; OPTIONS preflight for non-simple requests - JSONP: legacy cross-origin workaround using
<script>tags โ security risk if attacker-controlled endpoint
Cookie Security Flags
- HttpOnly โ JavaScript (
document.cookie) cannot read the cookie; prevents XSS-based theft - Secure โ cookie only sent over HTTPS connections
- SameSite=Strict โ never sent on cross-site requests (strong CSRF protection)
- SameSite=Lax โ sent on top-level navigations but not embedded requests
- SameSite=None โ always sent cross-site; requires Secure flag
Input/Output Security
- Input validation: client-side = easily bypassed via proxy; server-side validation is authoritative
- Output encoding: escape special chars in correct context (HTML, JS, URL, CSS) to prevent injection
Intercepts browser โ server traffic. Configure browser: 127.0.0.1:8080. Install Burp CA cert in browser to intercept HTTPS.
Site map of discovered content, scope definition. Define in-scope hosts to filter traffic.
Manually modify and replay individual requests. Best tool for manual exploitation โ tweak parameters, observe responses.
Encode/decode Base64, URL, HTML, hex, gzip. Identify and manipulate obfuscated data in tokens and parameters.
Diff two requests or responses. Find subtle differences โ useful in blind injection and username enumeration.
Analyze randomness/entropy of session tokens. Low entropy = predictable tokens = session hijacking risk.
Automated vulnerability detection. Passive: analyzes existing traffic. Active: sends probes to targets.
BApp Store plugins โ extend functionality (e.g., Active Scan++, JWT Editor, Param Miner).
Intruder Attack Types (must memorize)
- Sniper โ one payload set, cycles through one position at a time; other positions stay static. Best for single-point fuzzing.
- Battering Ram โ one payload set, inserts same value in all positions simultaneously. Useful when same payload needed everywhere.
- Pitchfork โ multiple payload sets (one per position), iterated in parallel (paired rows). Use for username + password combos from a list.
- Cluster Bomb โ multiple payload sets, all combinations (Cartesian product). Full brute force โ use sparingly; generates huge request volume.
- Free, open-source alternative and complement to Burp Suite
- Automated scanner: spider (crawls links) + active scan (sends probes) โ good for broad vulnerability discovery
- Forced Browse: wordlist-based discovery of hidden files/directories
- Fuzzer: similar to Burp Intruder โ parameter-level fuzzing
- WebSocket support: test real-time web application traffic
- API integration: scriptable via REST API โ integrate into CI/CD pipelines for automated security testing
- Wfuzz: command-line fuzzer โ
wfuzz -c -z file,wordlist.txt http://target/FUZZ - FFuF (Fuzz Faster U Fool): fast directory/file/parameter fuzzer โ
ffuf -w wordlist.txt -u http://target/FUZZ - Gobuster: directory & file enumeration โ
gobuster dir -u http://target -w wordlist.txt - DirBuster: GUI-based directory brute-forcer (OWASP project)
- Common wordlists: SecLists (Daniel Miessler), dirbuster lists, rockyou.txt (passwords)
- Fuzzing targets: URL paths (directory brute force), GET/POST parameters, headers, cookie values
Additional Recon Tools
- Nikto: web server scanner โ outdated software, dangerous files, misconfigurations
- curl: command-line HTTP requests โ great for scripting and quick manual testing
- nmap:
nmap -sV -p 80,443,8080,8443 targetโ port scanning & service detection - Whatweb/Wappalyzer: technology fingerprinting โ identifies CMS, frameworks, server software
- testssl.sh: TLS/SSL configuration testing โ cipher suites, protocol versions, cert validity
- Network tab: inspect all HTTP requests/responses, headers, timing, WebSocket frames
- Console: JavaScript execution, error messages,
document.cookie,localStorageinspection - Storage: cookies, localStorage, sessionStorage, IndexedDB โ inspect and modify client-side state
- Debugger: JavaScript breakpoints, source map analysis, deobfuscate minified code
- Elements: DOM inspection and modification โ remove client-side validation controls
- Phase 1: Information gathering โ passive & active recon
- Phase 2: Configuration & deployment management testing
- Phase 3: Identity management testing
- Phase 4: Authentication testing
- Phase 5: Authorization testing
- Phase 6: Session management testing
- Phase 7: Input validation testing (SQLi, XSS, injection)
- Phase 8: Error handling
- Phase 9: Cryptography testing
- Phase 10: Business logic testing
- Phase 11: Client-side testing
Prevents: a malicious site's JS from reading your bank's responses, stealing session data, or exfiltrating sensitive page content. CORS headers are the controlled exception.
Key header:
Access-Control-Allow-Origin: https://trusted.com. Preflight: browser sends OPTIONS request before non-simple cross-origin requests. Misconfigured CORS (wildcard + credentials) = data theft risk.Cluster Bomb: Multiple payload sets, every combination (Cartesian product). Use for full brute force across multiple positions (e.g., all usernames ร all passwords). Generates massive request volume โ use carefully.
document.cookie) from reading the cookie. Mitigates XSS-based session theft.Secure: Cookie only transmitted over HTTPS. Prevents sniffing on plain HTTP.
SameSite=Strict: Cookie never sent on cross-site requests. Primary CSRF mitigation. Lax = top-level nav only. None = always cross-site (requires Secure).
Unlike traditional GIAC exams (multiple choice only), CyberLive tests hands-on proficiency โ you must actually perform tasks, not just recall facts. 82 questions, 3 hours, 71% passing score.
403 Forbidden: Authentication may be fine, but access is denied for this resource. Server is saying "I know who you are, but no." The resource exists โ 403 on /admin confirms the path is valid. 404 would mean it doesn't exist.
Use cases: manually exploiting injection vulnerabilities, testing parameter tampering, verifying authentication bypass, fine-tuning payloads found by Intruder, testing API endpoints. The go-to tool for manual exploitation.
Pentest implication: if a mobile app or API client uses pinning, you must bypass it (frida, custom builds, etc.) before Burp can intercept. Standard browser-based testing is usually unaffected.
๐ Readiness Self-Assessment
Rate your confidence in each category. Your readiness score updates automatically.
Accelerate Your GWAPT Prep
FlashGenius gives you AI-powered flashcards, adaptive quizzes, and spaced repetition โ built for GIAC certification success.
Start Free on FlashGenius