SQL Injection Detection

Detects SQL injection vulnerabilities where user input is concatenated into SQL queries

zakirkun ec10a3b 2 files · 1.9 KB Updated

File contents

SQL Injection Detection

Overview

SQL injection occurs when user-controlled input is incorporated into SQL queries without proper sanitization or parameterization.

Detection Strategy

  1. Import check: Look for database packages (database/sql, gorm, sqlx)
  2. Call check: Find SQL execution functions (Query, Exec, Raw)
  3. Context check: Check if arguments include string concatenation or fmt.Sprintf
  4. Taint check: Trace if user input reaches SQL execution sinks

Remediation

Use parameterized queries / prepared statements instead of string concatenation.

Vulnerable:

db.Query("SELECT * FROM users WHERE id = " + userInput)

Safe:

db.Query("SELECT * FROM users WHERE id = $1", userInput)

zakirkun/ice-tea/tree/main/skills/injection/sql-injection commit ec10a3ba7f

Frequently asked questions

npx skillmds@latest add zakirkun/sql-injection-detection