Neler yeni
Bughane Academy

Bughane Academy, bug bounty, web güvenliği ve sızma testi alanında kendini geliştirmek isteyenler için kurulmuş Türkçe odaklı bir topluluktur.

Burada; gerçek güvenlik açıkları, recon ve exploit teknikleri, payload & bypass yöntemleri, araçlar, scriptler ve write-up’lar topluluk tarafından paylaşılır ve tartışılır.

Birlikte öğren, birlikte üret, birlikte güçlen.

[Metodoloji] GraphQL Endpoint'lerinde Yetkilendirme ve Mantık Hataları

  • Konuyu Başlatan Konuyu Başlatan yasirsec
  • Başlangıç tarihi Başlangıç tarihi

yasirsec

Moderator
Gözlemci
Katılım
2 Ocak 2026
Mesajlar
2
Tepkime puanı
7
Puan
3
Selamlar Bughane Academy üyeleri,

Bugün, modern web uygulamalarının vazgeçilmezi olan GraphQL yapılarında en sık karşılaşılan yetkilendirme (Authorization) sorunlarını ve bu hataları nasıl tespit edebileceğimizi bir metodoloji üzerinden anlatacağım. Hedef spesifik bir site değil, genel mantığı anlamaktır.

1. Keşif ve Giriş Noktası​

GraphQL yapıları genellikle /graphql, /api/graphql veya /v1/graphql gibi yollarda bulunur. İlk yapılması gereken, sisteme herhangi bir oturum açmadan (unauthenticated) erişim sağlanıp sağlanmadığını kontrol etmektir.

Bu aşamada keşif sürecini hızlandırmak için graphrecon gibi araçlarla otomatik tarama yapılabilir. Graphrecon; olası GraphQL endpoint’lerini tespit etme, şema keşfi (introspection), mevcut query/mutation’ları analiz etme ve yetkilendirme kontrolleri açısından hızlı bir ön keşif sağlar.

2. Unauthenticated Veri Sızıntısı (Hassas Dosya Erişimi)

Sistemde oturum açmamış bir kullanıcının, normalde "Public" olsa bile derinlemesine erişilmemesi gereken verileri çekip çekemediğini test ediyoruz. Özellikle repository veya dosya sistemi sorguları bu noktada altın değerindedir.

Örnek Sorgu:
Kod:
POST /api/graphql
Content-Type: application/json

{
  "query": "{ projects(first: 5) { nodes { fullPath repository { tree { blobs { nodes { name path rawTextBlob } } } } } } }"
}

Kritik Nokta: Eğer cevapta rawTextBlob gibi alanlar dolu dönüyorsa, projenin içindeki .env, config.php veya id_rsa gibi hassas dosyaların içeriğini direkt dökebilirsiniz.

3. İleri Seviye: Yetki Aşımı ve IDOR (Oturum Açarak)​

Asıl kritik "bug"lar, sisteme düşük yetkili bir kullanıcıyla giriş yapıldığında ortaya çıkan Broken Access Control hatalarıdır.

İzlenecek Adımlar:

  1. Sistemde ücretsiz veya düşük yetkili bir hesap oluşturun ve oturum çerezini (session token) kopyalayın.
  2. Bu oturum bilgisiyle, normalde yetkiniz olmayan admin seviyesindeki sorguları (örn: users, adminSettings, ldapAdminRoleLinks) tekrar çalıştırın.
  3. Eğer kendi oturumunuzla başkasına ait gizli verilere, özel projelere veya yönetici rollerine erişebiliyorsanız, bu yüksek ödüllü bir IDOR açığıdır.

Sonuç​

Büyük platformlar genellikle nesne seviyesinde yetkilendirme (Object-level authorization) yaparak bu tür sızıntıları engellemeye çalışır. Ancak şemaların karmaşıklığı nedeniyle, bir developer'ın bir alanı (field) yetkilendirmeyi unutması tüm sistemin sızdırılmasına yol açabilir.

İyi avlar dilerim!
 
Son düzenleme:
Geri
Üst