Ushbu bo'limda stored cross-site scripting'ni tushuntiramiz, uning ta'sirini ta'riflaymiz va stored XSS zaifliklarini qanday topishni ko'rsatamiz.
Stored XSS (second-order yoki persistent XSS deb ham ataladi) ilova ishonchsiz manbadan ma'lumot olib, uni keyingi javoblarga xavfsiz bo'lmagan tarzda qo'shganda yuzaga keladi. Masalan, vebsayt foydalanuvchilarga blog postlariga izoh qoldirishga ruxsat bersa:
POST /post/comment HTTP/1.1
Host: vulnerable-website.com
Content-Length: 100
postId=3&comment=This+post+was+extremely+helpful.&name=Carlos+Montoya&email=carlos%40normal-user.netHujumchi zararli izoh yuborishi mumkin:
<p><script>/* Yomon narsa... */</script></p>Blog postga tashrif buyurgan har qanday foydalanuvchi javobda bu skriptni oladi va u jabrlanuvchi brauzerida bajariladi.
Reflected va stored XSS o'rtasidagi asosiy farq — stored XSS ilovaning o'zi ichida mustaqil (self-contained) hujumlarga imkon beradi. Hujumchi boshqa foydalanuvchilarni muayyan so'rov yuborishga undaydigan tashqi yo'l topishი shart emas — u ekspluatatsiyasini ilovaning o'ziga joylab, foydalanuvchilar unga duch kelishini kutadi. Bu, ayniqsa, faqat login qilingan foydalanuvchilarga ta'sir qiladigan XSS'da muhim.
Stored ma'lumotning javobdagi joylashuvi kerakli payloadni belgilaydi. Batafsil: Cross-site scripting kontekstlari.
Stored XSS'ni qo'lda sinash qiyinroq. Barcha "kirish nuqtalari" (URL query, message body, fayl yo'li, HTTP sarlavhalar, out-of-band yo'llar) va "chiqish nuqtalari" (istalgan foydalanuvchiga qaytadigan barcha HTTP javoblar) o'rtasidagi bog'lanishlarni aniqlashingiz kerak. Har bir bog'lanishني sinab, stored ma'lumot qayerda paydo bo'lishini va uni ekspluatatsiya qilish mumkinligini tekshirasiz.