Hackerboard WikiHaboBlog

[HaBo]

 
Webmaster-Security Fragen zur richtigen Serverkonfiguration oder Absicherung dynamischer Scripte gehören hier hinein.

MYSQL Injection, was mach ich falsch.

Diskussion: MYSQL Injection, was mach ich falsch. im Forum Webmaster-Security, in der Kategorie Security Area; Hi, ich will mich ein bisschen mit MYSQL Injection üben. Deshalb probier ich bei meinen Alten Homepages ein bisschen herum. ...

Antwort
Alt 26.06.07, 13:49   #1 (permalink)
 
Registriert seit: 26.06.07
IRoot Leistung: Facit NTK
Likes: 0
Thumbs down MYSQL Injection, was mach ich falsch.


Hi, ich will mich ein bisschen mit MYSQL Injection üben. Deshalb probier ich bei meinen Alten Homepages ein bisschen herum.
Bei einer meiner Websiten hab ich auch meiner meinung nach schon ein Sicherheitsloch entdeckt.

Aber wieso Funktioniert folgende Injektion nicht?

Code:
comments.php?comment=news&id=42;UPDATE+news+SET+title='Es Funktioniert.'+WHERE+id=38
Der Relevante Quelltext ausschnitt von comments.php:

Code:
mysql_select_db("mydatabase",$connect);
$res_information = mysql_query("SELECT title,colour FROM ".$_GET["comment"]." WHERE id='".$_GET["id"]."'");
$res_comments = mysql_query("SELECT von,time,comment,mail FROM comments WHERE zu='".$_GET["comment"]."|".$_GET["id"]."' ORDER BY time DESC");
$information = mysql_fetch_assoc($res_information);
Ich hoffe jemand kann mir sagen was ich falsch mach :)

Gruss

IRoot
IRoot ist offline   Mit Zitat antworten
Alt 26.06.07, 14:43   #2 (permalink)
 
Registriert seit: 11.08.05
boehmi Leistung: Facit NTK
boehmi eine Nachricht über ICQ schicken
Likes: 0
Standard RE: MYSQL Injection, was mach ich falsch.

Zitat:
Original von IRoot
Aber wieso Funktioniert folgende Injektion nicht?
Weil in PHP aus Sicherheitsgründen immer nur eine SQL-Anweisung pro Query ausgeführt wird.

"Select * from Tabelle; Update Tabelle2 [...]" funzt also gar nicht erst.

Gruß
boehmi ist offline   Mit Zitat antworten
   
HaBOT
 

Werbung ist gerade online    
Alt 26.06.07, 15:15   #3 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
bevor man 'learniny by doing' machen kann, sollte man etwas 'learning by reading' machen (siehe Signatur)

Selbst wenn PHP 2 Anfragen zulassen würde, würde es nicht klappen. Den Rest solltest du dir aber anlesen.
Dann wüsstest du auch, was wirklich gefährlich an deine Anfrage ist.
Elderan ist offline   Mit Zitat antworten
Alt 26.06.07, 18:06   #4 (permalink)
Themenstarter
 
Registriert seit: 26.06.07
IRoot Leistung: Facit NTK
Likes: 0
Standard

Naja, hab ich mir dann doch etwas zu einfach vorgestellt.

Aber eigenlich müsste das doch auch mit neueren PHP Versionen funtktionieren. ?(
Es kommen ja auch immer wieder neue SQL Exploits für phpBB, Burning Board usw. raus.

Ich hab ja den Quelltext meiner comments.php gepstet Würde es dort eine SQL Injection möglichkeit geben?

Gruss Builder.


PS: Kennt jemand ein aktuelles Tutorial über SQL Injetions(keins dass schon jahre alt ist).
IRoot ist offline   Mit Zitat antworten
Alt 26.06.07, 18:42   #5 (permalink)
Administrator
 
Benutzerbild von Mackz
 
Registriert seit: 02.10.01
Mackz Leistung: Pentium IMackz Leistung: Pentium I
Likes: 30
Standard

Das kommt halt immer ganz auf das Script / die Webapplikation drauf an.
In deinem Beispiel könnte man z.b. mit UNION SELECT eine weitere Table abfragen und so z.b. an Passwörter oder andere Daten gelangen, vorrausgesetzt man kennt die Datenbankstruktur der Anwendung.
__________________
RL sux big time... auch 2012!

Deleting pr0n is like killing your best friend

[HaBo] bei Facebook - Werde Fan
Mackz ist offline   Mit Zitat antworten
Alt 26.06.07, 19:12   #6 (permalink)
Themenstarter
 
Registriert seit: 26.06.07
IRoot Leistung: Facit NTK
Likes: 0
Standard

THX,

Ich hab mir nochmal das bei Wikipedia zu SQL Injection durchgelesen, und bin dann auf folgendes gekommen

Code:
http:/x.x.funpic.de/comments.php?comment=news&id=38+UNION+SELECT+*+,+'x'+FROM+users
Hmm, was mach ich genau Falsch? Darf ich das * bei der Abfrage nicht gebrauchen, oder hat Funpic die eigenen Mitglieder schon dagegen geschützt?

Oder kann es vieleicht seinn dass die PHP Datei die Union Daten verarbeiten und ausspucken muss?
Wenn ihr möchtet kann ich auch den gesamten Code der comments.php uppen .

Gruss IRoot
IRoot ist offline   Mit Zitat antworten
Alt 26.06.07, 19:30   #7 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
natürlich sollte man auch gut bis sehr gute Kentnisse in Sachen SQL haben

Also dein Code ist hochgradig gefährdet, aber ich werde ich kein Bsp. posten, denn du sollst Google bemühen um dich über SQL Injection und deren Abwehr zu informieren, sonst wirst du einfach nicht glücklich.
Elderan ist offline   Mit Zitat antworten
Alt 26.06.07, 20:27   #8 (permalink)
LX
Moderator
 
Registriert seit: 14.02.06
LX Leistung: Z3
LX eine Nachricht über ICQ schicken LX eine Nachricht über AIM schicken LX eine Nachricht über Yahoo! schicken
Likes: 21
Arrow

Zudem sollte es als Information reichen, dass da ungeprüfte Benutzereingaben im Script verarbeitet werden. Das Problem ist erkannt, die Lösung kann man sich zusammenreimen (Plausibilitätsprüfung der Benutzereingaben). Die Injektion so lange weiter zu probieren bis es mal klappt, bringt für die Behebung solcher Schwachstellen (und darum geht's ja in diesem Forum) keinen weiteren Erkenntnisgewinn
__________________
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

JS BB LX UP
LX ist offline   Mit Zitat antworten
Alt 26.06.07, 20:29   #9 (permalink)
Themenstarter
 
Registriert seit: 26.06.07
IRoot Leistung: Facit NTK
Likes: 0
Standard

Ich kenn mich mit MYSQL schon aus Aber mit Union und dem Inject zeuchs halt ned :

Könntest du mir vieleicht einen Tipp geben was daran falsch ist?
Kann ja auch per PN sein

Gruss

IRoot
IRoot ist offline   Mit Zitat antworten
Alt 26.06.07, 22:02   #10 (permalink)
 
Registriert seit: 23.05.05
Xalon Leistung: Facit NTK
Xalon eine Nachricht über ICQ schicken
Likes: 0
Standard

Lies dir den Wiki Eintrag durch.
Und die müssen net aktuell sein...da tut sich jedenfalls in den Basics nix

mfg,
Xalon
Xalon ist offline   Mit Zitat antworten
Alt 27.06.07, 13:08   #11 (permalink)
Themenstarter
 
Registriert seit: 26.06.07
IRoot Leistung: Facit NTK
Likes: 0
Standard

Ist die SQL Injection wirklich möglich? Ich hab schon viel Varianten aussprobiert, aber ich bekomm noch nicht mal einen SQL Error Zurück.

Eigentlich wenn SQL Injection möglich wäre sollt ich doch zumindest einen ERROR bekommen, auch wenn die Abfrage nicht ganz richtig ist

Gruss

IRoot
IRoot ist offline   Mit Zitat antworten
Alt 27.06.07, 13:40   #12 (permalink)
fetzer
Guest
 
Likes:
Standard

Sofern deine Eingaben nicht durch magic_quotes verändert oder über andere Mods und Plugins gesichert werden ist eine SQL Injection mit UNION durchaus möglich. Alles, was du in deinem Query falsch gemacht ist, dass du kein schliessendes ' genutzt hast:

? "SELECT id,nachricht FROM nachrichten WHERE id='".$_GET["id"]."'"

Wäre zu knacken mit
? $_GET['id'] = "1' UNION SELECT spalte1von2,spalte2von2 FROM other_table --"

Solche Beispiele solltest du auch genügend bei Google finden, genauso wie es zig-tausend Tutorials und Howtos gibt. Mit UNION (ALL) solltest du dich jedoch davor beschäftigen. Dieses Wissen wird vorrausgesetzt:

http://dev.mysql.com/doc/refman/5.0/en/union.html
  Mit Zitat antworten
Alt 27.06.07, 17:20   #13 (permalink)
Themenstarter
 
Registriert seit: 26.06.07
IRoot Leistung: Facit NTK
Likes: 0
Standard

Hmmm, klar aber kann das sein das Funpic das Blockt?, und ich noch lange probieren kann?

Meine Momentane Abfrage

Code:
http://x.x.funpic.de/comments.php?comment=news&id=38'+UNION+SELECT+password,benutzername+FROM+users--"

Es kommt auch kein ERROR egal was ich mache.

Sollte doch alles Richig sein oder?

Wenn es klappen würde, wo würden denn die Daten ausgegen? Brauch ich dafür ein spezielles Programm?

Gruss IRoot
IRoot ist offline   Mit Zitat antworten
Alt 27.06.07, 19:51   #14 (permalink)
fetzer
Guest
 
Likes:
Standard

Ich weiss nicht, wie Funpic das regelt, ein mir bekannter, anderer Freehoster regelt das ganze mit Magic Quotes. Lass das ganze einfach mal ohne einfache Anführungszeichen laufen, da sollte auch Magic Quotes nichts ausrichten können.
  Mit Zitat antworten
Alt 27.06.07, 20:04   #15 (permalink)
Themenstarter
 
Registriert seit: 26.06.07
IRoot Leistung: Facit NTK
Likes: 0
Standard

Hi, also wie meinst du das genau mit den einfachen Anführungszeichen?

Sollte der Befehl so ausschaun?

Code:
http://x.x.funpic.de/comments.php?comment=news&id=38?comment=news&id=38+UNION+SELECT+password,benutzername+FROM+users--
Wenn ja Funktioniert es nicht, und Funpic schützt ihre Member sehrwahrscheinlich ziemlich gut vor SQL Injections

Wenn nein, was ist mit dem einfachen Anführungszeichen gemeint, wie mach ich dass

Gruss IRoot
IRoot ist offline   Mit Zitat antworten
Antwort
   

Werbung ist gerade online    

[HaBo] » Security Area » Webmaster-Security » MYSQL Injection, was mach ich falsch.
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
UMTS Stick - simlock - oder mach ich was falsch? nonpretium Internet Allgemein 1 23.09.09 18:25
Squid schaltet ab, wenn dante startet was mach ich falsch? Wasserratte Linux/UNIX 2 25.01.08 23:00
Programmieren anfänger was mach ich falsch? onix Code Kitchen 6 15.06.07 13:47
Was mach ich falsch ? Chrizlybaer Code Kitchen 5 03.01.06 15:35
Was mach ich Falsch ? Turbo C Bogus Code Kitchen 1 10.08.05 23:08


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61