Free online courseSQL Injection Masterclass - Web Security Academy Labs
Duration of the online course: 9 hours and 42 minutes
New
Build real SQL injection skills with a free hands-on course: practice Web Security Academy labs, learn prevention, blind SQLi, UNION attacks, and earn a certificate.
In this free course, learn about
What SQL injection is, how it arises, and its main attack classes (in-band, blind, out-of-band)
Primary prevention: parameterized queries/prepared statements and safe query construction principles
WHERE-clause boolean SQLi to reveal hidden data (e.g., make predicates always TRUE)
Authentication bypass SQLi using comment syntax to remove the password check logic
UNION-based SQLi: determine column count, then find which column(s) accept text output
UNION extraction rules: injected SELECT must match original query’s column count and data types
Retrieve multiple values in one displayed column via concatenation/string aggregation techniques
DB fingerprinting via SQLi: identify DB type and query version on Oracle and MySQL/MSSQL
Oracle specifics: using DUAL when selecting literals without a real table
Enumerating database schema/content (non-Oracle vs Oracle approaches) using UNION and catalog views
Blind SQLi with conditional responses: infer TRUE/FALSE from content differences in responses
Blind SQLi with conditional errors and time delays to confirm/infer data when output isn’t shown
Out-of-band (OAST) interaction/exfiltration when queries run async or HTTP responses don’t change
Filter/WAF bypass techniques such as XML encoding, plus visible error-based SQLi exploitation
Course Description
SQL injection is still one of the most common and costly web vulnerabilities, and the best way to truly understand it is to see how it works in real applications. This free online course takes you from core concepts to practical exploitation and solid prevention practices using realistic Web Security Academy-style labs. Instead of staying theoretical, you will train your ability to recognize vulnerable patterns, reason about queries behind the interface, and safely test inputs the way security professionals do.
You will learn how attackers turn small input handling mistakes into meaningful impact: extracting hidden data, bypassing authentication, and pivoting from simple injections to advanced scenarios. Along the way, you will develop intuition for why some attempts fail and how to systematically adjust, including handling different database behaviors and query structures. The course emphasizes the mindset of methodical testing: confirming vulnerability, understanding constraints such as visible columns or filtered characters, and adapting techniques accordingly.
A key strength of this training is its coverage of modern SQLi workflow, including UNION-based extraction as well as multiple blind SQL injection approaches. You will practice situations where the application reveals differences in responses, throws errors conditionally, or provides no direct output at all. In these tougher environments, you will build skills in time-based inference and out-of-band interaction to confirm execution and retrieve data even when the page looks unchanged.
By the end, you should feel comfortable approaching SQL injection as both an offensive and defensive topic. You will understand what strong primary defenses look like in real code, why certain mitigations are insufficient on their own, and how secure query handling prevents entire classes of attack. If you are aiming for cybersecurity roles, bug bounty readiness, or simply want to harden web applications, this course gives you a practical foundation you can apply immediately.
Course content
Video class: SQL Injection | Complete Guide1h11m
Exercise: Which defense is considered the correct primary way to prevent SQL injection?
Video class: SQL Injection - Lab #1 SQL injection vulnerability in WHERE clause allowing retrieval of hidden data29m
Exercise: In a SQL injection lab, what payload is used to make the WHERE clause always true and reveal both released and unreleased products?
Exercise: Which SQL injection payload is used to bypass authentication by commenting out the password check?
Video class: SQL Injection - Lab #3 SQLi UNION attack determining the number of columns returned by the query34m
Exercise: In a SQL injection UNION attack, what is the first key step needed to successfully extract data from other tables?
Video class: SQL Injection - Lab #4 SQL injection UNION attack, finding a column containing text29m
Exercise: In a UNION-based SQL injection attack, why do you test each column with a text value (e.g., abc) after finding the number of columns?
Video class: SQL Injection - Lab #5 SQL injection UNION attack, retrieving data from other tables25m
Exercise: In a UNION-based SQL injection used to extract credentials from a separate table, what must match between the injected SELECT and the original query?
Video class: SQL Injection - Lab #6 SQL injection UNION attack, retrieving multiple values in a single column29m
Exercise: In a UNION-based SQL injection where only one column is displayed but you need both username and password, what technique lets you retrieve both in a single column?
Video class: SQL Injection - Lab #7 SQL injection attack, querying the database type and version on Oracle27m
Exercise: In an Oracle UNION-based SQL injection, what is required for a SELECT statement when you are not extracting data from a real table?
Video class: SQL Injection - Lab #8 SQLi attack, querying the database type and version on MySQL22m
Exercise: In a UNION-based SQL injection against a MySQL/Microsoft target, which payload is used to display the database version string?
Video class: SQL Injection - Lab #9 SQL injection attack, listing the database contents on non Oracle databases45m
Exercise: In a UNION-based SQL injection used to list database contents on non-Oracle databases, what is the first step to make the UNION query work correctly?
Video class: SQL Injection - Lab #10 SQL injection attack, listing the database contents on Oracle40m
Video class: SQL Injection - Lab #11 Blind SQL injection with conditional responses48m
Exercise: In a blind SQL injection with conditional responses, what indicates that an injected condition evaluated to TRUE?
Video class: SQL Injection - Lab #12 Blind SQL injection with conditional errors45m
Exercise: In blind SQL injection with conditional errors, what indicates a TRUE condition when testing the injected predicate?
Video class: SQL Injection - Lab #13 Blind SQL injection with time delays19m
Exercise: In a blind SQL injection lab where query results are not returned and the response does not change for errors or empty results, what technique can be used to confirm the vulnerability?
Video class: SQL Injection - Lab #14 Blind SQL injection with time delays and information retrieval35m
Exercise: In a blind SQL injection scenario where query results and errors are not reflected, what technique can be used to infer data when the query is executed synchronously?
Video class: SQL Injection - Lab #15 Blind SQL injection with out-of-band interaction10m
Exercise: In a blind SQL injection scenario where the SQL query runs asynchronously and does not affect the HTTP response, what technique can confirm successful exploitation?
Video class: SQL Injection - Lab #16 Blind SQL injection with out of band data exfiltration | Long Version08m
Exercise: In a blind SQL injection lab where the vulnerable input is a TrackingId cookie and responses don’t change, what technique is used to extract the administrator password?
Video class: SQL Injection - Lab #17 SQL injection with filter bypass via XML encoding | Long Version08m
Exercise: In a SQL injection lab where a WAF blocks obvious payloads in an XML stock-check request, what technique can be used to bypass the filter?
Video class: SQL Injection - Lab #18 Visible error-based SQL injection | Long Version16m