#1 2009-05-15 01:46:55

mafialt

Administrator

Zarejestrowany: 2009-05-14
Posty: 18
Punktów :   

LFI - podstawowe zabezpieczenie

UWAGA. Aby przeczytać ten artykuł musisz znać podstawy PHP


Napiszemy prosty skrypt który będzie w zależności od innego nr id wyświetlał inny plik (?id=1 itp ;]).
Niedoświadczony webmaster robi tylko takie 4 linijki kody

Kod:

<? 
$id=$_GET["id"];
include($id);
?>

Bardzo dużo razy spotkałem się z tym błędem.
jak damy sam powyższy skrypt będzie wyświetlany każdy plik jaki sobie zażyczymy ;]
np
?id=etc/passwd
Jak widać jest to groźny błąd ;] jak się przed nim bronić
Opiszę podstawowy skuteczny sposób. Po prostu przypiszemy funkcjami "if" każdy osobny plik.
Powiedzmy , że mamy pliki:
-index.php
-omnie.php
-kontakt.php
i chcemy , aby index.php wyświetlał się gdy id będzie równe 1 (?id=1)
omnie.php gdy id będzie równe 2
a kontakt.php będzie wyświetlany gdy id będzie równe 3.
mało tego zrobimy ,aby wyświetlała się strona główna gdy id będzie 0 ;]
code będzie wyglądał tak :

Kod:

$id=$_GET["id"];
if(empty($id)) {           // Sprawdza czy plik jest pusty
include('index.php');     // Jeżeli tak jest wyświetla się strona główna.
}
if ($id == 1) {         // jeżeli $id będzie równe 1 
include('index.php'); // pokaż plik index.php
} elseif ($id == 2) { //..
include('omnie.php'); //..
} elseif ($id == 3) { //..
include('kontakt.php'); //..
} else { // w innym wypadku
include('index.php');  // pokaż index.php
}

I teraz po wpisaniu ?id=etc/passwd pojawi się strona główna;]
By Mafialt

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
www.lightteam.pun.pl www.sonyericsson.pun.pl www.secondlife.pun.pl www.sporttechlive.pun.pl www.write.pun.pl