URL validatsiyasini chetlab o'tish cheat-sheet bilan tanishtirish

URL validatsiyasini chetlab o'tish (URL validation bypass) juda ko'p zaifliklarning asosiy sababi hisoblanadi — jumladan SSRF, CORS noto'g'ri sozlamalari va open redirection (ochiq qayta yo'naltirish) ning ko'plab holatlari. Bu usullar noaniq (ambiguous) URL'lardan foydalanib, URL'ni tahlil qilishdagi (parsing) tafovutlarni yuzaga keltiradi va validatsiyani chetlab o'tadi. Biroq bu texnikalarning aksariyati yetarli darajada hujjatlashtirilmagan va shu sababli e'tibordan chetda qolgan.
Buni hal qilish uchun biz barcha ma'lum payload'larni bir joyga jamlaydigan cheat sheet yaratmoqchi bo'ldik — bu sizni Internet bo'ylab ma'lumot qidirish va yig'ishga ketadigan vaqt va kuchdan xalos qiladi. Bugun biz aynan shu muammoni hal qilish uchun mo'ljallangan yangi vositani taqdim etishdan mamnunmiz: URL Validation Bypass Cheat Sheet.
Umid qilamizki, u sizga foydali bo'ladi! Bu — barcha ma'lum texnikalar muntazam yangilanib turadigan omborxona bo'lib, ehtiyojlaringizga mos keladigan so'zlar ro'yxatini (wordlist) tezda yaratish imkonini beradi.
Ishni qanday boshlash kerak
URL Validation Bypass Cheat Sheet — bu sizning kontekstingizga qarab sozlamalarini avtomatik moslashtiradigan mutlaqo yangi interaktiv veb-ilova. Hozircha uchta kontekst mavjud:
- To'liq malakali mutlaq URL (fully qualified absolute URL) — masalan, URL so'rovning query parametrida ishlatilgan vaziyatlar uchun foydali. Barcha payload'lar Burp Suite Intruder bilan bemalol ishlashi uchun mo'ljallangan, shuning uchun to'g'ri kodlash (encoding) haqida qayg'urishingiz shart emas.
- Faqat hostname — domenni to'g'ridan-to'g'ri kiritish, masalan Host header qiymatidagi kabi.
- CORS Origin — hostname brauzerning haqiqiy origin header'ida ishlatilishi ko'zda tutilgan holat.
Dastlab cheat sheet olti xil turdagi payload wordlist'larini taqdim etadi. Kengaytirilgan sozlamalar (advanced settings) muayyan bitta wordlist'ni tanlash yoki ularning barchasini bir vaqtning o'zida ishlatish imkonini beradi. Quyida eng muhimlarining qisqacha sharhi keltirilgan:
- Domain Allow List Bypass: domenni chalkashtirish (domain confusion) hujumlari uchun mo'ljallangan. Ruxsat etilgan va hujumchi domenlarini mos ravishda kiritish orqali test qilinadigan domenlarni o'zingizga moslashtirishingiz mumkin.
- Fake Relative URLs: bunga brauzer nuqtai nazaridan to'g'ri hisoblanadigan, ammo mijoz tomonidagi (client-side) kod tomonidan noto'g'ri validatsiya qilinishi mumkin bo'lgan mutlaq URL'lar kiradi.
- Loopback Address: bu wordlist IPv4 va IPv6 manzillarining turli ko'rinishlarini hamda ularning normallashtirilgan shakllarini o'z ichiga oladi.
Kodlashlar
URL Validation Cheat Sheet satrlarni kodlashning bir necha turini qo'llab-quvvatlaydi:
- Intruder's Percent Encoding: bu variant payload satridagi ayrim belgilarni o'sha belgining UTF-8 kodlashini ifodalovchi bittadan to'rttagacha escape ketma-ketligi bilan almashtirib kodlaydi. U Burp Suite Intruder'ning standart belgilarini istisno qiladi va sukut bo'yicha yoqilgan, shu sababli Burp Suite bilan oson moslashadi.
- Everything: bu variant alfanumerik belgilardan tashqari barcha belgilarni percent-encoding qiladi.
- Special Chars varianti quyidagi belgilardan tashqari hamma narsani kodlaydi: ["!","$","'","\"","(",")","*",",","-",".","/","\\",":",";","[","]","^","_","{","}","|","~"]
- Unicode Escape: bu variant payload satrini olti belgidan iborat \uXXXX escape ketma-ketligi ko'rinishida ifodalaydi; quyidagi belgilar ['"','\\','\b','\f','\n','\r','\t'] hamda [0x0020 - 0x007f] oralig'idagi belgilar bundan mustasno.
Eslatma: kodlanmagan satrlardan ehtiyotkorlik bilan foydalanish kerak, chunki Unicode qiymatlari to'g'ri uzatilmasligi mumkin.
Kengaytirilgan sozlamalar
IPv4 manzillarining ifodalanishi
Veb-ilovalar bilan ishlaganda IP manzillarni turli formatlarga kodlash testlash, validatsiya va xavfsizlik maqsadlari uchun hal qiluvchi ahamiyatga ega bo'lishi mumkin. Cheat sheet hujumchining IP manzili sifatida standart IPv4 manzilini qabul qiladi va kodlangan ko'rinishlar massivini qaytaradi — bunga sakkizlik (octal), o'n oltilik (hexadecimal), ikkilik (binary) va o'nlik (decimal) formatlar kiradi. Shuningdek, u IPv4 manzilni IPv6-mapped manzil formatiga ham o'giradi.
Kodlash tafsilotlari:
- Octal: IP manzilning har bir segmenti sakkizlik songa o'giriladi va 4 xonagacha to'ldiriladi. Masalan, loopback IP manzili 127.0.0.1 quyidagicha ifodalanadi: 0177.0000.0000.0001
- Hexadecimal: har bir segment o'n oltilik songa o'giriladi, oldiga 0x prefiksi qo'shiladi va 2 xonagacha to'ldiriladi. Xuddi shu loopback IP manzili quyidagicha bo'ladi: 0x7F.0x00.0x00.0x01
- Binary: har bir segment 8-bitli ikkilik songa o'giriladi. Yuqoridagi IP manzil quyidagicha bo'ladi: 01111111.00000000.00000000.00000001
- Partial Decimal: IP manzilning uchinchi va to'rtinchi qismlarini bitta o'nlik songa birlashtiradi: 127.0.1
- DWORD Notation: butun IP manzil ishorasiz 32-bitli butun songa o'giriladi: 2130706433
- DWORD Notation with overflow: oldingi o'girishdan olingan natijaga 2^32 * 10 qo'shiladi = 45080379393
- IPv6 Mapped Address: IPv4 segmentlarini o'n oltilik songa o'giradi va ularni standart IPv6-mapped manzil ko'rinishida formatlaydi. Loopback IP manzilini [::FFFF:7F00:0001] yoki ::FFFF:127.0.0.1 ko'rinishida ifodalash mumkin.
Normallashtirish
Wordlist'lar Unicode satrlarini normallashtirishdan foydalanadigan ko'plab payload'larni o'z ichiga oladi. Masalan, quyidagi belgilarni normallashtirish natijasida bo'sh satr hosil bo'ladi:
- ZeroWidthSpace, NegativeVeryThinSpace, NegativeThinSpace, NegativeMediumSpace, NegativeThickSpace
- Word Joiner (U+2060) (⁠)
- Soft Hyphen Character U+00AD (­)
Bu texnikalardan Web Application Firewall'larni (WAF) chetlab o'tish uchun foydalanish mumkin.
Ruxsat etilgan domenni chetlab o'tishning yana bir misoli — validatsiya uchun ishlatiladigan muntazam ifoda (regular expression) ko'p qatorli satrlarga ruxsat bergan holatda yuzaga keladi. Masalan, agar ^allowed_domain$ regex'i ishlatilsa, quyidagilar validatsiyani chetlab o'tishi mumkin:
- attacker_domain(U+2028)allowed_domain (Line Separator)
- attacker_domain(U+2029)allowed_domain (Paragraph Separator)
Minnatdorchilik
Bu cheat sheet o'z tadqiqotlari bilan bo'lishadigan veb-xavfsizlik hamjamiyatisiz yuzaga kelmasdi. Katta rahmat: Gareth Heyes, James Kettle, Jann Horn, Liv Matan, Takeshi Terada, Orange Tsai, Nicolas Grégoire.
Biz barcha payload'larni GitHub akkauntimizda e'lon qildik: https://github.com/PortSwigger/url-cheatsheet-data. Shu sababli siz yangi issue yaratish yoki JSON fayllarni yangilab pull request yuborish orqali ushbu cheat sheet'ga o'z hissangizni qo'shishingiz mumkin.
Yangi URL validation bypass cheat sheet yordamida qiladigan qiziqarli kashfiyotlaringizni intiqlik bilan kutamiz!