Ilovaning kamchiligidan foydalanib ma’lumot kiritiladigan qismlarga SQL so’rovlarni inyeksiya qilish orqali ma’lumotlar maxfiyligiga, butunligiga, ishonchliligiga tahdid qilish usuliga SQL inyeksiya deyildi.
Bunday turdagi tahdidlar 2007 – 2010 yillarda ommalashgan va shu yillardagi ilovalarning eng katta 10 ta kamchiligi qatoriga kiritilgan.
SQL inyeksiya nima ?
SQL inyeksiyaning birnecha turlari mavjud bo’lib ularning
asosan 3 ta katta turi farqlanadi. Ular:
Mantiqiy qiymatga asoslangan SQL inyeksiya;
UNION komandasiga asoslangan SQL inyeksiya;
Zanjirli so’rovga asoslangan SQL inyeksiya.
SQL inyeksiya orqali tahdid qilishda ma’lumotlar qay darajada
tasvirlanishiga qarab hujumlar oshkor, va ko’r turlariga bo’linadi.
Bunday hujumlarda ilova natijalarni ekranga chiqarishi
kerak bo’ladi. Masalan qidiruv natijalari ekranga chiqishi,
maxsus id yoki loginga tegishli ma’lumotlarni ekranga
yuzaga
chiqarilishi oshkora SQL inyeksiya tahdidini keltiradi.
Ko’r SQL inyeksiya
Bunday
turdagi
hujumda ilova hech
taqdim
etmaydi.
Bunday
ma’lumot ma’lumot
olish uchun boshqacharoq
qanday taqdirda usllarni
qo’llashga to’g’ri keladi.
Odatda qidirish amallari WHERE komandasi orqali bajariladi. Ya’ni WHERE komandasi kerakli qiymat topilganda true qiymat oladi va natijani qaytaradi. Agar ilovada SQL inyeksiyaga yo’l qo’yilgan bo’lsa mantiqiy true qiymatidan foydalanib WHERE komandasini aldash mumkin. WHERE true komandasi barcha qiymatlarn qaytaradi. Uni shaklini o’zgartirib WHERE '1'='1' bilan almashtirish mumkin. Bunday tahdidni amalga oshirish uchun ilovada ishlatilgan SQL so’rov haqida tasavvurga ega bo’lish kerak bo’ladi. U tahminan quyidagcha bo’lishi mumkin:
SELECT …, …. FROM … WHERE … = '$qiymat’;
Bu so’rov qachonki WHERE komandasi ture qiymat olganda natija qaytaradi.