[Fix] SQL Injektion

11/24/2013 20:49 CallMeEclipse#16
There's no point to adding this. It doesn't fix injection since there was no injection in the first place. If your website has account validation( > 3 characters & no special characters ) then you don't need this.
11/24/2013 21:02 - DK#17
Quote:
Originally Posted by CallMeEclipse View Post
There's no point to adding this. It doesn't fix injection since there was no injection in the first place. If your website has account validation( > 3 characters & no special characters ) then you don't need this.
This is a another way to fix this ;D
11/24/2013 22:16 .SnoX#18
Quote:
Originally Posted by CallMeEclipse View Post
There's no point to adding this. It doesn't fix injection since there was no injection in the first place. If your website has account validation( > 3 characters & no special characters ) then you don't need this.

Quote:
Originally Posted by Armageddon ᵀᴹ View Post
This is a another way to fix this ;D
:facepalm:
Ich bin echt sprachlos, wenn man keine Ahnung hat, wieso schreibe ich dann was was am ende vielleicht oder eher mit großer Wahrscheinlichkeit eh nur scheiße ist. Die Website hat ja mal rein gar nichts damit zu tun, klar jede 0815 Website hat heut zu Tage anti sql inject schon drin bei der ACCOUNTERSTELLUNG! ..
Der Code hier ist dafür gedacht das man mit dem CE durch die Charaktererstellung und noch ca 10 andere Orte wo man injecten könnte zu verhindern mit invalid letter -.-"

Also bitte erstmal "klatscht" man den Code NICHT
Quote:
überall dort hin wo ihr lpDbOverlappedPlus->AccountInfo.szAccount findet
das wäre total Sinnfrei.

Hättet ihr den Code gelesen wüsstet ihr das der Code eigentlich für
Quote:
CreatePlayer()
gedacht war ~.~

Die Rechtschreibung schenke ich euch gerade, weil ich bei sowas echt nicht auf Rechtschreibung achte. :awesome:
11/24/2013 23:39 - DK#19
Quote:
Originally Posted by .SnoX View Post
:facepalm:
Ich bin echt sprachlos, wenn man keine Ahnung hat, wieso schreibe ich dann was was am ende vielleicht oder eher mit großer Wahrscheinlichkeit eh nur scheiße ist. Die Website hat ja mal rein gar nichts damit zu tun, klar jede 0815 Website hat heut zu Tage anti sql inject schon drin bei der ACCOUNTERSTELLUNG! ..
Der Code hier ist dafür gedacht das man mit dem CE durch die Charaktererstellung und noch ca 10 andere Orte wo man injecten könnte zu verhindern mit invalid letter -.-"

Also bitte erstmal "klatscht" man den Code NICHT
das wäre total Sinnfrei.

Hättet ihr den Code gelesen wüsstet ihr das der Code eigentlich für gedacht war ~.~

Die Rechtschreibung schenke ich euch gerade, weil ich bei sowas echt nicht auf Rechtschreibung achte. :awesome:
:O Tut mir leid das bei mir kein CE mehr funkt -.--- ...
Und nebenbei steht das selbe was du geschrieben hast dort auch drin :x ..
Denk mal genau nach warum ..
11/25/2013 00:13 Velmore#20
Quote:
Originally Posted by Armageddon ᵀᴹ View Post
:O Tut mir leid das bei mir kein CE mehr funkt -.--- ...
Und nebenbei steht das selbe was du geschrieben hast dort auch drin :x ..
Denk mal genau nach warum ..
Jo du kannst CE Fixen. Den Speedhack ja aber generell das man im Memory rumspielen kannst wirst du so einfach nicht fixen können.
11/25/2013 00:23 .SnoX#21
Quote:
Originally Posted by Armageddon ᵀᴹ View Post
:O Tut mir leid das bei mir kein CE mehr funkt -.--- ...
Und nebenbei steht das selbe was du geschrieben hast dort auch drin :x ..
Denk mal genau nach warum ..
Naja was heißt kein CE geht mehr bei dir, die kleinen Leecher die sowieso ohne brain.exe arbeiten, bei denen wirds wohl nicht gehen, da empfehle ich auch CE über FindWindow zu fixen. Aber wenn du CE wirklich komplett fixen willst würde ich doch ReadFile nehmen + viel Fantasie. ;)

JA warum steht es bei mir drin, weil der Code jetzt ca. 2 oder 3 Monate alt ist und ich ihn da "nur" für CreateChar benutzt habe. :eek:
11/25/2013 00:56 CallMeEclipse#22
Code:
arRead.ReadString( lpDbOverlappedPlus->AccountInfo.szAccount, MAX_ACCOUNT );
Code:
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++ )
#ifdef __CLIENT
			if( lpsz[i] == '\x60' )
				lpsz[i] = '\x27';
#else // __CLIENT
#ifdef __DBSERVER
			if( lpsz[i] == '\x27' )
				lpsz[i] = '\x60';
#endif // __DBSERVER
#endif // __CLIENT
#endif // defined(__CLIENT) || defined(__DBSERVER)

		lpsz[nLen] = '\0';
		return lpsz;
	}
}
Tell me again how SQL injection is possible.

If you enter
'; DROP TABLE
the dbserver will receive it as
`; DROP TABLE

`does not escape '.

