Error-based SQL injection. Bu holda skaner tekshirish davomida zaif belgini almashtirish yoki qo‘shgan vaqtda yuzaga keladi va ma’lumotlarni boshqarish tizimlarida xatolik yuz berganda foydalaniladi.
Stacked queries SQL injection. Bu turdagi ineksiyada SELECT komandasidan tashqari buyruqlar (INSERT yoki DELETE) foydalanilgan holda va HTTP so‘rovlarini tekshirish jarayonida nuqtali vergul (;) bilan almashtirish sodir bo‘lganda yuzaga keladi.
Boolean-based blind SQL injection. Ushbu turdagi ineksiya “ko‘r” ineksiya deb atalib, ma’lumotlar bazasidan zaiflik yaqqol ko‘rinmagan holda foydalaniladi.
Bunda sintaktik to‘g‘ri bo‘lgan so‘rovlarni kiritish orqali qaytarilgan mantiqiy javobga asoslanib natija aniqlanadi.
Time-based blind SQL injection. Bu to‘liq “ko‘r” ineksiya bo‘lib, unda so‘rovda quyi so‘rov kiritiladi va bu so‘rov ma’lumotlar ba’zasini boshqarish tizimining ishini bir muncha to‘xtatib turadi (SLEEP() yoki BENCHMARK()).
Bu tahdid asosan taqiqlangan belgilarni tekshirmaslik natijasida kelib chiqadi.
Quyida ushbu zaiflikni o‘z ichiga olgan SQL so‘rovi keltirilgan:
statement = "SELECT * FROM users WHERE name = '" + userName + "';"
Bu so‘rovga asosan aynan kerakli foydalanuvchi nomi ma’lumotlar bazasidan qidirilmoqda. Agar bu so‘rov buzg‘unchi tomonidan userName o‘rniga ' OR '1'='1 kiritilsa, quyidigi so‘rov hosil bo‘ladi:
SELECT * FROM users WHERE name = '' OR '1'='1';
Natijada ma’lumotlar bazasidan barcha foydalanuvchilar to‘g‘risidagi ma’lumotlar chiqariladi. Bu yerda quyidagi taqiqlangan belgilar birikmasidan ham foydalanish mumkin.
' OR '1'='1' --
' OR '1'='1' ({
' OR '1'='1' /*
Bu tahdidlarni oldini olishda kiruvchi so‘rov maxsus belgilarga tekshirilishi kerak. Ammo, bu so‘rovlarni kundan-kunga yangi turlari kelib chiqmoqda.
Do'stlaringiz bilan baham: |