LAB 2

🔐 Login System

SQL Injection Testing Lab
🟢 โหมดปลอดภัย - ป้องกัน SQL Injection

💉 SQL Injection Payloads สำหรับทดสอบ

คลิกปุ่มด้านล่างเพื่อใส่ payload ลงใน username field:

🔍 SQL Query ที่ถูกสร้าง:

SELECT * FROM users WHERE username = '' AND password = ''

ผลลัพธ์การ Login

👥 ผู้ใช้ที่มีในระบบ

admin / admin123
user / password
test / test123

💡 อธิบายการทำงาน

โหมดไม่ปลอดภัย:

// SQL ที่มีช่องโหว่ const query = `SELECT * FROM users WHERE username = '${username}' AND password = '${password}'`; // เมื่อ username = "' OR 1=1 --", password = "anything" // SQL ที่ได้: SELECT * FROM users WHERE username = '' OR 1=1 --' AND password = 'anything' // ผลลัพธ์: 1=1 เป็น true เสมอ, -- comment ทำให้เงื่อนไข password ถูกละเว้น

โหมดปลอดภัย:

// ป้องกันด้วย Input Validation และ Parameterized Query function escapeSQL(input) { return input.replace(/'/g, "''").replace(/--/g, "").replace(/\/\*/g, "").replace(/\*\//g, ""); } const safeUsername = escapeSQL(username); const safePassword = escapeSQL(password); const query = `SELECT * FROM users WHERE username = ? AND password = ?`;