Vulnerabilitati PHP –  Local File Disclosure - Securitatea Informatica

Vulnerabilitati PHP – Local File Disclosure

Sfaturi :

1. Prin intermediul acestei vulnerabilităţi putem citii conţinutul variabilelor, nu îl putem include.
2. Câteva funcţii care permit citirea fişierelor:

file_get_contents — Citeşte întregul fişier într-un string
readfile — Afişează conţinutul unui fişiere
file — Citeşte un fişier într-un vector
fopen — Deschide un fişier sau un URL
highlight_file — Formatează sintaxa unui fişier. Afişează şi returnează sintaxa formatată a codului conţinut în fişier folosind culori definite în formaterul pentru sintaxa din PHP.
show_source — Pseudonimul lui highlight_file()

Exemplu de bază

Cod:

<?php
$pagina=$_GET['pagina'];
readfile($pagina);
?>

Funcţia readfile() va citii conţinutul fişierului specificat. Dacă facem următoarea cerere:

http://127.0.0.1/test.php?pagina=../../../../../../etc/passwd

conţinutul fişierului “etc/passwd” va fi afişat.

Exemplu simplu

Cod:

<?php
$file = $_SERVER["DOCUMENT_ROOT"]. $_REQUEST['file'];
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

header(“Content-Type: application/force-download”);
header( ”Content-Disposition: attachment; filename=”.basename($file));

//header( ”Content-Description: File Transfer”);
@readfile($file);
die();
?>

Variabila “file” nu este securizată. Putem observa în prima linie că este cerută prin metoda $_REQUEST. Şi conţinutul fişierului este afişat prin intermediul funcţiei readfile(). Deci putem vedea conţinutul unui fişier arbitrar. Dacă facem următoarea cerere:

http://127.0.0.1/download.php?file=../../../../../../etc/passwd

putem citii cu succes fişierul “etc/passwd”.

Cum să fixezi
Metoda simplă : Nu permite caractere speciale în variabile. Filtrează “.” .
Altă metodă : Filtrează “/” , “\” şi “.” .

Twitter Digg Delicious Stumbleupon Technorati Facebook


Nici un comentariu inca... Fii primul care lasa un comentariu!

Lasa un raspuns

This site is protected by Comment SPAM Wiper. This site is protected by WP-CopyRightPro