การทดสอบความปลอดภัย - การฉีด
เทคนิคการฉีดประกอบด้วยการฉีดแบบสอบถาม SQL หรือคำสั่งโดยใช้ช่องป้อนข้อมูลของแอปพลิเคชัน
เว็บแอปพลิเคชัน - การฉีด
การฉีด SQL ที่ประสบความสำเร็จสามารถอ่านแก้ไขข้อมูลที่ละเอียดอ่อนจากฐานข้อมูลและยังสามารถลบข้อมูลออกจากฐานข้อมูล นอกจากนี้ยังช่วยให้แฮ็กเกอร์สามารถดำเนินการดูแลระบบบนฐานข้อมูลเช่นปิดฐานข้อมูล DBMS / วางฐานข้อมูล
ขอให้เราเข้าใจตัวแทนภัยคุกคามผู้โจมตีจุดอ่อนด้านความปลอดภัยผลกระทบทางเทคนิคและผลกระทบทางธุรกิจของข้อบกพร่องนี้ด้วยความช่วยเหลือของแผนภาพง่ายๆ
ตัวอย่าง
แอปพลิเคชันใช้ข้อมูลที่ไม่น่าเชื่อถือในการสร้างการเรียก SQL ที่มีช่องโหว่ดังต่อไปนี้ -
String query = "SELECT * FROM EMP WHERE EMPID = '" + request.getParameter("id") + "'";
Hands On
Step 1 - ไปที่พื้นที่ SQL Injection ของแอปพลิเคชันดังที่แสดงด้านล่าง
Step 2- ตามที่ให้ไว้ในแบบฝึกหัดนี้เราใช้ String SQL Injection เพื่อข้ามการพิสูจน์ตัวตน ใช้ SQL injection เพื่อเข้าสู่ระบบในฐานะเจ้านาย ('Neville') โดยไม่ต้องใช้รหัสผ่านที่ถูกต้อง ตรวจสอบว่าสามารถดูโปรไฟล์ของเนวิลล์ได้และมีฟังก์ชันทั้งหมดที่พร้อมใช้งาน (รวมถึงค้นหาสร้างและลบ)
Step 3 - เราจะใส่ SQL เพื่อให้เราสามารถข้ามรหัสผ่านได้โดยส่งพารามิเตอร์เป็น 'a' = 'a' หรือ 1 = 1
Step 4 - Post Exploitation เราสามารถเข้าสู่ระบบในฐานะ Neville ที่เป็น Admin ได้ดังภาพด้านล่าง
การป้องกัน SQL Injection
มีหลายวิธีในการป้องกันการแทรก SQL เมื่อนักพัฒนาเขียนโค้ดพวกเขาควรตรวจสอบให้แน่ใจว่าพวกเขาจัดการกับอักขระพิเศษตามนั้น มีสูตรโกง / เทคนิคการป้องกันจาก OWASP ซึ่งเป็นแนวทางสำหรับนักพัฒนา
- การใช้การสืบค้นแบบกำหนดพารามิเตอร์
- การหลีกเลี่ยงอินพุตที่ผู้ใช้ให้มาทั้งหมด
- เปิดใช้งานสิทธิ์น้อยที่สุดสำหรับฐานข้อมูลสำหรับผู้ใช้ปลายทาง