by thorsin » 01. April 2006 10:55
also es gibt mehrere möglichkeiten....
wenn du befehle, oder teile von befehlen offensichtlich also per get oder post übergibst, dann ist es relativ einfach an den code zu kommen.
rufst du zb ein fopen($datei) über index.php?open=meinfile.txt auf, dann würde man als angreifer jetzt einfach mal index.php?open=index.php aufrufen und so weitermachen bis man alle dateien hat. das ist jetzt mit sicherheit der einfachste weg, aber das prinzip sollte daraus hervorgehen.
dann gibt es da noch die möglichkeit einer "sql injection", will heissen du übergibst irgendwo was an die db ohne es zu prüfen. zb. könnte das so aussehen: du hast eine form, wo der user etwas eintragen kann. die eingegebenen daten prüfst du nicht. nehmen wir mal an du willst den namen registrieren, dann würde ein angreifer versuchen dir in das namensfeld so was in der art: heinz müller;SELECT * FROM geratenerName; probieren, wobei geratenerName zb durch einen in dieser form provozierten fehler anhand der fehlermeldung ersichtlich sein könnte.
letzten endes kann man dir ein klares JEIN als antwort geben. solange der user keine einflußmöglichkeiten auf sql-statements bzw. andere variablen hat ist dein php safe (vorausgesetzt dein apache ist ordentlich konfiguriert und liefert keine php-dateien aus)(tipp an dieser stelle: files die du per require oder include einbindest immer *.inc.php nennen, da manche server *.inc ausliefern und nicht parsen). sobald der user eingabemöglichkeiten hat MUSST du die eingaben irgendwie prüfen...
so far