HACKER CAN DELETE CHARACTER! WHAT HACK IS THIS?

08/23/2017 16:40 czg#1
HELLO. I AM WONDERING WHEN I TURN ON MY SITE THE HACKER CAN HACK VIA DELETING CHAR IN MY DATABASE. WHAT HACK IS THIS PLEASE? CAN ANYONE HELP ME . add me in skype bosx.ishihara and businesstalk:mad::pimp::D
08/23/2017 17:02 UltrainstinctGoku#2
hey,

it is simple. He is using the dupe method with Login delete Charakter ingame.
08/23/2017 18:47 czg#3
Source sided?
08/24/2017 12:47 xTwiLightx#4
Quote:
Originally Posted by SENPAITrade View Post
hey,

it is simple. He is using the dupe method with Login delete Charakter ingame.
After "turning on the site" sounds more like an SQL injection to me.
08/24/2017 15:45 UltrainstinctGoku#5
Quote:
Originally Posted by xTwiLightx View Post
After "turning on the site" sounds more like an SQL injection to me.
ik, i sayed him, what he can does.
08/25/2017 11:09 ZeroTwo02#6
Quote:
Originally Posted by SENPAITrade View Post
ik, i sayed him, what he can does.
Fix the sql injection lol ?
If you have apache, you can look the "error log" for see what function have a problem, and fix it.
08/26/2017 04:11 iSynaptic#7
Quote:
dupe method with Login delete
Okay, deleting other characters from differend accounts belongs to a dupe method.. I see.
Don't you mean Character Overwrite which acually only works on accounts you have access to?

Quote:
After "turning on the site" sounds more like an SQL injection to me.
Dann muss der Angreifer aber ziemlich blöd sein. Mit der standard Installation des MSSQL Servers und Scripten die nicht gegen Codemanipulation abgesichert sind, ist es eine Sache von einer Minute via xp_cmdshell den kompletten Server in der Hand zu haben. Warum sollte der Angreifer auch nur einzellne Charakter löschen? Klingt für mich ein wenig unlogisch, aber möglich ist es dennoch.
08/30/2017 11:28 Chyukαsame#8
Meiner Meinung nach liegt es nicht an der Webseite.
Er hat schon 2 unterschiedliche Seiten genutzt wobei dennoch der Hacker durch kam.


Er schrieb mich schon per Skype an und seine Aussagen, dass der Hacker plötzlich ein GM Account gab mir schon den Hinweis das es sich nicht um ein Web Problem handeln kann.
08/30/2017 15:42 - DK#9
Es war schlussendlich die fehler des Source Developer ^^ Er hat in der DBManager.cpp vergessen Fixes vorzunehmen :)
08/30/2017 15:58 xTwiLightx#10
Quote:
Originally Posted by Chyukαsame View Post
Meiner Meinung nach liegt es nicht an der Webseite.
Er hat schon 2 unterschiedliche Seiten genutzt wobei dennoch der Hacker durch kam.


Er schrieb mich schon per Skype an und seine Aussagen, dass der Hacker plötzlich ein GM Account gab mir schon den Hinweis das es sich nicht um ein Web Problem handeln kann.
Das ist das, was man nur daraus lesen kann, wenn er "site" erwähnt. Wenn er damit einen ganzen Server meint, dann kann alles ein Problem sein, was offen ist.

SQL Injections über den Ingame-Chat oder der ein oder anderen Lücke sind trotzdem noch möglich. Genauso kann man sich Rechte über solche Lücken beschaffen.

Es kann auch einfach sein, dass ein Freund oder Kollege Zugangsdaten für den Server hat oder ähnliches.

EDIT:
Ich weiß nicht, warum es dieses Forum überhaupt noch gibt. Offenbar werden Probleme nur noch über PMs oder Messenger untersucht und behoben. Lösungen werden zum Großteil unter Verschluss gehalten, aber zum "Hilfe pls" schreien, reicht es ja offenbar.

Quote:
Originally Posted by .ACE. View Post
Es war schlussendlich die fehler des Source Developer ^^ Er hat in der DBManager.cpp vergessen Fixes vorzunehmen :)
Ach, da isser ja wieder.
08/30/2017 18:52 iSynaptic#11
Quote:
Originally Posted by xTwiLightx View Post
SQL Injections über den Ingame-Chat oder der ein oder anderen Lücke sind trotzdem noch möglich. Genauso kann man sich Rechte über solche Lücken beschaffen.
Für diesen Fall, ein einfacher und ziemlich banaler Fix in der ar.cpp, welcher alle SQL Injections durch Strings, welche via ReadString gelesen werden, escapet.

Code:
void CAr::ReplaceChar(char& chr)
{
#ifdef __CLIENT
	if (chr == '\x60')
		chr = '\x27';
#elif defined(__DBSERVER)
	if (chr == '\x27')
		chr = '\x60';
#endif
}


LPTSTR CAr::ReadString( LPTSTR lpsz)
{
	int nLen;
	*this >> nLen;
	Read(lpsz, sizeof(TCHAR) * nLen);
#if defined(__CLIENT) || defined(__DBSERVER)
	for (int i = 0; i<nLen; i++)
		ReplaceChar(lpsz[i]);
#endif
	lpsz[nLen] = '\0';
	return lpsz;
}

LPTSTR CAr::ReadString(LPTSTR lpsz, int nBufSize)
{
	int nLen;
	*this >> nLen;

	int nReadable = nBufSize - 1;
	if (nLen > nReadable || nLen < 0)
	{
		memset((void*)lpsz, 0, nBufSize);
		m_lpBufCur = m_lpBufMax;
		return lpsz;
	}
	else
	{
		Read(lpsz, sizeof(TCHAR) * nLen);
#if defined(__CLIENT) || defined(__DBSERVER)
		for (int i = 0; i<nLen; i++)
			ReplaceChar(lpsz[i]);
#endif

		lpsz[nLen] = '\0';
		return lpsz;
	}
}