Inject a single quote ' into every parameter. Note errors, blanks, or changes.
Use boolean logic: ?id=1' and '1'='1 vs ?id=1' and '1'='2 – does content differ?
Try stacking with ; -- to see if multiple queries execute.
Test for time-based blind: 1' OR sleep(5)-- (MySQL) or 1'; WAITFOR DELAY '00:00:05'-- (MSSQL).
Determine column count with ORDER BY (increment until error).
Use UNION SELECT with matching columns to extract data.
Check for error-based extraction (e.g., updatexml() in MySQL).
Test headers like User-Agent and X-Forwarded-For with probes.
Try out-of-band techniques (DNS lookup) if applicable.
If JSON API, inject in string values: {"user": "admin'--"}