enhance SQL injection keyword category with more patterns and exceptions

This commit is contained in:
Ishaan Jaffer 2026-02-19 14:52:44 -08:00
parent 8d2e406233
commit 94d75d64d6

View file

@ -1,5 +1,7 @@
# SQL Injection Detection - Detects SQL injection attempts in prompts
# Uses conditional logic: BLOCK if an identifier word + block word appear in same sentence
# NOTE: avoid regex-special characters like ( ) [ ] in keywords,
# because the content filter matches keywords via regex internally.
category_name: "prompt_injection_sql"
description: "Detects SQL injection attempts embedded in prompts"
default_action: "BLOCK"
@ -19,32 +21,39 @@ identifier_words:
- "TRUNCATE"
- "GRANT"
- "REVOKE"
- "UNION"
- "SHUTDOWN"
# ADDITIONAL BLOCK WORDS - Injection-specific patterns
additional_block_words:
- "UNION"
- "1=1"
- "OR true"
- "OR 1"
- "--"
- "/*"
- "xp_cmdshell"
- "information_schema"
- "sys.tables"
- "sysobjects"
- "pg_catalog"
- "pg_tables"
- "INTO OUTFILE"
- "INTO DUMPFILE"
- "LOAD_FILE"
- "BENCHMARK"
- "SLEEP("
- "WAITFOR"
- "HAVING 1=1"
- "GROUP BY"
- "ORDER BY 1"
- "INTO DUMPFILE"
- "hex("
- "char("
- "concat("
- "@@version"
- "schema_name"
- "@@version"
- "drop table"
- "drop database"
- "drop schema"
- "truncate table"
- "delete from"
- "alter table"
- "union select"
- "union all select"
- "grant all"
# ALWAYS BLOCK - Explicit SQL injection patterns (blocked regardless of context)
always_block_keywords:
@ -56,6 +65,8 @@ always_block_keywords:
severity: "high"
- keyword: "' OR 1=1--"
severity: "high"
- keyword: "' OR 1=1 --"
severity: "high"
- keyword: "UNION SELECT * FROM"
severity: "high"
- keyword: "UNION ALL SELECT"
@ -66,22 +77,18 @@ always_block_keywords:
severity: "high"
- keyword: "' UNION SELECT NULL"
severity: "high"
- keyword: "SELECT * FROM users"
severity: "medium"
- keyword: "' UNION SELECT"
severity: "high"
- keyword: "UNION SELECT NULL"
severity: "high"
- keyword: "SELECT password FROM"
severity: "high"
- keyword: "INSERT INTO users"
severity: "medium"
- keyword: "UPDATE users SET"
severity: "medium"
- keyword: "DELETE FROM users"
severity: "high"
- keyword: "DROP DATABASE"
severity: "high"
- keyword: "DROP TABLE users"
severity: "high"
- keyword: "ALTER TABLE users"
severity: "medium"
- keyword: "' OR ''='"
severity: "high"
- keyword: "admin'--"
@ -92,29 +99,55 @@ always_block_keywords:
severity: "high"
- keyword: "INFORMATION_SCHEMA.COLUMNS"
severity: "high"
- keyword: "LOAD DATA INFILE"
severity: "high"
- keyword: "INTO OUTFILE"
severity: "high"
- keyword: "BENCHMARK(10000000"
- keyword: "INTO DUMPFILE"
severity: "high"
- keyword: "LOAD_FILE"
severity: "high"
- keyword: "WAITFOR DELAY"
severity: "high"
- keyword: "SLEEP(5)"
severity: "medium"
- keyword: "'; SHUTDOWN --"
severity: "high"
- keyword: "'; EXEC sp_"
severity: "high"
- keyword: "xp_cmdshell"
severity: "high"
- keyword: "sp_addlogin"
severity: "high"
- keyword: "sp_addsrvrolemember"
severity: "high"
- keyword: "ORDER BY 1--"
severity: "high"
- keyword: "GROUP BY 1--"
severity: "high"
- keyword: "HAVING 1=1"
severity: "high"
# Exception patterns (legitimate uses)
exceptions:
- "SQL tutorial"
- "learn SQL"
- "explain SQL"
- "what is SQL injection"
- "SQL syntax"
- "SQL documentation"
- "database design"
- "SQL best practices"
- "SQL injection prevention"
- "protect against SQL injection"
- "how to prevent"
- "how to protect"
- "how to defend"
- "parameterized query"
- "parameterized queries"
- "prepared statement"
- "prepared statements"
- "SQL training"
- "database course"
- "how to sanitize"
- "how to validate"
- "research on"
- "security research"
- "security audit"
- "penetration testing"