πŸ›‘οΈ

SQL Injection Overview

Jun 16, 2025

Overview

This lecture covers SQL injection attacks, how they work, their dangers, and demonstrates a practical example of exploiting an application vulnerable to such attacks.

Authentication and Application Security

  • Applications require authentication (username and password) to provide user-specific data access.
  • Attackers may inject malicious code to bypass authentication and access all database data.

SQL Injection Attacks

  • SQL injection is a technique where attackers insert malicious SQL code into application inputs to manipulate database queries.
  • Lack of proper input validation by developers leaves applications vulnerable to SQL injection.
  • Other types of code injection include HTML, XML, and LDAP.

How SQL Injection Works

  • SQL (Structured Query Language) is used for managing data in relational databases like MySQL or SQL Server.
  • Improperly handled user input can let attackers modify SQL commands to bypass authentication.
  • Example: Query SELECT * FROM users WHERE name = 'professor' can be altered to always return true with input like ' OR '1'='1'.
  • This injection makes the query return all user data, circumventing security controls.*

Demonstration Example

  • Tools like WebGoat provide intentionally vulnerable applications for practicing SQL injection.
  • Example login: normal user inputs are username "Smith" and TAN "3SL99A".
  • Attacker injects ' OR 1=1;-- as the username to retrieve all records instead of just their own.
  • Successful injection exposes all user IDs, names, departments, salaries, and authentication data.

Key Terms & Definitions

  • Authentication β€” Verifying a user’s identity before granting application access.
  • SQL (Structured Query Language) β€” Language for managing and querying data in relational databases.
  • SQL Injection β€” Attack technique where malicious SQL code is inserted into application input fields to manipulate database queries.
  • Input Validation β€” Process of verifying and cleaning user inputs to prevent malicious data from being processed.

Action Items / Next Steps

  • Review methods for secure input handling and validation in application development.
  • Practice preventing SQL injection vulnerabilities using parameterized queries or prepared statements.
  • Complete any assigned reading on database security fundamentals.