logo
ProfessionalCommunity Edition

Burp Suite'da GraphQL bilan ishlash

Oxirgi yangilanish: 23-iyul, 2026O'qish vaqti: 2 daqiqa

GraphQL - bu mijozlar va serverlar o'rtasidagi samarali aloqani yengillashtirish uchun mo'ljallangan API so'rov tili. U foydalanuvchiga javobda aynan qanday ma'lumot kerakligini belgilash imkonini beradi va bu REST API'larda ba'zan uchraydigan katta hajmli javob obyektlari hamda ko'p sonli chaqiruvlardan qochishga yordam beradi.

GraphQL xizmatlari odatda autentifikatsiya va ma'lumot olish mexanizmlarida ishlatiladi. Ya'ni, agar hujumchi zararli so'rovlarni muvaffaqiyatli yubora olsa, u zaif ma'lumotlarga kirishi yoki hatto cross-site request forgery (CSRF) kabi yuqoriroq jiddiylikdagi eksploytlarni bajarishi mumkin.

Burp Suite GraphQL so'rovlarini tuzishni va GraphQL API sxemasi haqida ko'proq bilib olishni osonlashtiradi.

Batafsil o'qing

GraphQL nima ekanligi va qanday ishlashi haqida to'liq boshlang'ich ma'lumot uchun Web Security Academy: GraphQL nima? bo'limiga qarang.

GraphQL so'rovlarini ko'rish va o'zgartirish

Agar Burp GraphQL so'rovini aniqlasa, u avtomatik ravishda so'rovning xabar muharririga GraphQL yorlig'ini qo'shadi. Bu yorliq GraphQL so'rovini (query) so'rovning qolgan qismidan ajratadi va uni so'rov tuzilmasini (Query panelida ko'rsatiladi) hamda unga bog'liq o'zgaruvchilarni (Variables panelida ko'rsatiladi) ko'rish va tahrirlashni osonlashtiradigan tarzda formatlaydi.

Burp GraphQL so'rovini aniqlaganda GraphQL yorlig'i paydo bo'ladi. Bu yorliq GraphQL so'rovini ikkita alohida panelga ajratadi: query va variables.

Introspection yordamida GraphQL API sxemalariga kirish

Introspection so'rovlari GraphQL sxemasi haqida ma'lumot, masalan, API qo'llab-quvvatlaydigan so'rovlar (queries) va mutatsiyalarni qaytarishi mumkin. Bu ma'lumot API'ga qanday hujum qilishni rejalashtirishda juda foydali.

Burp siz maqsadli ilovaga yuborishingiz uchun introspection so'rovlarini generatsiya qila oladi. Javobda qaytarilgan ma'lumotlardan maqsadli ilovangizning GraphQL API'sini zaifliklarga qanday sinash kerakligini aniqlashda foydalanish mumkin.

Introspection'ni ishga tushirish uchun:

  1. Nishon ilovani ko'rib chiqing va GraphQL endpoint'iga yuborilgan so'rovlarni izlang. GraphQL xizmatlari ko'pincha o'xshash endpoint qo'shimchalaridan foydalanadi. Quyidagi joylarga yuborilgan so'rovlarni izlang: Bu endpoint'lar qo'shimcha sifatida versiya raqamini ham o'z ichiga olishi mumkin, masalan, /graphql/v1.
    • /graphql
    • /api
    • /api/graphql
    • /graphql/api
    • /graphql/graphql
  2. GraphQL so'rovini o'ng tugma bilan bosing, so'ngra Send to Repeater ni tanlang.
  3. Repeater'da xabar muharririning Request paneli ichida istalgan joyni o'ng tugma bilan bosing, so'ngra so'rov tanasiga introspection so'rovini kiritish uchun GraphQL > Set introspection query ni tanlang.
  4. Send tugmasini bosing. Agar introspection yoqilgan bo'lsa, server sizning introspection so'rovingizga javoban GraphQL API'ning to'liq sxemasini qaytarishi kerak. Bu introspection so'rovi ko'pchilik GraphQL serverlar bilan ishlaydi. Biroq, agar siz eskiroq GraphQL server bilan ishlayotgan bo'lsangiz, u muvaffaqiyatsiz tugashi mumkin. Agar shunday bo'lsa, xabar muharririning Request paneli ichida istalgan joyni o'ng tugma bilan bosing, so'ngra GraphQL > Set legacy introspection query ni tanlang va qaytadan urinib ko'ring.
  5. Xabar muharririning Response paneli ichida istalgan joyni o'ng tugma bilan bosing, so'ngra GraphQL > Save GraphQL queries to site map ni tanlang. Burp introspection davomida topgan har bir mavjud so'rov sayt xaritasida tugun sifatida saqlanadi. Siz bu so'rovlarni ko'rib chiqib, chuqurroq tekshirmoqchi bo'lganini topishingiz va hujumni boshlash uchun ularni Intruder yoki Repeater'ga yuborishingiz mumkin.

Ushbu maqola foydali bo'ldimi?