B 1
berione65
sen272 1
sen272
Mt2Hizmet 1
Mt2Hizmet
C 1
chengdu
xranzei 1
xranzei
zendor2 1
zendor2
Bvural41 1
Bvural41
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

C++ - Sql injection-Arkadaş-Fısıltı-Lonca Fix

  • Konuyu başlatan Konuyu başlatan ONURSTEEL
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 20
  • Görüntüleme Görüntüleme 7K

ONURSTEEL

Level 5
TM Üye
Katılım
27 Ara 2016
Konular
36
Mesajlar
917
Reaksiyon Skoru
160
Altın Konu
0
TM Yaşı
9 Yıl 5 Ay 13 Gün
Başarım Puanı
57
Yaş
28
MmoLira
19
DevLira
0
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!


Bilinen ve doğabilecek tüm "Sql İnjection" fixi ;

../Source/game/src/db.cpp aç

Arat ;
Kod:
void DBManager::Query(const char * c_pszFormat, ...)

Kod bloğunu değiştir ;
Kod:
void DBManager::Query(const char * c_pszFormat, ...)
{
   char szQuery[4096];
   va_list args;

   va_start(args, c_pszFormat);
   vsnprintf(szQuery, sizeof(szQuery), c_pszFormat, args);
   va_end(args);

   std::string sQuery(szQuery);
   m_sql.AsyncQuery(sQuery.substr(0,sQuery.find_first_of(";")==-1?sQuery.length(): sQuery.find_first_of(";")).c_str());
}

Arat ;

Kod:
SQLMsg * DBManager::DirectQuery(const char * c_pszFormat, ...)

Değiştir ;
Kod:
SQLMsg * DBManager::DirectQuery(const char * c_pszFormat, ...)
{
   char szQuery[4096];
   va_list args;

   va_start(args, c_pszFormat);
   vsnprintf(szQuery, sizeof(szQuery), c_pszFormat, args);
   va_end(args);

   std::string sQuery(szQuery);
   return m_sql_direct.DirectQuery(sQuery.substr(0, sQuery.find_first_of(";") == -1 ? sQuery.length(): sQuery.find_first_of(";")).c_str());
}



Başlıktaki gibi Sql injection-Arkadaş-Fısıltı-Lonca Fixi


messenger_manager.cpp aç


Arat ;

Kod:
void MessengerManager::RemoveFromList(MessengerManager::keyA account, MessengerManager::keyA companion)

Kod bloğunu değiştir ;

Kod:
void MessengerManager::RemoveFromList(MessengerManager::keyA account, MessengerManager::keyA companion)
{
    if (companion.empty())
        return;


    char companionEscaped[CHARACTER_NAME_MAX_LEN * 2 + 1];
    DBManager::instance().EscapeString(companionEscaped, sizeof(companionEscaped), companion.c_str(), companion.length());




    DBManager::instance().Query("DELETE FROM messenger_list%s WHERE account='%s' AND companion = '%s'",
                                get_table_postfix(), account.c_str(), companionEscaped);




    __RemoveFromList(account, companion);


    sys_log(1, "Messenger Remove %s %s", account.c_str(), companion.c_str());


    TPacketGGMessenger pack;
    pack.bHeader = HEADER_GG_MESSENGER_REMOVE;
    strlcpy(pack.szAccount, account.c_str(), sizeof(pack.szAccount));
    strlcpy(pack.szCompanion, companion.c_str(), sizeof(pack.szCompanion));
    P2P_MANAGER::instance().Send(&pack, sizeof(TPacketGGMessenger));
}

guild_manager.cpp aç

Arat ;

Kod:
std::unique_ptr<SQLMsg> pmsg(DBManager::instance().DirectQuery("SELECT COUNT(*) FROM guild%s WHERE name = '%s'",
                                                                   get_table_postfix(), __escape_name));
Üstteki kod yoksa bunu arat ;


    std::auto_ptr<SQLMsg> pmsg(DBManager::instance().DirectQuery("SELECT COUNT(*) FROM guild%s WHERE name = '%s'",
                get_table_postfix(), gcp.name));


Üstüne ekle ;
Kod:
    static char __escape_name[GUILD_NAME_MAX_LEN * 2 + 1];
        DBManager::instance().EscapeString(__escape_name, sizeof(__escape_name), static_cast<const char *>(gcp.name), sizeof(gcp.name));

Var ise arat ;
Kod:
    get_table_postfix(), gcp.name

Değiştir ;

Kod:
    get_table_postfix(), __escape_name




 
Son düzenleme:
Bir sene kadar sonradan gelıyorsun ama olsun :)

Edit//

Ek olarak sadece db.cpp'den bir kod değiştirerek bilinen ve doğabilecek tüm sql injectleri fixlemiş olursun.
 
Son düzenleme:
bizlerle paylaşırsan seviniriz kardeş teşekkürler iyi forumlar :)
Bir sene kadar sonradan gelıyorsun ama olsun :)

Edit//

Ek olarak sadece db.cpp'den bir kod değiştirerek bilinen ve doğabilecek tüm sql injectleri fixlemiş olursun.
 
Konudaki gereksiz yorumlar silindi.

Lütfen bahsi geçen buglar ile ilgili açıklama veya video&fotoğraf şeklinde kanıt ekleyiniz.
 
Bir sene kadar sonradan gelıyorsun ama olsun :)

Edit//

Ek olarak sadece db.cpp'den bir kod değiştirerek bilinen ve doğabilecek tüm sql injectleri fixlemiş olursun.
Bİlgi paylaşıldıkça güzeldir. Paylaş o zaman sende şu SQL olayı tamamıyla kapansın ?
 

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

Geri
Üst