1. Introduction

OWASP Top 10 2025 listesi, uygulama güvenliğinde kod seviyesindeki hatalardan ziyade sistemin yapısal ve mimari tasarımındaki eksikliklere doğru bir kayma olduğunu göstermektedir. Odada incelenen dört ana kategori (AS02, AS03, AS04, AS06), uygulamaların tasarım aşamasında yapılan mantıksal hataların ve yanlış yapılandırmaların ciddi ihlallere nasıl yol açabileceğini ortaya koymaktadır.

Kritik Çıkarımlar:

  • Sistem Mimarisi Önceliği: Güvenlik, geliştirme sürecinin sonuna eklenen bir katman değil, temel bir gereksinim olarak ele alınmalıdır.
  • Tedarik Zinciri Riski: Modern uygulamaların üçüncü taraf kütüphanelere bağımlılığı, doğrulanmamış güncellemeler yoluyla büyük ölçekli riskler (SolarWinds örneği gibi) oluşturmaktadır.
  • Hata Ayıklama ve İpucu İfşası: Ayrıntılı hata mesajları (verbose errors) ve sistemlerin varsayılan güvenli olmayan ayarları, saldırganlar için kritik bilgi toplama noktalarıdır.
  • API Güvenliği: API uç noktalarının "yalnızca belirli cihazlar (örneğin mobil) tarafından erişileceği" varsayımı, kimlik doğrulama eksiklikleriyle birleştiğinde veri sızıntılarına neden olmaktadır.
None

2. AS02: Güvenlik Yanlış Yapılandırması (Security Misconfiguration)

Bu kategori, sistemlerin, sunucuların veya uygulamaların güvenli olmayan varsayılan ayarlarla yayına alınması veya hizmetlerin gereksiz yere dışarıya açılması durumlarını kapsar. Önceki listelerde 5. sırada yer alırken, 2025 listesinde daha üst sıralara yükselmiştir.

  • Temel Riskler: Varsayılan kimlik bilgileri, zayıf parolalar, gereksiz servislerin açık bırakılması ve yanlış yapılandırılmış bulut depolama alanları (S3 bucket'ları, Azure Blobs, GCP).
  • Ayrıntılı Hata Mesajları (Verbose Errors): Uygulamanın hata durumunda kullanıcıya sistem detaylarını (stack trace, veritabanı hataları vb.) göstermesi, saldırganların sistem mimarisini haritalandırmasına olanak tanır.
  • Uygulamalı Örnek: Bir kullanıcı yönetim API'sinde, geçersiz bir kullanıcı kimliği girildiğinde sistemin sadece "bulunamadı" demek yerine, veritabanı formatını ve kod akışını ifşa eden ayrıntılı hata mesajları döndürmesi bir yanlış yapılandırma örneğidir.

Navigate to 10.82.154.75:5002. It appears that the developers left too many traces in their User Management APIs.

What's the flag? Answer: THM{V3RB0S3_3RR0R_L34K}

Uygulamayı açtığımızda User ID bilgisinin sayısal olması gerektiği ifade ediliyor. Alfabetik herhangi bir değer girdiğimizde flag elde edilmiş olur.

None
None

3. AS03: Yazılım Tedarik Zinciri Hatası (Software Supply Chain Failure)

2025 listesinin en dikkat çekici maddelerinden biri olan bu kategori, katılımcıların %50'si tarafından 1 numaralı risk olarak derecelendirilmiştir. Uygulamaların güvendiği bileşenlerin, kütüphanelerin veya hizmetlerin bütünlüğünün bozulmasıyla ilgilidir.

  • Risk Kaynağı: Üçüncü taraf kütüphanelerin doğrulanmadan otomatik olarak güncellenmesi veya güvenilmeyen kaynaklardan paket indirilmesi (pip, npm vb.).
  • SolarWinds Örneği (2021): Bu olay, güvenilir bir güncelleme mekanizmasına kötü amaçlı kod enjekte edilmesinin binlerce kuruluşu nasıl etkileyebileceğini gösteren en belirgin örnektir.
  • Önleyici Tedbirler: Üçüncü taraf bileşenlerin imzalanması, MD5/SHA gibi özetleme (hashing) yöntemleriyle doğrulanması ve güncellemelerin manuel kontrolden geçirilmesi kritiktir.
  • Teknik İnceleme: Bazı uygulamalarda, JSON verisi işleyen uç noktalara "debug" parametresi gibi gizli anahtarların gönderilmesi, sistemin dahili işleyişini veya gizli bayrakları (flag) ortaya çıkarabilmektedir.

Navigate to 10.82.154.75:5003. The code is outdated and imports an old lib/vulnerable_utils.py component. Can you debug it?

What's the flag? Answer: THM{SUPPLY_CH41N_VULN3R4B1L1TY}

http://10.82.154.75:5003/api/process uygulamasını açıyoruz. Sayfanın üzerindeyken Sağ tık → Inspect → Network sekmesinde Reload yaparak paketleri görüyoruz. GET metoduyla yapılmış olan http://10.82.154.75:5003/api/process paketinde şu değişikleri yapıyoruz:

GET metodunu POST metoduyla değiştir. Content-Type application/json değerini ekle. Payload bölümüne {"data":"debug"} ekle. Send ile paketi tekrar gönder. Response sekmesinde flag elde ediyoruz.

None

4. AS04: Kriptografik Hatalar (Cryptographic Failure)

Kriptografik hatalar, şifrelemenin hiç kullanılmaması veya yanlış/zayıf algoritmalarla uygulanması durumunda ortaya çıkar. Modern çerçevelerin (frameworks) güvenli şifreleme yöntemlerini yerleşik olarak sunması nedeniyle bu kategori listede iki basamak gerilemiştir.

Vaka Analizi: Bir belge görüntüleme sisteminde AES-128-ECB modu kullanılması ciddi bir tasarım kusurudur. ECB modu, aynı veri bloklarını aynı şekilde şifrelediği için desen analizine (pattern analysis) açıktır ve gizli anahtarın ele geçirilmesi durumunda tüm verinin deşifre edilmesini kolaylaştırır.

Navigate to 10.82.154.75:5004. Can you find the key to decrypt the file?

What's the flag? Answer: THM{CRYPTO_FAILURE_H4RDCOD3D_K3Y}

http://10.82.154.75:5004 uygulamasını açıyoruz. Sayfanın üzerindeyken Sağ tık → Inspect → Debugger sekmesinde static/js içeriğini görüntülüyoruz. Configuration bölümünde secret key elde ediyoruz.

const SECRET_KEY = "my-secret-key-16";

None

Şifrelenmiş dökümanı Cyberchef e input olarak yapıştırıyoruz. From Base 64 ve AES Decrypt işlemleriyle flag elde ediyoruz.

Key: my-secret-key-16 Mode: ECB Input: Raw

None

5. AS06: Güvensiz Tasarım (Insecure Design)

Bu kategori, kodlamaya başlanmadan önce tasarım aşamasında yapılan mantık hatalarını temsil eder. Tehdit modellemesinin eksikliği veya yanlış varsayımlar üzerine kurulu mimariler bu sınıfa girer.

  • Yanlış Varsayımlar: "Uygulamaya yalnızca mobil cihazlar üzerinden erişilecek" veya "kullanıcılar API uç noktalarını asla tahmin edemez" gibi varsayımlar güvenliği tehlikeye atar.
  • API Tahminleme ve Fuzzing: Saldırganlar, masaüstü araçlarını kullanarak API uç noktalarını (örneğin /api/users veya /api/messages/admin) tahmin edebilirler.
  • Erişim Kontrolü Eksikliği: Tasarım, arka uç API'sinin doğrudan sorgulanabileceğini hesaba katmazsa, kimlik doğrulaması olmayan bir saldırgan gizli mesajlara veya yönetici verilerine erişebilir.
  • Uygulamalı Kanıt: Bir mesajlaşma uygulamasında, masaüstünden erişim engellenmiş gibi görünse de, arka plandaki /api/messages/[kullanıcı] uç noktasının herhangi bir kimlik doğrulama gerektirmeden veri döndürmesi, temel bir tasarım hatasıdır.

Navigate to 10.82.154.75:5005. Have they assumed that only mobile devices can access it?

What's the flag? Answer: THM{1NS3CUR3_D35IGN_4SSUMPT10N}

http://10.82.154.75:5005/api/messages/admin sayfasını açıyoruz ve flag elde ediyoruz.

None

6. Sonuç ve Öneriler

OWASP Top 10 2025 incelemesi, uygulama güvenliğinin bütünsel bir yaklaşım gerektirdiğini kanıtlamaktadır. Güvensiz tasarım ve yanlış yapılandırmalar, en güçlü şifreleme algoritmalarını bile etkisiz kılabilir.

Güvenlik Temellerini Güçlendirmek İçin Atılması Gereken Adımlar:

  1. Tehdit Modellemesi: Geliştirme sürecinin en başında olası saldırı senaryolarını tanımlayın.
  2. En Az Yetki Prensibi: Servisleri ve kullanıcıları yalnızca ihtiyaç duydukları kaynaklarla sınırlandırın.
  3. Güvenli Varsayılanlar: Tüm sistemleri "varsayılan olarak kapalı/güvenli" ayarlarıyla yapılandırın.
  4. Bileşen Takibi: Yazılım tedarik zincirindeki tüm üçüncü taraf kütüphaneleri envanterde tutun ve sürekli olarak güvenlik açıklarına karşı tarayın.
  5. Kriptografik Standartlar: Eskimiş algoritmaları (MD5, ECB vb.) terk ederek endüstri standardı olan güçlü şifreleme yöntemlerine geçiş yapın.