Error-Based: Manipulate queries to produce error messages revealing database info (e.g., SELECT * FROM users WHERE id = 1 AND 1=CONVERT(int, (SELECT @@version))).
Union-Based: Use UNION to combine results from multiple SELECT statements (e.g., SELECT name, email FROM users WHERE id = 1 UNION ALL SELECT username, password FROM admin).
Inferential (Blind) SQL Injection:
Boolean-Based: Send queries that force the application to return different results based on true/false conditions (e.g., SELECT * FROM users WHERE id = 1 AND 1=1 vs. SELECT * FROM users WHERE id = 1 AND 1=2).
Time-Based: Send queries that delay responses based on true/false conditions (e.g., SELECT * FROM users WHERE id = 1; IF (1=1) WAITFOR DELAY '00:00:05'--).
Out-of-band SQL Injection:
Used when the same channel can't be used for attack and data retrieval.
Relies on the database server making out-of-band requests (e.g., HTTP, DNS) to send data to the attacker.