Guruhlangan HTTP so'rovlarini yuborish
Burp Repeater'ning Group send options imkoniyati guruhlangan HTTP so'rovlarini bir marta bosish bilan yuborish imkonini beradi. So'rovlarni parallel (barchasini bir vaqtda) yoki ketma-ket (birin-ketin) yuborishingiz mumkin.
So'rovlar guruhini yuborish uchun:
- Repeater yorliqlari guruhini yarating va unga kerakli yorliqlarni qo'shing. Batafsil ma'lumot uchun Yorliq guruhlarini boshqarish sahifasiga qarang. Muqobil variant sifatida guruh yaratib, uning ichida yorliqlar nusxasini olishingiz mumkin. Bu race condition zaifliklarini tekshirayotgan bo'lsangiz foydali, chunki bir xil so'rovlarni yaratish jarayonini ancha samarali qiladi.
- Guruhdagi yorliqlardan birini tanlang.
- Send tugmasi yonidagi ochiluvchi menyu strelkasini bosing va mavjud variantlardan birini tanlang:
- Send group in sequence (single connection)
- Send group in sequence (separate connections)
- Send group in parallel
- Send group tugmasini bosing. Repeater guruhlangan yorliqlardagi barcha so'rovlarni yuboradi.
Eslatma
Professional Yorliqlarni qo'lda yaratib guruhlamasdan turib bir xil so'rovlarni tez yuborish uchun maxsus amallardan (custom actions) foydalanishingiz mumkin. Masalan, Trigger race conditions maxsus amali bir marta bosish bilan parallel so'rovlar yuboradi. Maxsus amallardan qanday foydalanish haqida batafsil ma'lumot uchun Maxsus amallar sahifasiga qarang.
So'rovlarni ketma-ket yuborish
So'rovlarni ketma-ket yuborishda bitta ulanishdan yoki bir nechta ulanishdan foydalanishingiz mumkin.
Yuborish ketma-ketligini bekor qilish uchun so'rovlar yuborilayotgan paytda guruh yorliqlaridan birida Cancel tugmasini bosing.
Bitta ulanish orqali yuborish
Agar Send group in sequence (single connection) ni tanlasangiz, Repeater nishonga ulanish o'rnatadi, guruhdagi barcha yorliqlardan so'rovlarni yuboradi va so'ngra ulanishni yopadi.
So'rovlarni bitta ulanish orqali yuborish mijoz tomonidagi desync vektorlarini tekshirish imkonini beradi. Shuningdek, u TCP ulanishlarini o'rnatishda yuzaga keladigan "jitter" ni kamaytiradi. Bu vaqt farqlari juda kichik bo'lgan javoblarni solishtirish imkoniga tayanadigan, vaqtga asoslangan hujumlar uchun foydali.
Aloqador sahifalar
Mijoz tomonidagi desync vektorlarini qanday tekshirish haqida batafsil ma'lumot, shuningdek mashq qilishingiz uchun ataylab zaif qilib yaratilgan laboratoriyalar bilan tanishish uchun Browser-powered request smuggling Web Security Academy mavzusiga qarang.
Alohida ulanishlar orqali yuborish
Agar Send group in sequence (separate connections) ni tanlasangiz, Repeater nishonga ulanish o'rnatadi, birinchi yorliqdagi so'rovni yuboradi va so'ngra ulanishni yopadi. U bu jarayonni guruhda joylashgan tartib bo'yicha barcha qolgan yorliqlar uchun takrorlaydi.
So'rovlarni alohida ulanishlar orqali yuborish ko'p bosqichli jarayonni talab qiladigan zaifliklarni tekshirishni osonlashtiradi.
Ketma-ket yuborish uchun dastlabki shartlar
So'rovlar ketma-ketligini yuborish uchun guruh quyidagi mezonlarga javob berishi kerak:
- Guruhda hech qanday WebSocket xabari yorlig'i bo'lmasligi kerak.
- Guruhda hech qanday bo'sh yorliq bo'lmasligi kerak.
Bitta ulanish orqali yuborish uchun qo'shimcha mezonlar ham mavjud:
- Barcha yorliqlar bir xil nishonga ega bo'lishi kerak.
- Barcha yorliqlar bir xil HTTP versiyasidan foydalanishi kerak (ya'ni ularning hammasi HTTP/1 yoki hammasi HTTP/2 dan foydalanishi lozim).
So'rovlarni parallel yuborish
Agar Send group in parallel ni tanlasangiz, Repeater guruhdagi barcha yorliqlardan so'rovlarni bir vaqtda yuboradi. Bu race condition holatlarini aniqlash va ulardan foydalanish usuli sifatida qulay.
Qo'shimcha ma'lumot
Race condition holatlarini tekshirish haqida batafsil ma'lumot uchun Race conditions Web Security Academy mavzusiga qarang.
Repeater parallel so'rovlarni sinxronlaydi va ularning barchasi to'liq holda bir vaqtda yetib borishini ta'minlaydi. U ishlatilayotgan HTTP versiyasiga qarab turli sinxronlash usullarini qo'llaydi:
- HTTP/1 orqali yuborishda Repeater oxirgi bayt sinxronizatsiyasidan foydalanadi. Bunda bir nechta so'rov parallel ulanishlar orqali yuboriladi, lekin guruhdagi har bir so'rovning oxirgi bayti ushlab turiladi. Qisqa kechikishdan so'ng bu oxirgi baytlar har bir ulanish orqali bir vaqtda yuboriladi.
- HTTP/2+ orqali yuborishda Repeater guruhni bitta paket hujumi (single packet attack) yordamida yuboradi. Bunda bir nechta so'rov bitta TCP paketi orqali yuboriladi.
Parallel so'rovga kelgan javobni o'z ichiga olgan yorliqni tanlaganingizda, pastki o'ng burchakdagi ko'rsatkich shu javob guruh ichida qaysi tartibda qabul qilinganini ko'rsatadi (masalan, 1/3, 2/3).
Eslatma
Makro so'rovlarni parallel yubora olmaysiz. Bu makroslarning so'rovlar sinxronizatsiyasiga xalaqit berishining oldini olish uchun qilingan.
Parallel yuborish uchun dastlabki shartlar
So'rovlar guruhini parallel yuborish uchun guruh quyidagi mezonlarga javob berishi kerak:
- Guruhdagi barcha so'rovlar bir xil host, port va transport qatlami protokollaridan foydalanishi kerak.
- Loyiha uchun HTTP/1 keep-alive yoqilgan bo'lmasligi kerak.