Learn how attackers manipulate SQL queries to bypass authentication, extract data, and modify databases.
SQL Injection occurs when an attacker inserts malicious SQL code into user input fields, allowing them to execute unintended database queries. It happens because applications concatenate user input directly into SQL statements without proper validation or parameterized queries.
Impact: Authentication bypass, data theft, data modification, denial of service, and potential complete database compromise.
When an app builds SQL queries using string concatenation:
An attacker can inject SQL syntax by providing input like: ' OR '1'='1
The condition '1'='1' is always true, causing the query to return all users instead of just one.
Skip login by making the WHERE clause always true or bypassing password checks:
Combine attacker-controlled query results with legitimate results to exfiltrate data:
When no output is visible, use boolean conditions to extract data bit by bit:
Sony Pictures (2014): SQLi vulnerability exposed employee data
TalkTalk (2015): SQLi attack exposed 4 million customers' personal information
Yahoo (2013): SQLi used in chain of exploits affecting 3 billion accounts
Lab 00 - Login Bypass: Use basic OR injection to bypass authentication
Lab 10 - UNION Extraction: Extract multiple columns via UNION-based injection
Lab 20 - Blind Boolean: Extract data without visible output using conditional logic
These labs are isolated and safe—no system commands, no actual database damage.