# Test Cases ## 1. Basic test cases [Good] `SELECT _ FROM users WHERE id = 1` [Bad] `SELECT _ FROM users WHERE id = 1 OR 1=1` ## 2. Authentication bypass cases [Bad] `SELECT _ FROM users WHERE username = 'admin' --` [Bad] `SELECT _ FROM users WHERE username = 'admin' #` [Bad] `SELECT \* FROM users WHERE username = 'admin' OR '1'='1'` ## 3. Union based injection cases [Bad] `SELECT id, username FROM users WHERE id = 1 UNION SELECT null, 'hacker'` [Bad] `SELECT id, username FROM users WHERE id = 1 UNION SELECT 1, 'hacked' FROM dual` [Bad] `SELECT database() UNION SELECT 1` ## 4. Error based injection cases [Bad] `SELECT _ FROM users WHERE id = 1 AND (SELECT 1 FROM users WHERE id=2)=1` [Bad] `SELECT _ FROM users WHERE id = (SELECT COUNT(\*) FROM users)` ## 5. Blind SQL injection cases [Bad] `SELECT _ FROM users WHERE id = 1; WAITFOR DELAY '00:00:10' --` [Bad] `SELECT _ FROM users WHERE username = 'admin' AND 1=1` ## 6. Hex and Base64 encoded injection cases [Bad] `SELECT _ FROM users WHERE username = 0x61646D696E` [Bad] `SELECT _ FROM users WHERE username = 'YWRtaW4='` ## 7. False positives cases [Good] `SELECT _ FROM users WHERE id = 5` [Good] `SELECT users.name, orders.amount FROM users JOIN orders ON users.id = orders.user_id` [Good] `SELECT _ FROM users WHERE username = ? AND password = ?` ## 8. Edge cases [Good] `""` [Bad] `'; --` [Good] `12345` [Good] `asdkjhasdkjh`