Ushbu bo'limda keng doiradagi kontekstlarda information disclosure'ni aniqlashga yordam beruvchi ba'zi usul va vositalar bo'yicha amaliy maslahatlar beramiz.
Umuman olganda, testlash paytida "tunnel ko'rish" (tunnel vision) rivojlantirmaslik muhim — ya'ni ma'lum bir zaiflikka juda tor doirada e'tibor qaratmang. Maxfiy ma'lumot har xil joylarda sizib chiqishi mumkin, shuning uchun keyinchalik foydali bo'lishi mumkin bo'lgan hech narsani o'tkazib yubormaslik muhim. Siz ko'pincha boshqa narsani sinayotganda maxfiy ma'lumotni topib olasiz.
Quyida testlash paytida information disclosure'ni aniqlashga yordam beruvchi yuqori darajadagi usul va vositalarga misollar keltirilgan:
error, SELECT, SQL kabi kalit so'zlarni grep bilan aniqlash.Information disclosure vebsayt ichida turli kontekstlarda yuzaga kelishi mumkin. Quyida maxfiy ma'lumot oshkor bo'lganini tekshirish uchun qarash mumkin bo'lgan ba'zi keng tarqalgan joylar keltirilgan.
Ko'p vebsaytlar crawlerlarga saytda harakatlanishga yordam berish uchun /robots.txt va /sitemap.xml da fayllar beradi. Bu fayllar ko'pincha crawlerlar o'tkazib yuborishi kerak bo'lgan (masalan maxfiy ma'lumot bo'lishi mumkin bo'lgani uchun) aniq kataloglarni sanab o'tadi. Bu fayllar odatda vebsayt ichidan havola qilinmagani uchun, ularga qo'lda o'tib ko'rishga arziydi.
Veb-serverlar index sahifasi bo'lmagan kataloglar mazmunini avtomatik ro'yxatlashga sozlanishi mumkin. Bu hujumchiga berilgan yo'ldagi resurslarni tez aniqlashga yordam beradi. Bu, ayniqsa, vaqtinchalik fayllar va crash dump'lar kabi foydalanuvchilarga mo'ljallanmagan maxfiy fayllarning oshkorligini oshiradi.
Ishlab chiqish paytida markup'ga ba'zan inline HTML izohlari qo'shiladi. Bular odatda production'ga deploy qilishdan oldin olib tashlanadi. Biroq izohlar ba'zan unutiladi yoki qoldiriladi. Bu izohlar render qilingan sahifada ko'rinmasa-da, Burp yoki brauzerning developer tools'i yordamida osongina ko'rish mumkin. Ba'zan ular yashirin kataloglar mavjudligiga ishora qiladi yoki ilova logikasi haqida maslahat beradi.
Information disclosure'ning eng keng tarqalgan sabablaridan biri — batafsil (verbose) xato xabarlari. Xato xabarlari mazmuni berilgan parametrdan qanday kiritma yoki ma'lumot turi kutilayotganini oshkor qilishi mumkin. Batafsil xato xabarlari, shuningdek, vebsayt ishlatayotgan turli texnologiyalar (template engine, database turi yoki server, versiya raqami bilan) haqida ma'lumot berishi mumkin. Bu ma'lumot foydali, chunki shu versiya uchun mavjud hujjatlashtirilgan ekspluatatsiyalarni osongina qidirishingiz mumkin.
Debug maqsadida ko'p vebsaytlar ilova xatti-harakati haqida katta hajmdagi ma'lumotni o'z ichiga olgan maxsus xato xabarlari va loglar generatsiya qiladi. Bu ma'lumot production'da sizib chiqsa, hujumchi uchun juda foydali. Debug xabarlari quyidagilarni o'z ichiga olishi mumkin: manipulyatsiya qilinishi mumkin bo'lgan sessiya o'zgaruvchilari qiymatlari, back-end komponentlar uchun hostname va login ma'lumotlari, serverdagi fayl va katalog nomlari, mijoz orqali uzatiladigan ma'lumotni shifrlash uchun ishlatiladigan kalitlar.
Foydalanuvchi profil yoki hisob sahifasi tabiatan email, telefon raqami, API kalit kabi maxfiy ma'lumotni o'z ichiga oladi. Odatda foydalanuvchilar faqat o'z hisob sahifasiga kirgani uchun bu o'z-o'zidan zaiflik emas. Biroq ba'zi vebsaytlar hujumchiga boshqa foydalanuvchilar ma'lumotini ko'rishga imkon beradigan logic flaw'larni o'z ichiga oladi. Masalan, user parametriga qarab qaysi hisob sahifasi yuklanishini aniqlaydigan vebsaytni ko'rib chiqing:
GET /user/personal-info?user=carlosBa'zan alohida ma'lumot bo'laklarini (masalan email manzilini) olish logikasi user parametri joriy login qilingan foydalanuvchiga mos kelishini tekshirmaydi — bu holda parametrni o'zgartirish hujumchiga o'z hisob sahifasida ixtiyoriy foydalanuvchilarning email manzillarini ko'rsatishga imkon beradi.
Manba kodga kirish hujumchiga ilova xatti-harakatini tushunish va yuqori jiddiylikdagi hujumlarni qurishni ancha osonlashtiradi. Ba'zan maxfiy ma'lumot (API kalitlari, login ma'lumotlari) manba kodda hard-code qilingan bo'ladi. Matn muharrirlari ko'pincha asl fayl tahrirlanayotganda vaqtinchalik zaxira fayllar generatsiya qiladi. Bu fayllar odatda fayl nomiga tilda (~) qo'shish yoki boshqa kengaytma bilan belgilanadi. Kod faylini zaxira fayl kengaytmasi bilan so'rash ba'zan javobda fayl mazmunini o'qish imkonini beradi.
Vebsaytlar ba'zan noto'g'ri konfiguratsiya natijasida zaif bo'ladi. Masalan, dasturchilar production'da turli debug opsiyalarini o'chirishni unutishi mumkin. HTTP TRACE metodi diagnostika uchun mo'ljallangan. Yoqilgan bo'lsa, veb-server TRACE metodli so'rovlarga qabul qilingan so'rovni aynan javobda qaytarib javob beradi. Bu ba'zan reverse proksilar qo'shadigan ichki autentifikatsiya sarlavhalari nomi kabi information disclosure'ga olib keladi.
Deyarli barcha vebsaytlar Git kabi version control tizimidan foydalanib ishlab chiqiladi. Standart holatda Git loyihasi barcha version control ma'lumotini .git papkasida saqlaydi. Ba'zan vebsaytlar bu katalogni production'da oshkor qiladi — bunday holatda unga shunchaki /.git ga o'tib kirishingiz mumkin. Butun .git katalogini yuklab olib, lokal Git bilan ochib, vebsaytning version control tarixiga (commit qilingan o'zgarishlar loglari) kirishingiz mumkin. Bu maxfiy ma'lumot hard-code qilingan o'zgartirilgan qatorlarni ham o'z ichiga olishi mumkin.