Apache2, php5.3.2-1, mysql.
W pliku php.ini wyłączyłem ,,safe mode'' i ,,magic_qoutes'', włączyłem ,,register_globals''.
Napisałem dziurawy skrypt php:
Kod: Zaznacz cały
<?php
if(isset($id)){
echo($id."
");}else echo('kura');
readfile("folder/$id.txt");
?>
Kod: Zaznacz cały
../../tajne/hasła
Jeżeli jednak jako id podam:
Kod: Zaznacz cały
login.php%00
Innym przykładem kodu php, który na pewno jest błędny, ale serwer nie pozwala na wykorzystanie błędu jest:
Kod: Zaznacz cały
if(isset($_POST["login"], $_POST["pass"]))
{
$db_host='localhost';
$db_user='lala';
$db_pass='user';
$link = mysql_connect($db_host, $db_user, $db_pass)
or die('Brak połączenia z serwerem MySQL');
$db = @mysql_select_db("lolo", $link)
or die('Nie mogę połączyć się z bazą danych');
$wynik=mysql_query("SELECT * FROM users WHERE user ='$_POST[login]' AND pass ='$_POST[pass]'")or die('
pusto');
if (mysql_num_rows($wynik))
{
echo('zalogowany');
}else
echo("
niezalogowany");
}
Kod: Zaznacz cały
zalogowany
Kod: Zaznacz cały
niezalogowany
Kod: Zaznacz cały
admin' /*
Kod: Zaznacz cały
pusto