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.

BAC - Broken Access Control

  • Konuyu Başlatan Konuyu Başlatan 1atakan1
  • Başlangıç tarihi Başlangıç tarihi

1atakan1

Moderator
Aday
Katılım
2 Ocak 2026
Mesajlar
19
Tepkime puanı
22
Puan
3

BAC - Broken Access Control​

Sunucu tarafında yeterli yetkilendirme/erişim kontrolü yapılmaması sonucu yetkisiz erişim veya işlem yapılabilmesine sebep olan güvenlik açığı sınıfı.

Metodoloji​

Kimin hangi kaynağa veya işleve erişebileceğini belirleyen sunucu tarafı kontrollerinin eksik veya hatalı uygulanması. Client-side sadece görünürlük engellemeleri güvenlik sağlamaz — tüm hassas kontroller sunucuda olmalıdır.
HTTP metodu, parametre veya header değişikliği ile yetki atlatma denenebilir → GET, POST, PUT, DELETE vb. Ayrıca role/owner kontrollerinin nesne seviyesinde (object-level) doğrulandığından emin olun.
Örnek akış: kullanıcı hesabı ile giriş yapılır → belirli bir kaynağa erişim istenir → sunucu owner/role kontrolü yapıyor mu gözlemlenir.

Örnekler​

Admin-only endpoint'ine normal kullanıcı token'ı ile istek gönderildiğinde işlem gerçekleşiyor (sunucu role check yapmıyor).
/invoices/1000/download gibi doğrudan dosya path'leri kimlik doğrulama veya owner kontrolü olmadan sunuluyor.
UI'da gizlenen admin butonu client-side ile etkinleştirilebiliyor ve sunucu bunu kontrol etmiyor.

Nerede Bulunur?​

URL / Path / Query parametrelerinde → /orders/{id}, ?user_id=
AJAX / API endpointlerinde → /api/v1/admin/*, /api/v1/invoices/*
Dosya depolama / doğrudan erişim yollarında → /uploads/... veya S3 benzeri path'lerde
Client-side feature flags veya role parametrelerinde → is_admin, debug, role gibi parametreler

Test Adımları​

Keşfet: Proxy ve tarayıcı devtools ile tüm endpoint'leri ve istekleri topla.
Roller/hesaplar: En az iki hesap oluştur (normal user + ikinci user). Mümkünse ayrı privilege rollerini de test et.
Parametre, metod ve header manipülasyonu: ID, owner, role parametrelerini değiştir; GET↔POST gibi metod değişiklikleri dene.
Nesne seviyesinde doğrulama: Her obje isteğinde server-side owner/role kontrolü yapılıyor mu kontrol et.


Metot Manipülasyonu (Örnek Senaryo)​

Senaryo:Kritik bir silme işlemi sadece POST ile yapılmaya izin verirken, DELETE metodunu kontrol etmiyor.
// Başarısız İstek (Yetki Hatası)
GET /admin/delete?user=1 (403 Forbidden)

// Başarılı PoC (Metot Atlatma)
DELETE /admin/delete?user=1
Sunucu tarafı yetki kontrolü (auth/role check) eksikse, metod değişikliği ile kısıtlama atlanır.
 
Geri
Üst