[Security Fix]Char Create Bug

    • [Security Fix]Char Create Bug

      Hi Community,

      hab vor ca. 1 Monat mal einen Bug gefixt, der es Angreifern ermöglicht hat einen Character im Account eines anderen zu erstellen.
      Ich weiß das klingt zwar nicht so böse aber immerhin ist es ein Bug der andere Accounts beeinflussen kann und sollte daher gefixt werden.

      Deshalb release ich hier ein kleines Snippet, welches diesen Bug behebt. :)

      Ihr sucht erstmal folgendes: "CDbManager::CreatePlayer(" im DatabaseServer und kopiert folgenden Code unter den Code des "2nd Password Systems":

      #ifdef __CHAR_CREATE_FIX
      char szQuery0[QUERY_SIZE] = { 0,};
      sprintf(szQuery0, "SELECT * FROM ACCOUNT_DBF.dbo.ACCOUNT_TBL WHERE account='%s' AND password='%s'", lpDbOverlappedPlus->AccountInfo.szAccount, lpDbOverlappedPlus->AccountInfo.szPassword);

      if( FALSE == qry->Exec( szQuery0 ))
      {
      WriteLog( "%s, %d\r\n\t%s", __FILE__, __LINE__, szQuery0 );
      FreeRequest( lpDbOverlappedPlus );
      return;
      }

      if(!qry->Fetch())
      {
      FreeRequest( lpDbOverlappedPlus );
      return;
      }
      #endif
      Als nächstes nurnoch ein #define __CHAR_CREATE_FIX in der VersionCommon des DB Servers und es sollte behoben sein. :)
      Ist wahrscheinlich nicht der schönste Code aber es funktioniert.^^
      lg Ich;
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )