CVE-2025-69459 – Movie Rating System 1.0 - Broken Access Control
Wed Jan 21 2026 · 2 min read
Category: Security Research
Giriş
Exploit Kodunu Görüntüle
Bu raporda, "Movie Rating System 1.0" uygulamasında kritik bir Erişim Kontrolü Bozukluğu (Broken Access Control) zafiyetinin nasıl keşfedildiğini ve istismar edildiğini detaylandıracağım. Bu zafiyet, kimliği doğrulanmamış bir saldırganın sisteme yönetici (admin) yetkileriyle yeni bir kullanıcı eklemesine olanak tanımaktadır.
Zafiyet Analizi
Yetkisiz Erişim ve Kullanıcı Oluşturma
Uygulamanın kullanıcı yönetimi işlemlerini gerçekleştiren classes/Users.php dosyasını incelediğimde, save_users fonksiyonunun herhangi bir kimlik doğrulama kontrolü yapmadan çalıştığını tespit ettim.
case 'save':
echo $users->save_users();
break;
// ...
} ```

Yukarıdaki kod parçasında görüldüğü üzere, `f=save` parametresi ile gelen istekler doğrudan `save_users` fonksiyonuna yönlendirilmektedir. Bu noktada kullanıcının oturum açıp açmadığı veya yönetici yetkisine sahip olup olmadığı kontrol edilmemektedir.
`save_users` fonksiyonunun içeriğine baktığımızda ise, POST isteği ile gönderilen verilerin doğrudan veritabanına kaydedildiğini görüyoruz:
```php public function save_users(){
// ...
extract($_POST);
// ...
foreach($_POST as $k => $v){
if(in_array($k,array('firstname','middlename','lastname','username','type'))){
if(!empty($data)) $data .=" , ";
$data .= " {$k} = '{$v}' ";
}
}
// ...
if(empty($id)){
$qry = $this->conn->query("INSERT INTO users set {$data}");
// ...
}
// ...
} ```


Buradaki en kritik nokta, `type` parametresinin de dışarıdan manipüle edilebilir olmasıdır. Sistemde `type=1` genellikle yönetici (Administrator) yetkisini temsil etmektedir. Saldırgan, bu parametreyi `1` olarak göndererek kendini yönetici yapabilir.
### Exploit Geliştirme
Bu zafiyeti istismar etmek için Python dilinde bir exploit geliştirdim (`exploit.py`). Saldırı adımları şu şekildedir:
1. **Hedef Belirleme:** Kullanıcıdan hedef URL alınır.
2. **Yönetici Hesabı Oluşturma:** `classes/Users.php?f=save` adresine özel olarak hazırlanmış bir `multipart/form-data` POST isteği gönderilir.
* `username`: "tago"
* `password`: "tagoletta"
* `type`: "1" (Yönetici Yetkisi)
* `firstname`, `lastname`: Rastgele değerler.
3. **Giriş Kontrolü:** Hesap oluşturulduktan sonra, `classes/Login.php?f=login` adresine oluşturulan kullanıcı adı ve şifre ile giriş isteği gönderilerek exploitin başarısı doğrulanır.
Eğer sunucu `200 OK` dönerse ve giriş başarılı olursa, sistemde artık tam yetkili bir yönetici hesabımız var demektir.
### Çözüm ve Kapatma
Bu zafiyeti gidermek için, `save_users` fonksiyonuna erişimin sadece yetkili yöneticiler tarafından yapılabileceğinden emin olunmalıdır.
**Önlem:**
`classes/Users.php` dosyasındaki `switch` yapısına veya `save_users` fonksiyonunun başına bir yetki kontrolü eklenmelidir.
*Güvenli Uygulama Örneği:*
```php // classes/Users.php
// ...
switch ($action) {
case 'save':
// Oturum kontrolü ve yetki kontrolü ekleyin
if(!isset($_SESSION['userdata']) || $_SESSION['userdata']['type'] != 1){
echo json_encode(['status' => 'failed', 'msg' => 'Unauthorized access.']);
exit;
}
echo $users->save_users();
break;
// ...
} ```
Bu değişiklik, sadece oturum açmış ve `type` değeri `1` olan (Yönetici) kullanıcıların bu fonksiyonu çağırmasına izin verecektir.
---
**CVE ID:** CVE-2025-69459 **İlk Yayın Tarihi:** 22 Aralık 2021 **Araştırmacı:** Tağmaç "Tagoletta" **Canonical reference:** https://www.exploit-db.com/exploits/50623 **Github Repository:** https://github.com/Tagoletta/CVE-2025-69459
Sıkça Sorulan Sorular
CVE-2025-69459 nedir?
Movie Rating System 1.0 üzerinde, kimlik doğrulaması olmayan bir saldırganın yönetici hesabı oluşturmasına imkan veren, Tağmaç 'Tagoletta' tarafından keşfedilmiş bir zero-day Erişim Kontrolü Hatasıdır.
Bu zafiyet neden tehlikeli?
Yönetici kayıt fonksiyonunda yetkilendirme kontrolü bulunmadığından, herkes hiçbir kimlik bilgisi olmadan kendine tam yetkili bir admin hesabı oluşturup uygulamayı ele geçirebilir.
Broken Access Control (Bozuk Erişim Kontrolü) nedir?
OWASP Top 10'un bir numaralı kategorisidir — uygulama, bir kullanıcının ne yapmaya yetkili olduğunu zorlayamadığında, kullanıcının yetkilerinin ötesindeki fonksiyonlara ya da verilere erişmesine izin verir.
CVE-2025-69459 nasıl düzeltilir?
Her ayrıcalıklı işlemde sunucu tarafı yetkilendirmeyi zorunlu kılın, varsayılan olarak reddedin, admin oluşturma uç noktalarını asla kimlik doğrulamasız açmayın ve durum değiştiren tüm fonksiyonlarda erişim kontrolünü denetleyin.
CVE-2025-69459 için PoC exploit writeup'ı nerede?
Tam proof-of-concept exploit kodu ve adım adım writeup bu sitede yayınlanmıştır — kimlik doğrulaması olmadan kendine admin hesabı oluşturan, çalışmaya hazır PoC için eşlik eden exploit sayfasına bakın.