Mavzu: WebGoat da sql injection ni amalga oshirish Vazifa 2




Download 0.99 Mb.
Sana17.04.2023
Hajmi0.99 Mb.
#51914
Bog'liq
4-amaliy DV
1-amaliy mashg\'ulot, RKT, RI-51 Mamatqulov Mehrobjon Hisobot, 1. Статья для Джиззаха, 2-Tajriba (3), Doc1, 5-мавзу, EvaS


O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI

Dasturiy vositalar xavfsizligi fanidan
Amaliy ish №3

BAJARDI:Erkinova M.
TEKSHIRDI: Tursunov O.

Toshkent-2023


Mavzu: WebGoat da SQL Injection ni amalga oshirish




Vazifa 2
Vazifa: Misol jadvaliga qarang. Bob Franko ismli xodimning bo'limini olishga harakat qiling.

Bizga SQL ma'lumotlar bazasidan Employees jadvalining rasmi berilgan va to'liq administrator huquqlariga egamiz.





Mana bu vazifa uchun ishlatiladigan so'rov.


Jadval ko'rinib turganidek qisqa so'rovni yaratish oson. Mening SQL dangasa va siz to'g'ri kapitallashuvdan foydalanishingiz kerak, lekin agar u ishlayotgan bo'lsa, u ishlaydi. Men ism va familiya o'rniga " foydalanuvchi identifikatori " dan foydalandim , chunki uni kiritish osonroq va shubhasiz noyob edi.

Vazifa 3
Xuddi shu jadval, lekin endi biz Tobi departamentini yangilashimiz kerak. Yana bir bor asosiy kalitdan foydalanish afzalroqdir (bu holda userid ), chunki biz bu to'g'ri Tobi Barnett ekanligiga ishonch hosil qilishimiz kerak.

Jadval Employeesini YANGILASHamiz va bo'lim qiymatini savdo bo'lishini belgilaymiz. Bu erda qayer muhim, chunki biz faqat Tobi uchun qiymatni yangilashni xohlaymiz. Foydalanuvchini ko'rsatmasdan, biz ushbu jadvaldagi barchani savdo qismiga aylantiramiz.




Vazifa 4
Employeesga varchar ( 20) tipidagi "phone" ustunini qo'shishimiz kerak . Bizga ma'lumki, Varchar matn maydoni bo'lib, bu holda u 20 ta belgidan iborat bo'lishi mumkin. Buni birinchi urinishda vazifa sahifasidagi tavsif bilan eslaganimga hayron bo'ldim:

varchar ( 20) turidagi "telefon" ustunini qo'shish orqali Employees deb nomlangan jadvalni o'zgartirmoqchimiz .




Vazifa 5
UnauthorizedUser ” deb nomlangan foydalanuvchilar guruhiga jadvallarni oʻzgartirish huquqini berishga harakat qiling:

Kechirasiz, men faqat so'rovni yozishimga yordam berganini his qilganimda (yoki ba'zi hollarda kerak bo'lganda) katta harflardan foydalanaman. Bu erda yana bir bor topshiriq ma'lumotlaridan sintaksis nima ekanligini o'qish ahamiyatsiz edi.



Vazifa 9

Bu yerda biz so'rovni Jon ismli va familiyasi sifatida '' (bo'sh maydon) yoki 1=1 bo'lgan har qanday odamni izlash uchun qilamiz. Bu holda 1=1 har doim to'g'ri bo'ladi.



Vazifa 10
Bizning vazifamiz: Quyidagi ikkita Kirish maydonidan foydalanib, foydalanuvchilar deb nomlangan jadvaldan barcha ma'lumotlarni olishga harakat qiling. Ogohlantirish: Ushbu maydonlardan faqat bittasi SQL Injectionga sezgir. Barcha ma'lumotlarni muvaffaqiyatli olish uchun qaysi birini topishingiz kerak.
Biz maydonlardan faqat bittasi sezgir ekanligini bilamiz va biz kodning parchasini ko'rishimiz mumkin:

Quyidagi kodni ko'rib chiqish ishlashi kerak:

Ko'rib turganimizdek, u ishlamayapti va biz xatoga yo'l qo'yganmiz.





Endi bilamizki, Login_count ga kiritilgan maʼlumotlarimiz sezgir emas (bizning kiritgan maʼlumotlarimiz savol belgisiga aylangan), maslahat berganidek. Keling, ushbu maydonga o'zi xohlagan qiymatni beraylik va bu maydonga kirish uchun 1 raqamidan foydalanishga imkon beradi (menimcha, bu butun son ustun va bitta maqbul son bo'lishi kerak. Agar u o'zgaruvchiga mos kelsa, har qanday tamsayı bajariladi. login_count uchun ustun o'lchami ).



User_Id uchun biz “1 yoki 1=1; ”.




Vazifa 11
Biz foydalanuvchi Jon Smitmiz va bizning TAN 3SL99A. Biz jadval Employeesining barcha ma'lumotlarini ko'rishni xohlaymiz.

Biz yana bir bor ishlatilgan kodni olamiz. Quyidagi kodga qarash ishlashi kerak.

Va, albatta, shunday bo'ldi. Bu erda "-" muhim edi, chunki so'rovning qolgan qismini sharhlaydi. TANni kiritishimning yagona sababi bu majburiy maydon bo'lganligi edi.


Vazifa 12
Vazifa avvalgisi bilan bir xil, ammo bu safar biz o'zimizni oshirishni xohlaymiz. Menga siz yomon odam bo'lgan bu vazifalar yoqmaydi, chunki "Agar o'zingizni oshirish mumkin bo'lsa, sinab ko'rish uchun sizga yozma ruxsat berilgan" iborasi osongina bo'lishi mumkin. - narsaning turi. Mening kamtarona fikrlarim bir chetga surib, oldingi ma'lumotlarimizni vazifaga mos ravishda o'zgartirishga harakat qilishimizga imkon beradi.

Bu maydon yetarlicha katta emas, shuning uchun kiritildi: asd '; YANGILANISh Employees ish haqini SET = '999999' bunda userid ='37648'--


Biz oldingi so'rovni nuqta-vergul bilan tugatdik va keyin maoshimizni yangilash uchun so'rovimizni qo'ydik. Nihoyat, biz zararli so'rovimizdan keyin qo'yilgan har qanday narsani izohladik. Men TAN maydoniga biror narsa qo'yishni unutganman, lekin bu majburiy emas edi. Agar siz ushbu foydalanuvchi identifikatorini qayerdan olganimga qiziqsangiz, men uni qidirish uchun 10- topshiriqdagi so'rovdan foydalandim .


Vazifa 13
access_log mavjud ko'rinadi va biz uni o'chirishimiz kerak yoki aytishim kerakmi ... uni issiqdek tashlab qo'ying. Kechirasiz, men buni qilishim kerak edi.

Yana bir bor oldingi so'rovni '; va o'zimizniki bilan davom eting, bu holda biz access_log nomli jadvalni tashlamoqchimiz (ism bizga topshiriqda berilgan). Odatdagidek , biz dastur so'rovimizga mos keladigan har qanday narsani e'tiborsiz qoldirishini istaymiz, shuning uchun biz buni yakunlaymiz - bularning barchasini izohlash uchun.



Download 0.99 Mb.




Download 0.99 Mb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Mavzu: WebGoat da sql injection ni amalga oshirish Vazifa 2

Download 0.99 Mb.