PHP SQLinjection ist nicht möglich?! Sollte es aber

Sneazel

Lt. Commander
🎅Rätsel-Elite ’24
Registriert
Aug. 2011
Beiträge
1.154
Hey,
ich soll für ein kleines Projekt SQLInjections untersuchen, verhindern etc.
Allerdings bekomm ich es nicht hin dass ich überhaupt injections machen kann

Ich habe nen kleine Testseite erstellt. Ist mehr oder weniger nen Blog
Dort ist ein Suchformular eingebunden
Code:
<form action="suche.php" method="get">
Titel: <input type="text" name="suche">
<input type="submit" value="Suchen">
</form>
Suche.php ist dann die Anzeigeseite
Der Code zumausgeben sieht wie folgt aus:
Code:
	<?php
	$suche = $_GET["suche"]; 
	$abfrage = "SELECT titel,text FROM entries where titel='$suche' ";
	$ergebnis = mysql_query($abfrage);
	while($row = mysql_fetch_object($ergebnis))
	   {
	   echo '<div class="col_12" style="border:1px solid #ccc;">';
	   echo " <h3>$row->titel </h3> $row->text";
	   echo '</div>';
	   }
?>

Leider ist es nicht möglich dort SQLi anzuwenden.
Magic Quotes sind deaktiviert in der Configdatei.
Auch W3AF (Penetrationssoftware) meldet keine möglichen SQLi - nur BlindSQLi (aber selbst die bekomm ich nicht hin and 1=2 oder auch and 1=1 liefert beides GAR nichts zurück)
Ich denke das Problem liegt an den " ' ' " .
Wenn ich zB
SELECT titel,text FROM entries where titel="Titel 1" UNION Select username,password from Users
direkt in MySQL eingebe bekomm ich Nutzer + PW raus.
Gebe ich allerdings
"Titel 1" UNION Select username,password from Users (oder ähnliches)
in die Suche ein passiert einfach nichts.

Kann mir einer helfen? (Ich weiß es ist kein Hausaufgabenforum - allerdings sind meine php Kenntnisse eher gering und über Google find ich auch keine Hilfe)
 
Du musst bei deiner Abfrage die ' auch mit einbeziehen. Beginne und beende deinen Injection-String mit einem ', so dass sinngemäß etwas dasteht wie titel='' UNION .... from USERS where username not like ''
Die beiden fetten ' sind die, die du schon in deinem ursprünglichen Query hast.
 
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource
kommt dann


auch mit OR gibt es GAR keine Ausgabe.
es wird die Suchen Seite geöffnet - aber nichts angezeigt. (Sprich nichts gefunden)
 
Lass dir doch die Abfrage ausgeben, wenn du sie zusammengebaut hast. Dann siehst du den Fehler.
 
Willst du cross site scripting oder sqli? Für sqli wäre eher der code für das schreiben der datenbank von bedeutung und ganz wichtig das # symbol :D. Bei CSS kannst du z.b. Javascript code ausführen, da deine eingaben nicht gefiltert werden. Nur clientseitig.
Aber für sqli sollten sehr gute erklärungen im web vorhanden sein, so wie es aussieht hast du nichtmal das grundlegende verstanden.
 
Zuletzt bearbeitet:
Zurück
Oben