If your website enforces > 3 character accounts and no special characters(which I'm fairly sure every single site does) your 'fix' is absolutely useless, seeing as the account wouldn't be found and nothing would happen.

P.S. English is a difficult language isn't it?
11/25/2013 01:05 - DK#23
Quote:
Originally Posted by .SnoX View Post
Naja was heißt kein CE geht mehr bei dir, die kleinen Leecher die sowieso ohne brain.exe arbeiten, bei denen wirds wohl nicht gehen, da empfehle ich auch CE über FindWindow zu fixen. Aber wenn du CE wirklich komplett fixen willst würde ich doch ReadFile nehmen + viel Fantasie. ;)

JA warum steht es bei mir drin, weil der Code jetzt ca. 2 oder 3 Monate alt ist und ich ihn da "nur" für CreateChar benutzt habe. :eek:
Leecher ??? Ich leeche rein garnichts vor allem finde ich rein garnichts irgendwo ^^ Sonst google bitte für mich ^^ .. Dein gehate juckt mich rein garnicht und vorallem weiß ich nicht was das soll, aber okay :o Ich wollte nur für ein paar Leute etwas gutes tun ^^
11/25/2013 02:00 .SnoX#24
Quote:
Originally Posted by CallMeEclipse View Post
Code:
arRead.ReadString( lpDbOverlappedPlus->AccountInfo.szAccount, MAX_ACCOUNT );
Code:
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++ )
#ifdef __CLIENT
			if( lpsz[i] == '\x60' )
				lpsz[i] = '\x27';
#else // __CLIENT
#ifdef __DBSERVER
			if( lpsz[i] == '\x27' )
				lpsz[i] = '\x60';
#endif // __DBSERVER
#endif // __CLIENT
#endif // defined(__CLIENT) || defined(__DBSERVER)

		lpsz[nLen] = '\0';
		return lpsz;
	}
}
Tell me again how SQL injection is possible.

If you enter
'; DROP TABLE
the dbserver will receive it as
`; DROP TABLE

`does not escape '.

If your website enforces > 3 character accounts and no special characters(which I'm fairly sure every single site does) your 'fix' is absolutely useless, seeing as the account wouldn't be found and nothing would happen.

P.S. English is a difficult language isn't it?
You write with me? Yea your code is absolutly correct but only because you are using the code from mootie.. in the v15 clean source you can only find this.
Quote:
LPTSTR CAr::ReadString( LPTSTR lpsz )
{
// if nMax is negative (such a large number doesn't make sense given today's
// 2gb address space), then assume it to mean "keep the newline".
int nLen;
*this >> nLen;
Read( lpsz, sizeof(TCHAR) * nLen );
lpsz[nLen] = '\0';
return lpsz;
}

LPTSTR CAr::ReadString( LPTSTR lpsz, int nBufSize )
{
// if nMax is negative (such a large number doesn't make sense given today's
// 2gb address space), then assume it to mean "keep the newline".
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 );
lpsz[nLen] = '\0';
return lpsz;
}
}
.. so replace it with "your" code and its fixed too. Here you can read how to fix the inject.
[Only registered and activated users can see links. Click Here To Register...]

Back to your question.. if you dont use the code you can do it.. :awesome:
keep calm ;)

Quote:
Originally Posted by Armageddon ᵀᴹ View Post
Leecher ??? Ich leeche rein garnichts vor allem finde ich rein garnichts irgendwo ^^ Sonst google bitte für mich ^^ .. Dein gehate juckt mich rein garnicht und vorallem weiß ich nicht was das soll, aber okay :o Ich wollte nur für ein paar Leute etwas gutes tun ^^
He? Ich sag doch gar nicht das du leechst, weiss gar nicht woher du das wieder entnommen hast, der releaste fix für CE geht einmal über FindWindow der fürn Arsch ist, warum? Naja FindWindow halt.. benutze ich halt nen anderen. Das ist auch kein "gehate" was ich hier mache Bruder, haha. Es geht nur darum wenn man was released sollte man schon wissen wie man es auch richtig benutzt, sonst haste am Ende wieder mehr scheiße die du wegmachen musst, ich glaub darauf steht keiner hier.
11/25/2013 06:30 - DK#25
Quote:
Originally Posted by .SnoX View Post

He? Ich sag doch gar nicht das du leechst, weiss gar nicht woher du das wieder entnommen hast, der releaste fix für CE geht einmal über FindWindow der fürn Arsch ist, warum? Naja FindWindow halt.. benutze ich halt nen anderen. Das ist auch kein "gehate" was ich hier mache Bruder, haha. Es geht nur darum wenn man was released sollte man schon wissen wie man es auch richtig benutzt, sonst haste am Ende wieder mehr scheiße die du wegmachen musst, ich glaub darauf steht keiner hier.
Kam dennoch so rüber :X .. Werde die Tage das Tut rein knallen, wenn ich Zeit habe ..
11/25/2013 09:29 Wanetrain#26
Quote:
Originally Posted by Velmore View Post
Jo du kannst CE Fixen. Den Speedhack ja aber generell das man im Memory rumspielen kannst wirst du so einfach nicht fixen können.
Schonmal was von "inline" oder "forceinline" gehört? ._.

CAr::ReadString um zu schreiben ist im übrigen NICHT zu Empfehlen, es sei denn ihr wollt die Server latenz noch mehr drücken als sie so schon ist, aber hey, ihr wisst ja alles was ihr tut. :)