Hikayeler

Reklam vermek için turkmmo@gmail.com

AdminPage Sistemi Detaylı Kaldırma Rehberi

MaviAy44

Emre Kırıcı
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye
Yönetici
Turnuva
Yarışma
Katılım
16 Tem 2019
Konular
714
Mesajlar
3,540
Online süresi
6ay 20g
Reaksiyon Skoru
2,107
Altın Konu
34
Başarım Puanı
309
TM Yaşı
6 Yıl 9 Ay 9 Gün
MmoLira
26,224
DevLira
122

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

Güvenlik ve Temizlik: Admin Web Panel & HEADER_CG_TEXT Kaldırma
Exploitlere açık eski yönetim sistemini kaldırarak sunucu güvenliğini artırın.



Nedir ve Neden Kaldırıyoruz?

Bu sistem, Ymir'in çok eski zamanlarda kullandığı, bir web paneli üzerinden sunucuya TCP bağlantısı kurarak komut göndermesini (Event açma, duyuru geçme, shutdown, user sayısı alma vb.) sağlayan bir altyapıdır.

Kaldırma Sebeplerimiz:
  • 🛡️ Güvenlik Açığı: Sistemin ana paketi olan HEADER_CG_TEXT, bilinen Buffer Overflow açıklarına sahiptir ve sunucunuzda Core düşmesine (çökmesine) sebep olabilir.
  • 🗑️ İşlevsizlik: Bu sistemi kullanan orijinal web paneli elimizde yoktur.
  • ✨ Temizlik: Gereksiz config tanımları ve paket işleyicileri kod kirliliği yaratmaktadır.

Bu rehber ile bu sistemi ve ilgili güvenlik açığını tamamen kapatıyoruz.



⚠️ DİKKAT ⚠️
İşlemlere başlamadan önce Server Source yedeğinizi alınız!



ADIM 1: Config Temizliği

Dosya: Server\Source\game\config.cpp
İşlem: Aşağıdaki kod bloklarını bulup silin.

Kod:
// Silinecek Değişkenler:
std::vector<std::string>    g_stAdminPageIP;
std::string    g_stAdminPagePassword = "SHOWMETHEMONEY";

// Silinecek Fonksiyonlar:
static void FN_add_adminpageIP(char* line) { ... }
static void FN_log_adminpage() { ... }

// Silinecek Tokenler (TOKEN bloğu içindekiler):
TOKEN("adminpage_ip") ...
TOKEN("adminpage_ip1") ...
TOKEN("adminpage_ip2") ...
TOKEN("adminpage_ip3") ...
TOKEN("adminpage_password") ...

// Silinecek Çağrı:
FN_log_adminpage();

Dosya: Server\Source\game\config.h
İşlem: Extern tanımlarını silin.

Kod:
extern std::vector<std::string>    g_stAdminPageIP;
extern std::string    g_stAdminPagePassword;



ADIM 2: DESC (Bağlantı) Temizliği

Dosya: Server\Source\game\desc.cpp

  • Sil:
    Kod:
    m_bAdminMode = false;
    (Initialize içinde)
  • Sil:
    Kod:
    if (desc->IsAdminMode()) { return (ping_event_second_cycle); }
    (ping_event içinde)
  • Sil:
    Kod:
    SetAdminMode
    ve
    Kod:
    IsAdminMode
    fonksiyonlarının tamamını silin.

Dosya: Server\Source\game\desc.h
İşlem: Aşağıdakileri header dosyasından silin.

Kod:
void SetAdminMode();
bool IsAdminMode();

bool m_bAdminMode;



ADIM 3: Input İşleyicisi (En Önemli Kısım)

Dosya: Server\Source\game\input.cpp

1. İşlem: Yardımcı fonksiyonları silin:
Kod:
bool IsEmptyAdminPage() { ... }
bool IsAdminPage(const char* ip) { ... }
void ClearAdminPages() { ... }

2. İşlem: HEADER_CG_TEXT kontrol bloğunu tamamen silin.
(Not: Bu blok "if (bHeader == HEADER_CG_TEXT)" ile başlar ve "d->Packet(stResult.c_str()..." ile biter. Yaklaşık 200 satırlık dev bir bloktur.)

Kod:
    if (bHeader == HEADER_CG_TEXT)
    {
        // ... İçindeki her şeyi silin ...
        return (c_pSep - c_pData) + 1;
    }

3. İşlem (KRİTİK DÜZELTME):
Yukarıdaki bloğu sildiğinizde, bir sonraki `else if` bloğu havada kalacaktır. Onu `if`'e çevirmelisiniz.

Bul:
Kod:
else if (bHeader == HEADER_CG_MARK_LOGIN)

Değiştir:
Kod:
if (bHeader == HEADER_CG_MARK_LOGIN)



ADIM 4: Paket Tanımlarının Temizlenmesi

Dosya: Server\Source\game\packet.h
İşlem: Header ve Struct yapısını silin.

Kod:
HEADER_CG_TEXT = 64,

typedef struct command_text
{
    BYTE    bHeader;
} TPacketCGText;

Dosya: Server\Source\game\packet_info.cpp
İşlem: Paket kaydını silin.

Kod:
Set(HEADER_CG_TEXT, sizeof(TPacketCGText), "Text");



Tüm işlemleri yaptıktan sonra Game Source build almayı unutmayın.
Artık sunucunuz buffer overflow saldırılarına karşı daha güvenli!
İyi forumlar!
 
Eline sağlık, paylaşım için teşekkürler :)
 

Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)

Geri
Üst