عرض مشاركة واحدة
قديم 19-10-2016, 04:14 PM   #1

™ EgY_KhaN ™
عضو متألق



الصورة الرمزية ™ EgY_KhaN ™


• الانـتـسـاب » Aug 2012
• رقـم العـضـويـة » 103935
• المشـــاركـات » 1,663
• الـدولـة » Mansoura
• الـهـوايـة » Love the Destruction
• اسـم الـسـيـرفـر » Private Server
• الـجـنـس » Male
• نقـاط التقييم » 54
™ EgY_KhaN ™ جـيـد

™ EgY_KhaN ™ غير متواجد حالياً

10648  


إرسال رسالة عبر Yahoo إلى ™ EgY_KhaN ™ إرسال رسالة عبر Skype إلى ™ EgY_KhaN ™

اوسمتي

(21) شرح كامل لغلق ثغرة SQL Inject at about guild



اول حاجه فيه بعض الحلول دي بالفعل معروفة لكن معتدقنش ان كل الحلول دي اتنشرت
لو انت شغال بجارد او من غير برده بتتحل

الحل الاول وهو الاسهل انك تقفل About guild دي خالص :

هتفتح ال SQL وتروح ع التاب دي
"SRO_VT_SHARD" > Tables > _SiegeFortress > وتختار > Design >
هتظهرلك بالشكل دا :

هتنزل علي : IntroductionModificationPermission
تقف عليها وهتغير Default Value Or Binding 1
ل Default Value Or Binding 0
زي كدا بالظبط
وبكده انت قفلت About guild خالص

حل مشكلة ال DC في بعض السيرفرات الي شغاله وفيها جيلد واخد FTW
اقتباس:
USE SRO_VT_SHARD
Go
/*
Fix DC Bug when use anti sqli Simply way ( sql way )
Coded By EgY_KhaN
*/
UPDATE SRO_VT_SHARD.._SiegeFortress Set Introduction = Null Where GuildID > 0
UPDATE SRO_VT_SHARD.._SiegeFortress Set IntroductionModificationPermission = 0 Where GuildID > 0
Print ' All Done ! '
Print ' Coded By EgY_KhaN'
تاني حل لو انت ليك في C# وشغال بجارد هتضيف
السطرين دول في الجارد بتاعك
كود:
 
            #region 0x705E_CLIENT_EXPLOIT
            if(packet.Opcode == 0x705E)
            {
                string message = packet.Opcode.ReadAscii();
                if(message.Contains("'"))
                {
                    //message;
                    continue;
                } else if(message.Contains("\""))
                {
                    //message;
                    continue;
                } else if(message.Contains("-"))
                {
                    //message;
                    continue;
                }
            }

#endregion
الحل التالت بإستخدام SQL Parse نفس الفكرة برده ونفس الاداء ونفس النتيجة
كود:
 if (new[] { '-','\\','\'' }.Any(a => message.Contains(a)))
{
    //message; 
    continue;
}
فيه حل اخر من خلال ال GameServer نفسه بإستخدام برنامج OLLYDBG بس لسه تحت التجربة لو جربته واشتغل تمام هضيفو للموضوع


توقيع ™ EgY_KhaN ™ :

EgY_KhaN is There !


التعديل الأخير تم بواسطة ™ EgY_KhaN ™ ; 19-10-2016 الساعة 11:57 PM

رد مع اقتباس
إعلانات google