Sql inyeksiya va undan ximoyalanish
Download 163.39 Kb. Pdf ko'rish
|
MBX Mustaqil ish
SELECT * FROM card WHERE id=1- IF(MID(VERSION(),1,1) = '5', SLEEP(15), 0)
Zanjirli so’rovga asoslangan SQL inyeksiya. Ushbu turdagi SQL inyeksiyani amalga oshirsh uchun ma’lumotlar bazasi zanjirli so’rovlarni qo’llab quvvatlashi kerak bo’ladi. Bunday turdagi so’rovlarni yangi versiyadagi ma’lumotlar bazalari qo’llab quvvatlamaydi. Ammo bu turdagi hujum eng xavflisi hisoblanadi. Uning yordamda ma’lumotlar bazasida istalgan ishni qilish mumkin. Ma’lumotlarni o’chirish, o’zgartrish, ma’lumotlar bazasini o’chirib tashlash va hattoki operatsion tizimdan ham foydalanish mumkin. Bunga misol qilib quyidagi kodni keltirish mumkin: SELECT * FROM table_name WHERE smth = ' ';DROP database;--’; Zanjirli so’rovga asoslangan SQL inyeksiya. SQL ning maxsus imkonyatlari mavjud. exec xp_cmdshell komandasi orqali SQL so’rov yordamida operatsion tizim imkoniyatlaridan foydalanish mumkin. Bu imkoniyat odatda o’chirib qo’yilgan holda bo’ladi. Lekin uni yoqib qo’yish orqali maxsus ishlarni bajrish mumkin. Masalan BackUp nusxani olishni avtomatlashtirish mumkin. Ammo bu imkoniyat anchagina xavfli hujumlarga olib kelishi mumkin. SQL inyeksiyaga yo’l qo’yilganda zanjirli so’rov orqali ushbu imkonyatdan foydalanilsa SQL bazasi turgan kompyuter yoki serverning barcha imkoniyatlarini qo’lga kiritish mumkin. Bunda ham hamma imkoniyatlarni qo’lga kiritish yoki kiritmaslik SQL server qaysi huquq bilan ishlayotganiga bog’liq. Agar SQL server adminstartor nomidan daoliyat yurutayotgan bo’lsa demak hujum natijasida server xavf ostida qolishi mumkin.
SQL inyeksiyadan himoyalanish SQL inyeksiya hujumiga zaiflikni avvalambor dinamik so’rov orqali bazaga murojat qilish keltirib chiqaridi. Masalan: $id; $query = “SELECT * FROM tablename WHERE id –'” + $id + “’;” Bunday hujumdan himoyalanish uchun maxsus belgilarni almashtirib qo’yish mumkin. Masalan ( ' ) qo’shtirnoq belgisini va (;) nuqtali bergul belgilarini xuddi shunday tasvirlanadigan ammo dastur boshqa belgi deb tushunadigan belgilarga almashtirib qo’yish mumkin.
SQL inyeksiyadan himoyalanish Hujumdan himoyalanishning eng samarali yo’li tayyorlangan so’rovlardan foydalanish orqali ma’lumotlar bazasiga murojat qilish hisoblanadi. Bunday so’rovga quyidagini misol qilib keltirish mumkin: $stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)"); $stmt->bind_param("sss", $firstname, $lastname, $email); Yoki
mysql> PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse’; mysql> SET @a = 3; mysql> SET @b = 4; mysql> EXECUTE stmt1 USING @a, @b; SQL inyeksiyadan himoyalanish Inson omilini hisobga oladigan bo’lsak hamma joyda ham tayyorlangan himoya usulini qo’llash yoddan ko’tarilishi mumkin. Shuning uchun himoyaning ikki turini ham qo’llagan ma’qul.
Xulosa SQL inyeksiya yordamida ma’lumotlar bazasi maxfiyligiga, ishonchliligiga, butunligiga va operatsion tizim boshqaruvini yo’qotishga sabab bo’lishi mumkin ekan. Download 163.39 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling