Maxsus skan tekshiruvlarini yozish qo'llanmasi
Burp Scanner imkoniyatlarini o'zingizning skan tekshiruvlaringizni yozish orqali kengaytirishingiz mumkin. Maxsus skan tekshiruvi Burp Scanner o'zi aniqlay olmaydigan zaifliklarni topishi mumkin.
Ushbu qo'llanma o'zingizning Java asosidagi maxsus skan tekshiruvlaringizni yozishga yordam berish uchun quyidagilarni o'z ichiga oladi:
- Skan tekshiruvining to'g'ri turini qanday tanlash kerakligi.
- Skan tekshiruvining asosiy tuzilishi.
- Keng tarqalgan andozalar va kod parchalari.
Aloqador sahifalar
- Maxsus skan tekshiruvlarini yaratish.
- Maxsus skan tekshiruvlarini sinovdan o'tkazish.
- BCheck asosidagi maxsus skanerlash tekshiruvlarini yaratish bo'yicha ko'rsatmalar uchun BCheck ta'riflari sahifasiga qarang.
- Tadqiqotchilarimiz va hamjamiyat tomonidan yaratilgan maxsus skanerlash tekshiruvlari misollarini ko'rish uchun Bambdas GitHub repozitoriysi - Maxsus skanerlash tekshiruvlari sahifasiga qarang.
To'g'ri tekshiruv turini tanlash
Skan tekshiruvini yaratishdan oldin quyidagilarni hal qilishingiz kerak:
- Turi - Active yoki Passive.
- U qachon ishga tushishi - Per host, Per request yoki Per insertion point.
- Collaborator ishlatishi yoki ishlatmasligi - Use Collaborator o'tkazgichi out-of-band muammolarni aniqlaydigan tekshiruvlar qurishingizga hamda Burp ularni qanday qayta ishlashi va xabar qilishini belgilashingizga imkon beradi.
Burp tanlovingizga muvofiq tekshiruvni avtomatik ravishda ro'yxatdan o'tkazadi.
Aktiv va passiv tekshiruvlar
Passiv tekshiruvlar hech qanday yangi so'rov yubormasdan mavjud trafikni tahlil qiladi. Ulardan javoblarda bevosita ko'rinadigan zaifliklarni aniqlash uchun foydalaning, masalan:
- Yetishmayotgan xavfsizlik sarlavhalari.
- Xato xabarlarida sizib chiqqan server ma'lumotlari.
- Xavfsiz bo'lmagan cookie yoki forma konfiguratsiyalari.
Aktiv tekshiruvlar zaifliklarni sinash uchun qo'shimcha, o'zgartirilgan so'rovlar yuboradi. Ulardan faqat so'rovlar o'zgartirilganda namoyon bo'ladigan muammolarni aniqlash uchun foydalaning, masalan:
- SQL injection.
- Server tomonidagi shablon injeksiyasi (SSTI).
- Buyruq injeksiyasi.
Aloqador sahifalar
Skan davomida tekshiruvlar qachon ishga tushadi
Tekshiruvlar skan davomida turli qamrovlarda ishga tushishi mumkin. Bu sizga ham keng qamrovli konfiguratsiya muammolarini, ham kiritmani qayta ishlash bilan bog'liq nozik zaifliklarni aniqlash imkonini beradi.
| Tekshiruv turi | U qachon ishga tushadi | Uni qachon ishlatish kerak | Foydalanish namunalari |
| Host tekshiruvi | Har bir noyob host uchun bir marta. | Faqat host darajasidagi ma'lumot talab qiladigan tekshiruvlar uchun ishlating. | Keng ma'lum fayllarni (masalan, robots.txt) yoki xavfsizlik headerlarini tekshirish. |
| So'rov tekshiruvi | Har bir so'rov uchun bir marta. | To'liq so'rov yoki javoblarni tahlil qilish yoxud o'zgartirish uchun ishlating. | Oshkor bo'lgan API kalitlarini yoki xavfsiz bo'lmagan redirectlarni aniqlash. |
| Insertion point tekshiruvi (faqat aktiv) | Har bir insertion point uchun bir marta. | So'rovning parametrlariga, headerlariga yoki boshqa o'zgartirilishi mumkin bo'lgan qismlariga payload kiritadigan aktiv tekshiruvlar uchun ishlating. | SQL injection yoki XSS kabi kiritmani qayta ishlash bilan bog'liq zaifliklarni sinash. |
Aloqador sahifalar
Insertion point (kiritish nuqtasi) nima ekanligi va Burp Scanner ularni qanday qayta ishlashi haqida ko'proq bilish uchun Auditing - Insertion points sahifasiga qarang.
Tekshiruvlarda Collaborator'dan foydalanish
Out-of-band o'zaro aloqani sinashni talab qiladigan zaifliklarni aniqlash uchun aktiv maxsus skan tekshiruvlarida Burp Collaborator'dan foydalanishingiz mumkin. Bu sizga out-of-band muammolarni aniqlaydigan tekshiruvlar qurish hamda Burp ularni qanday qayta ishlashi va xabar qilishini belgilash imkonini beradi.
Maxsus skan tekshiruvida Collaborator o'zaro aloqasini yoqish uchun:
- Use Collaborator o'tkazgichini yoqing. Collaborator tabi paydo bo'ladi.
- Collaborator tabida o'zaro aloqa ishlovchingizni (Collaborator o'zaro aloqalarini qayta ishlaydigan skriptni) qo'shing.
Tekshiruvni ishga tushirganingizda Burp avtomatik ravishda quyidagilarni bajaradi:
- Fon rejimida Collaborator'ni so'rab turadi.
- Collaborator o'zaro aloqalari sodir bo'lganda ularni qayta ishlaydi, ya'ni tahlil qilish va yuzaga kelgan muammolar haqida xabar berish uchun ishlovchingizga uzatadi.
Skan tekshiruvi o'chirilmagunicha aktiv bo'lib qoladi, shu sababli Burp skan tugagandan keyin ham kechikkan Collaborator o'zaro aloqalarini aniqlay oladi.
Ushbu tekshiruv namunasi uchun Skan tekshiruvlarida Collaborator'dan foydalanish bo'limiga qarang.
Eslatma
Maxsus skan tekshiruvlaridan Collaborator muammolari haqida xabar berilganda, Burp o'zgartirilgan variantni emas, balki bazaviy so'rovni ko'rsatadi. Buning sababi shundaki, Burp o'zgartirilgan so'rovni qayta tiklash uchun zarur bo'lgan to'liq kontekstni saqlab qolmaydi. Agar kerak bo'lsa, o'zgartirilgan variantni ishlovchingizda dastlabki skan tekshiruvi mantig'idan foydalanib qayta yaratishingiz mumkin.
Maxsus skan tekshiruvining tuzilishi
Har bir maxsus skan tekshiruvi bir xil umumiy andozaga amal qiladi:
Javob mavjudligini tekshirish
Keraksiz qayta ishlash yoki xatolarning oldini olish uchun javob ustida amal bajarishdan avval bo'sh kontentni tekshirishni qo'shing.
Eslatma
Ba'zi skan tekshiruvlariga faqat so'rovning o'zi kerak bo'ladi, masalan so'rov headerlari yoki parametrlarini tahlil qilish uchun. Bunday tekshiruvlar javobni tekshirishni talab qilmaydi.
Passiv tekshiruvlar
Passiv tekshiruvlar odatda bazaviy javobni tahlil qiladi. Burp Scanner odatda ham so'rovni, ham javobni taqdim etadi, biroq ba'zi hollarda javob mavjud bo'lmasligi mumkin, masalan Repeater'dan olingan elementlarni skanerlashda. Bunday vaziyatda tekshiruvingiz toza tarzda ishdan chiqishi kerak:
Aktiv tekshiruvlar
Aktiv tekshiruvlar qo'shimcha so'rovlarni yaratadi va yuboradi. Bunday hollarda yuborilgan so'rovga javob mavjudligini u bilan ishlashdan oldin tekshirishingiz kerak. Masalan:
Tekshiruvlarni bajarish
Tekshiruvni bajarish ikkita asosiy bosqichni o'z ichiga olishi mumkin:
- So'rovni o'zgartiring - Faqat aktiv tekshiruvlar uchun: zaifliklarni sinash maqsadida bazaviy so'rovning o'zgartirilgan variantlarini quring va yuboring.
- Trafikni tekshiring - Barcha tekshiruvlar uchun: xabarlarni tahlil qiling, ularni bir-biri bilan solishtiring yoki zaiflikdan darak beruvchi boshqa xatti-harakat farqlarini qidiring.
Ogohlantirish
Har bir tekshiruv ko'pi bilan ikki daqiqa davomida ishlaydi. Agar kodingiz bundan uzoqroq vaqt olsa, Burp tekshiruvni avtomatik ravishda to'xtatadi. Sekin yoki resurstalab kod umumiy unumdorlikka ta'sir qilishi va skanlar sekinroq bajarilishiga olib kelishi mumkin. Vaqt chegarasidan chiqmaslik va unumdorlikka ta'sirni kamaytirish uchun tekshiruvingizni puxta yozing.
So'rovlarni o'zgartirish (Aktiv tekshiruvlar)
Aktiv tekshiruvlarda siz zaifliklarni sinash uchun bazaviy so'rovning o'zgartirilgan variantlarini yuborasiz. Yondashuv siz so'rov / host darajasida ishlayotganingizga yoki insertion point darajasida ishlayotganingizga bog'liq.
So'rov yoki host tekshiruvlari
So'rovni o'zgartirish va yuborish uchun HttpRequestResponse'dan foydalaning:
Insertion point tekshiruvlari
Har bir insertion point uchun payloadlarni qurish va yuborishda AuditInsertionPoint'dan foydalaning.
Payloadlaringiz faqat qiymatdan iborat bo'lishi kerak, chunki Burp har bir insertion point joylashuvi uchun kontekstga mos kodlashni o'zi qo'llaydi. Har bir payload ByteArray ko'rinishida berilishi shart: Burp oddiy satrlarni emas, xom baytlarni kutadi.
Insertion point tekshiruvlari - bir nechta payload
Har bir insertion point'ga bittadan ortiq payload yuborish uchun ularni sikl orqali aylanib chiqing.
Trafikni tekshirish (Aktiv va passiv tekshiruvlar)
HttpRequestResponse obyektidan foydalanib, mos keluvchi HttpResponse'ga kirish uchun response() metodini chaqirishingiz mumkin. Bu sizga trafikni zaiflik alomatlari uchun tekshirish imkonini beradi.
Payload aks-sadolarini aniqlash
Javobda payload markerlarini qidiring. Bu potentsial aks-sado (reflection) yoki injeksiya nuqtalarini aniqlash uchun foydali.
Aloqador sahifalar
Ushbu usulni to'liq tekshiruv tarkibida ko'rish uchun Bambdas GitHub repozitoriysidagi Detect TRACE method skriptiga qarang.
Javobning muayyan elementlarini tekshirish
Javobning muayyan qismlarini muayyan elementlar bo'yicha tekshiring. Masalan, talab qilinadigan headerlar, cookie'lar yoki metama'lumot qiymatlari mavjudligini va to'g'ri sozlanganini tekshiring.
Aloqador sahifalar
Ushbu usulni to'liq tekshiruv tarkibida ko'rish uchun Bambdas GitHub repozitoriysidagi CORS misconfiguration skriptiga qarang. Bu skriptni Aktiv skan tekshiruvining ishlab chiqilgan namunasi sahifasida ham batafsil tahlil qilganmiz.
Javoblarni solishtirish
Ikkita so'rov yuboring va ularning javoblarini xatti-harakat farqlari bo'yicha solishtiring, masalan status kodlari, kontent yoki hajmlar bo'yicha:
Vaqt farqlarini aniqlash
responseTime() xususiyatidan foydalanib javoblarga ketgan vaqtni solishtiring:
Natijalar haqida xabar berish
Har bir maxsus skan tekshiruvi AuditResult qaytarishi shart, u Burp'ga tekshiruv biror muammo topgan yoki topmaganini bildiradi. Siz quyidagilarni qaytarishingiz kerak:
- Zaiflik topilganda bir yoki bir nechta
AuditIssueobyektini o'z ichiga olganAuditResult. - Hech qanday muammo topilmaganda bo'sh natija.
Audit muammosini yaratish
Tekshiruvingiz zaiflikni aniqlaganda AuditIssue'ni o'rab olgan AuditResult qaytaring. Foydalanuvchilar yuzaga kelgan muammoni All issues panelida (quyi dokdan kirish mumkin) yoki Dashboard'dagi tegishli vazifaning Issues tabida ko'rishlari mumkin.

