การทดสอบความปลอดภัย - การฉีด

เทคนิคการฉีดประกอบด้วยการฉีดแบบสอบถาม 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 ซึ่งเป็นแนวทางสำหรับนักพัฒนา

  • การใช้การสืบค้นแบบกำหนดพารามิเตอร์
  • การหลีกเลี่ยงอินพุตที่ผู้ใช้ให้มาทั้งหมด
  • เปิดใช้งานสิทธิ์น้อยที่สุดสำหรับฐานข้อมูลสำหรับผู้ใช้ปลายทาง