SQL INJECTION AT INSERT POINT

SQL INJECTION AT INSERT POINT
โดยปกติเมื่อเราพูดถึง SQL Injection เราจะพูดถึงการใช้งาน union statement ในการดึงข้อมูลออกมา ซึ่งจะเป็นการ inject ไปยัง SELECT statement ทีนี้ถ้าเป็น INSERT, UPDATE, DELETE statement ล่ะ ยกตัวอย่างเช่น INSERT statement ถูกใช้เพื่อเก็บข้อมูลเข้าไปใน database เช่น การส่ง message หากัน, การเก็บข้อมูลของ Browser ของ user เข้าไปใน database เป็นต้น หรือการแก้ไขชื่อ, password, ชื่อ, และอื่นๆก็อาจจะใช้ UPDATE statement เป็นต้น
ใน lab ต่อไปจะเป็นการ inject payload ไปยัง INSERT query โดยในที่นี้เราจะ inject ในส่วน comment ครับ ซึ่งมีการเขียน INSERT query string เป็น
$comment = $_POST['comment'];

$strSQL = "INSERT INTO message (Username,Msg) VALUES ('".$_SESSION['username']."','".$comment."')";
$objQuery = mysqli_query($conn,$strSQL) or die("Error: " . mysqli_error($conn));
โดยจาก code จะพบว่ามีการเก็บข้อมูลเข้าไปใน message table ซึ่งจะเห็นว่าในส่วน comment นั้นมิได้มีการตรวจสอบแต่อย่างใด ทำให้สามารถเกิด SQL Injection ได้

Comments

Popular Posts