Har bir AuditIssue quyidagi tuzilishdan foydalanadi:
Eslatma
- Barcha satrli maydonlar HTML'ni o'z ichiga olishi mumkin. Ishonchsiz qiymatlarni har doim avval kodlang.
- Keraksiz maydonlar uchun satrlarda
"", qolgan barcha qiymatlarda esanulluzating. - Har doim
URLkiriting, chunki bu muammo qaysi so'rovga nisbatan xabar qilinishini belgilaydi. Agar u bo'lmasa, muammo natijalarda ko'rinmaydi.
Ushbu namuna yetishmayotgan Content-Security-Policy header haqida xabar beradi:
Audit muammosining tarkibiy qismlari
- Title - Qisqa va aniq muammo nomi.
- Detail - Zaiflikning batafsil tavsifi.
- Remediation - Muammoni bartaraf etishning amaliy qadamlari.
- URL - Muammo aniqlangan URL yoki endpoint. Batafsil ma'lumot uchun URL'ni belgilash bo'limiga qarang.
- Severity - Aynan shu topilma uchun jiddiylik darajasi.
INFORMATION,LOW,MEDIUMyokiHIGHorasidan tanlang. - Confidence - Tekshiruv muammo haqiqiy ekaniga qanchalik ishonchi komilligi.
TENTATIVE,FIRMyokiCERTAINorasidan tanlang. - Issue background - Ushbu turdagi muammo haqida qo'shimcha ma'lumot.
- Remediation background - Bartaraf etish haqida qo'shimcha ma'lumot.
- Overall severity - Ushbu muammo turi uchun odatiy jiddiylik darajasi.
INFORMATION,LOW,MEDIUMyokiHIGHorasidan tanlang. - HTTP messages - Muammoni ko'rsatib beruvchi bir yoki bir nechta
HttpRequestResponseobyekti. Burp ularni Issues ro'yxatidagi Request va Response tablarida ko'rsatadi.
URL'ni belgilash
Muammo qaysi manzilga nisbatan xabar qilinishini bildiruvchi URLni har doim kiritishingiz shart. Muammoni takrorlab ko'rayotgan tester uchun eng foydali URL'ni tanlang. Tekshiruv turingizga qarab quyidagi yondashuvlardan birini qo'llang:
Bazaviy so'rov URL'i
Quyidagi muammolar uchun bazaviy so'rov URL'iga ishora qiling:
- Muammo o'zgartirilmagan javobda ko'rinadi.
- Zaiflik endpointning umumiy xatti-harakatiga ta'sir qiladi.
Saytning ildizi
Host darajasidagi tekshiruvlar uchun sayt yoki xizmatning ildiziga ishora qiling. Bu tekshiruv ostki yo'lga nisbatan ishga tushganda ham xabar berishning izchilligini ta'minlaydi.
O'zgartirilgan so'rov URL'i
Agar o'zgartirilgan so'rov muammoni bevosita namoyish qilsa, topilmani uni keltirib chiqargan aniq payload bilan bog'lang.
Bir nechta muammo haqida xabar berish
Ba'zan bitta tekshiruv bittadan ortiq topilmani aniqlaydi. Bunday vaziyatda bir nechta AuditIssue obyektini qaytarishingiz mumkin. Burp har bir muammo haqida alohida xabar beradi:
Ushbu namuna yetishmayotgan ikkita xavfsizlik headeri haqida xabar beradi:
Bo'sh natija qaytarish
Tekshiruvingiz hech qanday muammo aniqlamasa, quyidagidan foydalanib bo'sh natija qaytaring:
Collaborator yoqilgan tekshiruvlar
Ba'zi zaifliklarni faqat out-of-band o'zaro aloqani sinash orqali tasdiqlash mumkin.
Ushbu namuna email-splitting muammosini aniqlash uchun aktiv maxsus skan tekshiruvida Burp Collaborator'dan qanday foydalanishni ko'rsatadi. Tekshiruv Collaborator payloadlarini generatsiya qiladi, ularni so'rovlarda yuboradi va Burp yuzaga keladigan o'zaro aloqalarni qanday qayta ishlashi kerakligini belgilaydi.
Eslatma
Skan tekshiruvi loyihangizda mavjud bo'lgunicha Burp Collaborator'ni so'rab turadi, shu sababli kechikkan o'zaro aloqalar skan tugagandan keyin ham aniqlanadi.
Code tabi
Collaborator tabi
Collaborator tabiga kirish uchun Use Collaborator o'tkazgichini yoqing.