Register for your free account! | Forgot your password?

You last visited: Today at 06:17

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Fix] SQL Injektion

Discussion on [Fix] SQL Injektion within the Flyff PServer Guides & Releases forum part of the Flyff Private Server category.

Reply
 
Old 11/24/2013, 20:49   #16
 
elite*gold: 0
Join Date: May 2011
Posts: 13
Received Thanks: 20
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.
CallMeEclipse is offline  
Old 11/24/2013, 21:02   #17


 
- Major's Avatar
 
elite*gold: 7
Join Date: Sep 2012
Posts: 4,462
Received Thanks: 3,213
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
- Major is offline  
Old 11/24/2013, 22:16   #18
 
elite*gold: 23
Join Date: Dec 2010
Posts: 743
Received Thanks: 617
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

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.
.SnoX is offline  
Old 11/24/2013, 23:39   #19


 
- Major's Avatar
 
elite*gold: 7
Join Date: Sep 2012
Posts: 4,462
Received Thanks: 3,213
Quote:
Originally Posted by .SnoX View Post

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.
: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 ..
- Major is offline  
Old 11/25/2013, 00:13   #20
 
elite*gold: 10
Join Date: Feb 2011
Posts: 1,760
Received Thanks: 501
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.
Velmore is offline  
Old 11/25/2013, 00:23   #21
 
elite*gold: 23
Join Date: Dec 2010
Posts: 743
Received Thanks: 617
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.
.SnoX is offline  
Thanks
1 User
Old 11/25/2013, 00:56   #22
 
elite*gold: 0
Join Date: May 2011
Posts: 13
Received Thanks: 20
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?
CallMeEclipse is offline  
Old 11/25/2013, 01:05   #23


 
- Major's Avatar
 
elite*gold: 7
Join Date: Sep 2012
Posts: 4,462
Received Thanks: 3,213
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.
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 Ich wollte nur für ein paar Leute etwas gutes tun ^^
- Major is offline  
Old 11/25/2013, 02:00   #24
 
elite*gold: 23
Join Date: Dec 2010
Posts: 743
Received Thanks: 617
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.


Back to your question.. if you dont use the code you can do it..
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 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.
.SnoX is offline  
Thanks
1 User
Old 11/25/2013, 06:30   #25


 
- Major's Avatar
 
elite*gold: 7
Join Date: Sep 2012
Posts: 4,462
Received Thanks: 3,213
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 ***** 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 ..
- Major is offline  
Old 11/25/2013, 09:29   #26
 
elite*gold: 0
Join Date: Apr 2013
Posts: 511
Received Thanks: 431
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.
Wanetrain is offline  
Thanks
2 Users
Reply


Similar Threads Similar Threads
[RELEASE]Schutz gegen DLL-Injektion
05/31/2013 - Metin2 PServer Guides & Strategies - 15 Replies
Moin vorab, nein ich hab den Code nicht im Metin2 Client getestet, sollte aber genauso gut in Metin2 wie auch in der normalen Python Command Line funktionieren, oder? :P So, es ist eigentlich ganz einfach, ihr müsst in den Scripts(ja allen), nach OnUpdate Funktionen suchen und den folgenden Code in die Funktion einfügen: whitelist= import os f=os.popen('tasklist /M /FI "IMAGENAME eq metin2.exe"')
BaseAddress nach Injektion rausbekommen
07/04/2012 - C/C++ - 3 Replies
Guten Abend liebe Community, Ich habe gerade mal ein altes Projekt von mir aufgegriffen und wollte es von vorn beginnen um es kürzer zu coden. Eine frage, gibt es eine Möglichkeit wenn ich (m)eine Dll in einen Prozess injiziere die BaseAddress des Prozesses herrausfinden?
Injektion sicheres Registerscript
04/25/2011 - Flyff Private Server - 9 Replies
Streberteil So das Script ist mit htmlspecialchars(stripslashes()) ausgestattet und sollte gehen register.php <h3 class="title"></h3> <div id="text"> <?php function exist($account){ $sql = "SELECT * FROM ACCOUNT_TBL WHERE account='".$account."'";
SQL-Injektion
03/23/2010 - Metin2 Private Server - 3 Replies
Hi, ich wollte mal fragen, ob beispielsweise bei der Regipage von xBloomx die Möglichkeit einer SQL-Injection besteht...:rolleyes:
[HowTo] SQL Injektion
10/06/2009 - Tutorials - 5 Replies
Dies ist ein kurzes HowTo, um zu verstehen was mit einer SQL-Injektion gemeint ist und wie sich diese ausnutzen lässt. Diese Methode basiert grundsätzlich auf der ungenügenden Prüfung von Benutzereingaben und lässt sich fast immer vermeiden. Oftmals denken Programierer zum Zeitpunkt des Codings nicht daran, welches Schadenspotiential das ungeprüfte Weiterreichen von Benutzereingaben an den SQL-Interpreter. Dabei kommen in keinster Weise Buffer-Overflows zum Einsatz oder sonstige Hacks. ...



All times are GMT +2. The time now is 06:17.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.