Açıklama
Olay çok basit eğer serverinizde butonların olduğu geniş bir menü kullanıyorsanız bunlar mecburen şu aşağıdaki komutları kullanmak zorunda kalacaktır. Siz menüye her tıkladığınızda quest'e bir sorgu gönderip alıyorsunuz unutmayalım ki bazı sıralama sistemi gibi questler query ile çalışıyor ve sürekli açılıp yenileniyor. Oyunumuzun sitesindeki sıralama bile 8 saatte bir kendini yeniliyorken kullanıcıların anlık olarak bunu kapatıp açması ve her kapanıp açılışında kendini yenileyip query ve quest sorgusu göndermesi çok ama çok tehlikeli bir durumdur. Macro programı yardımıyla yukarıdaki videoda gördüğünüz gibi bir serveri 15 ila 30 dakika arasında bu yöntem ile çökertmek mümkündür. Bunun tek engellemesi pack ile veya query sorgusu gönderen bu tür sistemleri menüden kaldırmakla olabilir.
Sorgu gönderen ve sürekli açılır kapanır olan kod:
Kod:
quest = constInfo.ORNEK_QUEST_BUTTON event.QuestButtonClick(quest)
Nasıl Engelleyeceğiz?
Çok fazla detaya girmeyeceğim kodlama bilgisi iyi olanlar açığı kapatsın.
Constinfo yöntemi ile değer vererek ikinci kez açılmasını engelleyebilirsin.
Resimdeki örneklere göz atarak sizde aynını yapabilirsiniz.
Yeni Quest Crash Bug
Metin2 özel sunucularında geliştirme yaparken zaman zaman sistemsel açıklarla karşılaşabilirsiniz. Bu tür açıklar hem oyuncu deneyimini etkileyebilir hem de sunucu güvenliği açısından ciddi riskler doğurabilir. Bugün inceleyeceğimiz Yeni Quest Crash Bug, oyuncuların quest sistemine zararlı parametreler göndererek sunucuyu çökertmesine neden olan tehlikeli bir exploit türüdür.
Exploit Nedir?
Exploit, bir yazılımda bulunan güvenlik açığını istismar ederek sistem üzerinde kontrol elde etmeyi amaçlayan kod veya yöntemdir. Metin2 özel sunucularında genellikle C++ ile yazılmış sunucu kaynak kodlarında, özellikle quest engine kısmında yetersiz input validasyonları exploita zemin hazırlayabilir. Bu durumda saldırganlar quest komutlarına zararlı girdiler göndererek sunucuda beklenmedik davranışlara sebep olabilir.
Quest Sistemi Nasıl Çalışır?
Metin2 quest sistemi, oyuncuların belirli görevleri tamamlayarak ödüller kazanmasını sağlayan bir yapıdır. Quest dosyaları genellikle Python tabanlıdır ve py root altında bulunur. Sunucu tarafında, oyuncunun quest komutlarını işleyen fonksiyonlar C++ dilinde yazılmıştır. Eğer bu fonksiyonlarda gelen veriler yeterince filtrelenmezse, saldırganlar özel hazırlanmış komutlarla sistemde çökmelere yol açabilir.
Crash Bug Nasıl Meydana Gelir?
Yeni keşfedilen bu exploit, quest sistemine gönderilen parametrelerin yeterince kontrol edilmemesiyle ortaya çıkar. Örneğin bir quest fonksiyonuna çok uzun bir string veya özel karakterler gönderilirse, buffer overflow gibi durumlar oluşabilir. Özellikle game server programming alanında tecrübesi olmayan geliştiriciler bu tür güvenlik açıklarını fark etmekte zorlanabilir. Bu da saldırganların sunucuyu çökertmek için kolay bir yol bulmasına neden olur.
Teknik Açıklama
Exploit genellikle quest_input_string gibi fonksiyonlara karşı uygulanır. Eğer gelen string doğrudan bir diziye kopyalanıyorsa ve sınır kontrolü yoksa, stack taşması meydana gelebilir. Bu durumda attacker, özel olarak hazırlanmış bir string göndererek bellekte farklı adreslere yazmayı başarması halinde, sunucuyu tamamen çökertebilir veya hatta kod çalıştırabilir. Bu tür açıklar genellikle source edit aşamasında dikkatle incelenmelidir.
Exploit Tespiti ve Korunma Yöntemleri
Sunucu loglarını düzenli takip etmek, anormal quest çağrılarını yakalamak açısından önemlidir. Ayrıca quest fonksiyonlarında string uzunluk kontrolleri ve özel karakter filtrelemeleri yapılmalıdır. Güvenlik açısından tüm inputlar doğrulanmalı ve potansiyel tehditler engellenmelidir. Metin2 server src üzerinde çalışan geliştiriciler, bu tür açıklar için özel güvenlik duvarları ve input sanitization mekanizmaları kurmalıdır.
Sonuç
Metin2 özel sunucularında güvenlik her zaman öncelikli konulardan biri olmalıdır. Quest sistemine yönelik bu tür crash buglar, sunucu sahipleri tarafından zamanında fark edilmezse ciddi sorunlara yol açabilir. Oyun güvenliği, hem oyuncu memnuniyeti hem de sunucu sağlığı açısından büyük önem taşır. Bu nedenle geliştiricilerin, özellikle C++ source ve quest yönetimi konusunda dikkatli olması şarttır.
New Quest Crash Bug
While developing Metin2 private servers, you may occasionally encounter systemic vulnerabilities. Such bugs can affect the player experience and pose serious security risks for the server. The New Quest Crash Bug we will examine today is a dangerous type of exploit that causes servers to crash by sending malicious parameters to the quest system.
What Is an Exploit?
An exploit is a code or method that takes advantage of a vulnerability in software to gain control over the system. In Metin2 private servers, these exploits often occur due to insufficient input validation within the C++ based server source codes, particularly in the quest engine. In such cases, attackers can cause unexpected behaviors on the server by sending harmful inputs to quest commands.
How Does the Quest System Work?
The Metin2 quest system allows players to complete certain tasks to earn rewards. Quest files are generally Python-based and located under py root. On the server side, functions processing player quest commands are written in C++. If these functions do not adequately filter incoming data, attackers can trigger crashes using specially crafted commands.
How Does the Crash Bug Occur?
This newly discovered exploit arises from insufficient validation of parameters sent to the quest system. For instance, if a very long string or special characters are sent to a quest function, buffer overflow can occur. Developers without sufficient experience in game server programming might struggle to detect such security flaws, allowing attackers an easy way to crash the server.
Technical Explanation
The exploit usually targets functions like quest_input_string. If the incoming string is copied directly into an array without boundary checks, a stack overflow may occur. In this case, if the attacker manages to write to different memory addresses by sending a specially crafted string, they could fully crash the server or even execute arbitrary code. Such vulnerabilities must be carefully reviewed during the source edit phase.
Detection and Prevention Methods
Regularly monitoring server logs is crucial to catch abnormal quest calls. Additionally, length checks and filtering of special characters should be implemented in quest functions. All inputs must be validated and potential threats blocked. Developers working on Metin2 server src should implement specific security mechanisms and input sanitization methods against such exploits.
Conclusion
Security must always be a top priority in Metin2 private server development. Crash bugs targeting the quest system can lead to significant issues if not detected early by server owners. Game security is vital both for player satisfaction and server health. Therefore, developers must be especially cautious regarding C++ source and quest management.
